یک رمز Wi-Fi بین همه پخش شده است؛ با خروج یک کارمند، چه کسی باید رمز تازه بگیرد؟ در شبکهٔ سازمانی می‌توان هویت هر نفر یا دستگاه را جدا بررسی کرد. امشب FreeRADIUS را محلی تست می‌کنیم و مسیر 802.1X را می‌شناسیم.

این جلسه بخشی از دورهٔ لینوکس ۳۰۳ در ۴۰ شب است.

محیط تمرین: Ubuntu 24.04؛ freeradius و freeradius-utils سری 3.x؛ آزمایش loopback؛ برای Wi-Fi واقعی سخت‌افزار و AP سازگار لازم است.

جایگاه در دوره: هدف‌های 334.1 آزمون 303-300.

سه نقش را درست نام ببر#

در 802.1X، supplicant کلاینت، authenticator سوئیچ یا AP و authentication server مرجع بررسی هویت است. FreeRADIUS نقش سرور را می‌گیرد. در زبان RADIUS، «client» معمولاً همان تجهیزات شبکهٔ درخواست‌دهنده است، نه مستقیماً لپ‌تاپ کاربر.

EAP چارچوب روش‌های احراز هویت است. در EAP-TLS، گواهی‌ها برای شناخت طرفین مهم‌اند؛ اگر کلاینت CA و نام سرور را بررسی نکند، یک AP یا سرور جعلی می‌تواند مسیر اعتماد را خراب کند. آزمون PAP محلی زیر، اثبات راه افتادن EAP-TLS نیست.

یک تغییر در هر بار#

sudo apt install freeradius freeradius-utils
freeradius -v
sudo systemctl stop freeradius

در /etc/freeradius/3.0/mods-config/files/authorize، یک ورودی آزمایشگاهی با گذرواژهٔ ساختگی مشخص اضافه کن:

labreader Cleartext-Password := "Lab-only-phrase-42"

در clients.conf یک client مخصوص loopback با نام یکتا و راز تازه بساز؛ اگر ورودی loopback پیش‌فرض وجود دارد، آن را به‌جای ساخت ورودی هم‌پوشان ویرایش کن. ipaddr = 127.0.0.1 و secret باید با آزمون بعدی یکسان باشند. مقدار پیش‌فرض مشهور testing123 را در سرویس عملیاتی نگه ندار.

sudo freeradius -XC
sudo freeradius -X

فرایند debug باید آمادهٔ دریافت شود؛ اگر پورت اشغال است، daemon دیگری هنوز فعال است. در terminal دوم:

read -rs -p 'Lab user password: ' radius_password
printf '\n'
read -rs -p 'Lab client secret: ' radius_secret
printf '\n'
radtest labreader "$radius_password" 127.0.0.1 0 "$radius_secret"
unset radius_password radius_secret

این ابزار ممکن است راز را در آرگومان یا خروجی آزمایش نشان بدهد؛ فقط راز ساختگی lab را وارد کن و خروجی خام را عمومی نکن. رمز درست باید Access-Accept و رمز غلط باید Access-Reject بدهد. client secret غلط معمولاً در اعتبار بسته یا پاسخ اثر می‌گذارد؛ آن را با خطای رمز کاربر یکی ندان.

از loopback تا رادیو#

پس از شناخت گردش درخواست، AP را به‌عنوان client با IP محدود و secret مستقل تعریف می‌کنی و روش EAP را با گواهی درست می‌سازی. Kismet ابزار مشاهده و تحلیل بی‌سیم است؛ monitor mode و کارت سازگار لازم دارد. aircrack-ng و bettercap ابزارهای دیگری با کاربرد تحلیل و آزمون‌اند؛ وجودشان جای policy Wi-Fi و بررسی گواهی را نمی‌گیرد.

radmin برای مدیریت daemon و radwho یا radlast برای اطلاعات session/accounting کاربرد دارند؛ این اطلاعات تنها وقتی accounting مناسب راه افتاده باشد معنا دارند. برای پایان، debug را Ctrl+C کن و daemon را با policy آزمایشگاهی بازبینی‌شده start کن یا Clone را برگردان.

مأموریت: سه خطای «user غلط»، «client ناشناخته» و «CA نامعتبر EAP» را روی نقشه در سه نقطهٔ متفاوت بنشان. منابع: شروع کار رسمی FreeRADIUS و Kismet .