شاید بدونید که FreeRadius یک RADIUS Server متن-بازه که نرم افزار بسیار موفق، پایدار و قابل اطمینانیه. در واقع، در بین RADIUS Serverهای مختلفی که موجوده، FreeRadius محبوبترین اونهاست. اگه شما هم جزو علاقهمندان یا حرفهایهای دنیای لینوکس یا یونیکس هستید، احتمال زیادی داره که با این سرویس جالب و مفید کار کرده باشید؛ به خصوص اگه تجربه کار در یک ISP رو داشته باشید.
FreeRadius نرم افزار کاملیه و به جهت ابعاد مختلفی که داره و قابلیت ارائه انواع خدمات و سازگاری با انواع سرویسهای دیگر، هر کسی موفق نمیشه با همه قسمتهاش آشنا بشه. من چند روز پیش دنبال مدیریت دسترسی کاربران به اینترنت به صورتی بودم که بشه زمان یا زمانهای خاصی رو در طول هفته به کاربر تخصیص داد تا بتونه طبق اون به اینترنت دسترسی داشته باشه. مثلا، هر روز ساعت 14 تا 16 یا روزهای دوشنبه و چهارشنبه ساعت 8 تا 17. این کار فوق العاده ساده است و خودم چند سال پیش انجامش داده بودم. اما چون خیلی با FreeRadius کار نمی کنم و خدا رو شکر، در اون سالها چیزی رو مستند نمیکردم، 😉 روشش رو فراموش کرده بودم. اما با جستجو در اینترنت بالاخره تونستم راه حل رو پیدا کنم. در ادامه به طور خلاصه، روش این کار رو شرح میدم. امیدوارم مفید باشه.
برای تخصیص زمانهای ثابت روزانه به کاربر باید از attribute Login-Time استفاده کنید. اگه از MySQL به همراه FreeRadius استفاده میکنید، باید Login-Time رو در جدول Radcheck ذخیره کنید.
Login-Time از جنس string هستش و به صورت زیر مقدار میگیره:
- هر رشته باید با حروف اختصاری روزهای هفته یا بازهای از روزهای هفته شروع بشه. روزهای هفته به این صورت مشخص میشوند: Mo، Tu، We، Th، Fr، Sa و Su. عبارت Wk نیز به معنی هفتگی (هفته کاری با شروع از دوشنبه و پایان در جمعه مترادف رشته Mo-Fr ) و Any یا Al به معنی هر روز میباشد.
- پس از آن، بازه ساعت با قالب hhmm-hhmm اضافه میگردد. برای مثال: “Wk0855-2305,Sa,Su1655-2305” به معنی دسترسی در روزهای کاری از ساعت8:55 تا 23:05، دسترسی 24 ساعته در روز شنبه و دسترسی از ساعت 16:55 تا 23:05 در روز یکشنبه خواهد بود.
به عنوان مثال برای تخصیص زمان دسترسی روزانه به کاربر test_user به صورت هر روز از ساعت 8 تا 9 کافیست دستور زیر رو در MySQL تایپ کنید:
INSERT INTO radcheck VALUES (‹2′,’test_user›,’Login-Time›,›:=›,’Al0800-0900′);