نحوه راه اندازی FreeRadius در PFSense در زیر آورده شده است:

AAA چیست ؟

در سیستم های امنیتی کامپیوتری AAA مخفف ۳ کلمه Authentication, Authorization و Accounting به معنای تشخیص هویت، تصدیق دسترسی و حسابرسی است که برای همین عناوین در شبکه ها استفاده می شود.

Authentication:

به معنای پروسه و عملیاتی است که طی آن هویت فرد بررسی و سپس  تایید یا رد می شود. به عنوان مثال وقتی یک کلاینت (کاربر ) می خواهد به یک سرور متصل شود در این جا شناسه فرد ( به صورت مثال نام کاربری و پسورد) برای سرور ارسال می شود و سرور این اطلاعات را با اطلاعات موجود تطبیق داده و در صورتی که این اطلاعات صحیح بود وارد مرحله بعد خواهد شد.

Authentication :

این قسمت از این مراحل ۳ گانه به بررسی حق دسترسی کاربر و ورودی ارسال شده بر می گردد و معمولا این مورد و مورد بالا را در قالب خیلی متفاوت نخواهید دید و در اکثر موارد با هم استفاده می شوند. در اینجا سرور وظیفه بررسی در مورد حق دسترسی و مقدار دسترسی های کاربر را بر عهده می گیرد و مشخص می کند تا چه حدی این کاربر حق دارد از منابع و یا … استفاده کند. در این مرحله می توان مواردی را نیز در آن جای داد در این مرحله به صورت مثال محدودیت استفاده یک نفر به صورت همزمان و یا امکان ورود این کاربر با شماره IP و یا شماره تلفن خاص و یا در ساعات مشخص و ….

Accounting:

در این مرحله برنامه کار حسابداری این کاربر را در مورد مقدار استفاده از منابع یا خرید حق خاص را بر عهده می گیرد.

پروتکل های AAA:

Radius , Diameters , Tacacs , Tacacs+

و سایر پروتکل ایی که از این مورد استفاده می کنند:

PPP, EAP , HIP , PEAP , LEAP , LDAP

Radius چیست ؟
Radius مخفف Remote Authentication Dial-In User Service است و یکی از پروتکل های پرکاربرد و تقریبا پای ثابت سیستم ها و نرم افزارها در استفاده از AAA است که در طیف وسیعی از دستگاه ها پشتیبانی می شود. این پروتکل در سال ۱۹۹۱ توسط Livingston Enterprises توسعه یافت و پدید آمد و سپس توسط IETF استاندارد سازی شد.
این پروتکل در حال حاظر در موارد بسیار مختلف و وسیعی استفاده می شود. به صورت مثال در مدیریت دسترسی به Internet ,Intranet و شبکه های Wireless و در تمامی موارد ورودی و استفاده از Modem ,DSL ,Access point ,VPN ,Web Server ها می توان از آن استفاده کرد.
ردیوس یک پروتکل کلاینت / سرور است که با استفاده از پروتکل UDP اطلاعات را منتقل می کنند و به صورت پیش فرض در اکثر سیستم ها از پورت ۱۸۱۲ برای Authentication و از پورت ۱۸۱۳ برای Accounting که توصط IANA تعریف شده است استفاده می کنند ( این مورد را می توان در سمت سرور و کلاینت به هر پورت مورد نظری تغییر داد).
ردیوس کاملا قابل توسعه و گسترش است و توسط خصوصیات سازنده (Vendor-SpecificAttributes) می توان موارد مورد نظر را در آن اضافه نمود و برای Nas مورد نظر ارسال کرد.

بعد از این تعریف به سراغ راه اندازی یک سیستم احراز هویت در PFSense می رویم که بتوانیم میزان ترافیک و سرعت و بسیاری محدودیت های دیگر برای کاربران تعریف کنیم.
در PFSense بسیاری از امکانات به صورت پیش فرض وجود دارد اما بر اساس نیاز می توان خیلی از نرم افزارها و امکانات را از طریق نصب بسته ها (Package Manager) اضافه کرد. برای این کار باید از منوی System گزینه Packages را انتخاب کنیم تا در قسمت Available Packages لیستی از بسته های مختلف را در دسته بندی های مختلف ببینیم. هر بسته ای را می توان با زدن علامت (+) در کنار ردیف بسته مورد نظر نصب کرد.
برای راه اندازی AAA در PfSense بسته freeradius2 رو نصب کنید.

ابتدا از منوی System ،Packages  را انتخاب می نماییم

 

packages

 

 

در صفحه باز شده در قسمت Available Packages ، Freeradius2 را مطابق شکل انتخاب کرده و منتظر می مانیم تا مراحل نصب سپری شود.

freeradius

 

پس از پایان یافتن نصب از منوی Services ، FreeRADIUS  را انتخاب می کنیم

تب اول نام های کاربری می باشد که به شرح زیر است:

برای ایجاد نام کاربری جدید با زدن علامت + در سمت راست، صفحه زیر باز می شود

users

 

 

Username: نام اختصاص یافته به کاربر

Password: پسورد اختصاص یافته به کاربر

Password encryption: رمز نگاری مورد استفاده برای پسورد که شامل Clear text و md5-pass می باشد.

Enable One-time-password for this user: فعال سازی پسورد یک بار مصرف که با استفاده از برنامه هایی بر روی گوشی های هوشمند تولید می شود. (لینک توضیحات و کانفیگ http://motp.sourceforge.net/#6)

Init-secret: مربوط به پسورد یک بار مصرف

PIN: مربوط به پسورد یک بار مصرف

Time Offset: مربوط به پسورد یک بار مصرف

Number of simultaneous connection: تعداد کانکشن های هم زمان که در حالتی که از Hotspot استفاده می شود باید خالی بماند و بیشتر برای VPN سرور استفاده قرار می گیرد.

Redirection URL: کاربر پس از ورود موفق به این سایت منتقل می شود.

Description: توضیحاتی برای این کاربر

IP Address: به این منظور استفاده می شود که پس از لاگین موفق برای کاربر این ای پی ست می شود و دیگر از Pool های VPN سرور استفاده نمی کند که برای فعال سازی این مورد در VPN سرور می بایست تنظیم RADIUS issued IP فعال باشد. ( این مورد برای تنظیم ای پی استاتیک برای کاربران استفاده م یشود )

Subnet Mask: همانند توضیح بالا به کاربر Subnet Mask اختصاص داده می شود.

Gateway: همانند توضیح بالا به کاربر Gateway اختصاص داده می شود

VLAN ID: همانند توضیح بالا برای کاربر VLAN تنظیم می کند که NAS Server  باید تنظیمات زیر را پشتیبانی کند.

VLAN

 

Expiration Date: تاریخ انقضای نام کاربری

Session Timeout: مدت زمانی که کاربر پس از آن دوباره باید احراز هویت شده و لاگین نماید. ( به ثانیه )

Possible Login Time: زمان هایی که کاربر در آن ها می تواند متصل شود.

نکته: برای تمام زمان از always استفاده میشود

روزها شامل  Mo,Tu,We,Th,Fr ,Sa ,Su و برای تمام روزهای کاری هفته Wk ( روز تعطیل شنبه و یکشنبه است )

نکته: برای تمام روزهای هفته از Al استفاده می شود.

به عنوان مثال :Sa1055-1700,Su0800-1700

و این یعنی روز شنبه از ساعت ۱۰:۵۵ صبح تا ۵ بعد از ظهر و یکشنبه از ۸ صبح تا ۵ بعد از ظهر

Amount of Time: مجموع مدت زمانی که کاربر می تواند لاگین باشد. ( بر حسب دقیقه )

Time period : بازه زمانی که مقدار بالا محاسبه می شود.

به عنوان مثال اگر Amount of Time ، ۶۰ تنظیم شده باشد و Time Period ،weekly  باشد به این معنی است که کاربر در یک هفته می تواند یک ساعت لاگین باشد.

Amount of Download and Upload Traffic: مقدار حجمی است که کاربر می تواند ارسال و دریافت داشته باشد. ( بر حسب مگابایت )

Time Period: بازه زمانی که مقدار بالا محاسبه می شود.

Maximum Bandwidth Down: محدودیت سرعت دانلود کاربر  بر حسب کیلو بیت

Maximum Bandwidth Up : محدودیت سرعت آپلوید کاربر بر حسب کیلو بیت

Accounting Interim Interval: در صورتی که قسمت Accounting  در NAS ،Interim Update فعال باشد، در این قسمت مدت زمان بین آپدیت ها مشخص می شود که به صورت پیش فرض ۶۰۰ ثانیه است.

بقیه قسمت ها به منظور تنظیمات اضافه است.

 

پس از اعمال تنظیمات بالا آنها را Save  می کنیم

به این صورت اولین کاربر در Radius ساخته می شود

تب بعدی MACs می باشد که به منظور RADIUS MAC Authentication  استفاده می شود که تنظیمات آن شبیه تنظیمات کاربر می باشد. چند نکته پیرامون این صفحه می باشد:

– برای استفاده از این قابلیت در حالت Hotspot می بایست تنظیم Enable RADIUS MAC authentication  در Captive Portal فعال شود (MAC authentication secret  در این قسمت همان Client Shared Secret  است که در تب NAS/Clients توضیح داده می شود.)

– برای استفاده باید  NAS Server  ( که معمولا Hotspot می باشد در این سناریو ) و کاربران در یک Broadcast Domain باشند تا مک آدرس کاربر قابل بهره برداری باشد.

– MAC Address حتما باید به فرمت ۰۰-ab-21-f1-c8-b1 وارد شده و به حروف کوچک و بزرگ حساس بوده و حتما باید از حروف کوچک استفاده شود.

– در تنظیمات Captive Portal ، MAC address format باید به itef تغییر پیدا کند.

– در سرویس FreeRADIUS و در تب Setting ، باید تنظیم Enable Plain MAC Auth  فعال شود.

 

تب NAS/Clients

 در این قسمت سروری که اجازه برقراری ارتباط به منظور احراز هویت کاربران را دارد معرفی می شود به عنوان مثال سرور VPN یا سروری که Hotspot بر روی آن فعال است که در Pfsense هر دوی این سرویس ها ارایه می گردد. بدین معنی که خود سیستم را در این قسمت معرفی می کنیم. مهمترین بخش ها در این قسمت برای تنظیمات پایه آی پی (۱۲۷.۰.۰.۱) نام اختصاصی و Client Shared Secret می باشد.

پس از کلیک بر روی + صفحه زیر باز می شود.

NAS

 

 

Client IP Address:  آی پی NAS Server  (که در صورتی که از Hotspot  یا VPN Server ،  Pfsense استفاده می شود باید آی پی Pfsense وارد شود.)

Client IP Version: ورژن آی پی

Client Shortname:  اختصاص نامی برای این NAS Server

Client Shared Secret: یک کلمه مشترک مخفی که بین NAS Server و Radius  باید یکسان باشد و همین کلمه باید در NAS Server معرفی گردد.

Client Protocol: پروتکلی که NAS Server  استفاده می کند.

Client Type: نوع NAS Server (در صورتی که از Pfsense استفاده شود بر روی Other  باشد.)

Require Message Authenticator: در صورتی که NAS  از این قابلیت پشتیبانی می کند فعال شود.

Max Connections : فقط زمانی که پروتکل TCP تنظیم شده است معنی دارد که حداکثر کانکشن های TCP رو مشخص می کند  و با MAX Requests Server در تب Setting همانند است.

NAS Login و NAS Password  در صورتی که NAS پشتیبانی کند می توان از SNMP یا Finger برای اینکه اتصالات هم زمان یک کاربر مشخص شود، استفاده کرد که در این صورت Radius به جای این که به فایل  Radutmp مراجعه کرده و لیست کاربران را استخراج کند از NAS این اطلاعات را گرفته و بر طبق آن اتصالات هم زمان را تشخیص می دهد. ( در این سناریو نیازی به پر کردن این قسمت نمی باشد.)

Description:  توضیحات برای این NAS

 

پس از تنظیمات بالا آنها را ذخیره می کنیم.

 

تب Interfaces:

به منظور استفاده از Authentication  و Accounting  باید دو Interface در اینجا اضافه شود در ابتدا یک Interface  برای Authentication.

بر روی علامت + کلیک کرده و وارد صفحه زیر می شویم.

interfaces

 Interface IP Address: در این قسمت IP از سیستمی که پورت های Radius باید روی آنها listen شوند و NAS به آنها کانکشن بزند را معرفی می کنیم. در صورتی که بخواهیم بر روی همه Interface های سرور قابل دستیابی باشد از *  استقاده می کنیم

Port: ترجیحا پورت های پیش فرض را تغییر ندهید مگر به دلایل امنیتی (موارد مهم برای راه اندازی ابتدایی اینترفیس ها ۱۸۱۲ و ۱۸۱۳ می باشند.)

برای Authentication  از ۱۸۱۲

برای Accounting  از ۱۸۱۳

و برای Status از ۱۸۱۶  استفاده می شود.

در این قسمت چون این اینترفیس مربوط به Authentication  است ۱۸۱۲ را تنظیم می کنیم.

Interface Type :authentication  انتخاب شود.

IP Version: ورژن آی پی استفاده شده

Description: توضیحات

 

پس از تنظیم موارد بالا آنها را ذخیره کرده و بار دیگر در تب Interfaces بر روی علامت + کلیک کرده و این بار اینترفیسی با این port ، ۱۸۱۳  و Interface type ،accounting می سازیم.

تب Setting:

 در این قسمت می توان موارد مقدار کانکشن ها و نحوه ارسال و ثبت لاگ ها و تنظیمات مربوط به پسورد یک بار مصرف را انجام داد که تنها در صورت نیاز این موارد تغییر داده شود تنها مواردی که که احتمالا نیاز به تغییر دارند Enable Plain MAC Auth برای فعال سازی Radius MAC Authentication  و همین طور Disable Acct_Unique است در صورتی که برای کاربران مقدار مشخص حجم مصرفی و زمان استفاده تعیین شده باشد.

تذکر: در صورتی که FreeRadius را با SQL ادغام می کنید نباید Disable Acct_Unique فعال باشد یا اینکه در دیتابیس Index type  acctuniqueid را به نرمال تغییر دهید

تب EAP:

در صورت نیاز به تنظیم EAP مورد استفاده است که در این سناریو نیازی نیست

 

تب SQL:

در صورتی که بخواهید اطلاعات کاربران در دیتابیس ذخیره شود از این قسمت استفاده کنید.

Schema  دیتا بیس ها به نام schema.sql از مسیر زیر در Pfsense قابل دستیابی اند.

/usr/pbi/freeradius-amd64/share/examples/freeradius/raddb/sql

 

برای فعال کردن، تیک Enable SQL Support  را بزنید

و Enable SQL Authorization , Enable SQL Accounting , Enable SQL session , Enable SQL Post-Auth  را بنا به نیاز خود فعال کنید.

نوع دیتا بیس را در Database Type مشخص کنید.

تنظیمات اتصال از قبیل آی پی و پورت و نام کاربری و پسورد دیتابیس را وارد نمایید در صورت استفاده از Schema قرار داده شده در آدرس بالا نیازی به تغییر دیگر موارد نمی باشد و از تنظیمات پیش فرض استفاده می شود ولی از انجا که در Schema  آورده شده جدول NAS وجود ندارد Read Clients From Database را NO کنید

در صورت نیاز می توانید SQL Server دومی نیز به منظور load balancing/Failover  تنظیم نمایید.

 

تب های بعدی شامل:

Certificates: تنظیمات مربوط به CA Server و CA Client

LDAP: به منظور ادغام RADIUS و LDAP

View config: به منظور مشاهده تنظیمات و اعمال تغییرات بر روی کانفیگ فایل ها

XMLRPC Sync: به منظور هماهنگ سازی تنظیمات بین Radius Server  ها

 

 

گردآورنده: بهنام لقمانی