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

در شبکههای سازمانی، احراز هویت کاربران فقط به وارد کردن نام کاربری و رمز عبور محدود نمیشود. شبکه باید بتواند مشخص کند چه کسی اجازه اتصال دارد، به چه سرویسی دسترسی خواهد داشت و اطلاعات مربوط به این دسترسی چگونه ثبت میشود. RADIUS Server یکی از پروتکلهای شناختهشده برای متمرکز کردن این فرآیند است و بهخصوص در شبکههای Wi-Fi سازمانی، VPN و کنترل دسترسی به شبکه کاربرد دارد.
RADIUS Server چیست؟
RADIUS مخفف Remote Authentication Dial-In User Service است. این پروتکل برای انتقال اطلاعات مربوط به احراز هویت (Authentication)، مجوزدهی (Authorization) و Accounting بین یک تجهیز دسترسی به شبکه و سرور احراز هویت استفاده میشود.
در واقع، پروتکل RADIUS تجهیزی مثل Access Point یا فایروال نیست؛ بلکه پروتکلی است که ارتباط میان RADIUS Client و RADIUS Server را برای تصمیمگیری درباره دسترسی کاربر برقرار میکند. RFC 2865 نیز RADIUS را یک مدل Client/Server معرفی میکند که در آن Network Access Server نقش Client را بر عهده دارد.
RADIUS Server و RADIUS Client چه تفاوتی دارند؟
یکی از اشتباهات رایج این است که تصور کنیم کاربر مستقیماً به RADIUS Server متصل میشود. در واقع، معمولاً یک تجهیز شبکه بین کاربر و سرور قرار دارد.
1. RADIUS Client
RADIUS Client تجهیزی است که درخواست دسترسی کاربر را دریافت کرده و برای بررسی هویت او با RADIUS Server ارتباط برقرار میکند.
بسته به سناریو، این تجهیز میتواند مواردی مانند:
- Access Point
- سوئیچ شبکه
- VPN Gateway
- Network Access Server (NAS)
باشد.
2. RADIUS Server
RADIUS Server درخواست ارسالشده از Client را بررسی میکند، اطلاعات کاربر و سیاستهای دسترسی را ارزیابی کرده و نتیجه را به Client برمیگرداند.
بنابراین مسیر کلی به این شکل است:
کاربر ← RADIUS Client ← RADIUS Server
RADIUS Server نیز میتواند برای بررسی اطلاعات کاربر به یک منبع احراز هویت یا دیتابیس دیگر متصل شود و حتی در بعضی معماریها درخواست را به یک RADIUS Server دیگر Proxy کند.
سرور RADIUS چگونه کار میکند؟
فرض کنیم یک کارمند قصد دارد به Wi-Fi سازمان متصل شود.
ابتدا اطلاعات لازم برای احراز هویت از کاربر دریافت میشود. Access Point یا تجهیز دسترسی، که در اینجا RADIUS Client است، درخواست احراز هویت را ایجاد و به RADIUS Server ارسال میکند.
درخواست معمولاً با یک پیام Access-Request ارسال میشود. این درخواست میتواند شامل اطلاعاتی مانند نام کاربری، مشخصات Client و اطلاعات مربوط به پورت یا سرویس مورد درخواست باشد.
RADIUS Server سپس اطلاعات درخواست را بررسی میکند. اگر شرایط لازم برقرار نباشد، پاسخ Access-Reject ارسال میشود. اگر دسترسی مجاز باشد، سرور Access-Accept را برمیگرداند و میتواند همراه آن اطلاعاتی درباره نحوه ارائه سرویس نیز ارسال کند.
در برخی سناریوها نیز سرور بهجای پذیرش یا رد مستقیم، Access-Challenge ارسال میکند تا مرحله دیگری از احراز هویت انجام شود.
در نتیجه، تصمیم نهایی درباره دسترسی کاربر میتواند از یک نقطه مرکزی کنترل شود، در حالی که تجهیز شبکه مسئول اجرای نتیجه است.
پروتکل RADIUS و AAA چه ارتباطی دارند؟
سرور RADIUS ارتباط نزدیکی با معماری AAA دارد. پروتکل AAA از سه بخش تشکیل شده است:
Authentication: بررسی هویت کاربر؛ برای مثال مشخص کردن اینکه اطلاعات ورود متعلق به چه حسابی است.
Authorization: تعیین سطح دسترسی کاربر پس از احراز هویت؛ مثلاً اینکه کاربر اجازه استفاده از چه سرویس یا منابعی را دارد.
Accounting: ثبت اطلاعات مربوط به Session و استفاده از سرویس.
بنابراین RADIUS صرفاً برای بررسی نام کاربری و رمز عبور استفاده نمیشود و میتواند اطلاعات لازم برای تعیین سطح دسترسی و ثبت اطلاعات Session را نیز منتقل کند.
RADIUS در 802.1X و Wi-Fi چه نقشی دارد؟
یکی از مهمترین کاربردهای RADIUS Server در 802.1X است.
در شبکه Wi-Fi سازمانی، معمولاً سه نقش اصلی داریم:
- Supplicant: دستگاه کاربر، مانند لپتاپ یا گوشی
- Authenticator: تجهیز شبکه، مانند Access Point یا سوئیچ
- Authentication Server: معمولاً RADIUS Server
در این معماری، دستگاه کاربر مستقیماً با RADIUS صحبت نمیکند. در 802.1X، دستگاه کاربر فرآیند احراز هویت مبتنی بر EAP را آغاز میکند و Authenticator پیامهای مربوط به این فرآیند را برای سرور RADIUS ارسال میکند. RADIUS میتواند پیامهای EAP را از طریق Attributeهای مربوطه منتقل کند.
این معماری باعث میشود سازمان بتواند بهجای استفاده از یک رمز مشترک برای همه کاربران، احراز هویت کاربران را بهصورت متمرکز مدیریت کند.
RADIUS Server اطلاعات کاربران را از کجا میگیرد؟
سرور RADIUS لزوماً به این معنا نیست که تمام اطلاعات کاربران داخل خود آن ذخیره شده باشد.
بسته به نرمافزار و معماری شبکه، سرور میتواند برای بررسی هویت کاربران به منابع مختلفی متصل شود؛ برای مثال:
- دیتابیس
- LDAP
- Active Directory
- سیستمهای احراز هویت دیگر
- RADIUS Server دیگر از طریق Proxy
این موضوع برای شبکههای سازمانی اهمیت زیادی دارد، زیرا میتوان RADIUS را به زیرساخت هویت موجود متصل کرد. در نتیجه، سازمان میتواند از زیرساخت هویتی موجود برای احراز هویت سرویسهای مختلف استفاده کند و نیاز به ایجاد حسابهای جداگانه برای هر سرویس را کاهش دهد. قابلیت Proxy نیز در خود معماری RADIUS پیشبینی شده است.
RADIUS Server از چه پروتکل و پورتی استفاده میکند؟
RADIUS بهصورت سنتی از UDP برای ارتباط میان Client و Server استفاده میکند.
پورت استاندارد RADIUS برای Authentication و Authorization، UDP 1812 است و Accounting معمولاً روی UDP 1813 انجام میشود.
در زمان عیبیابی، باز بودن پورت بهتنهایی کافی نیست؛ باید ارتباط میان Client و Server، تنظیمات مربوط به Client و Server و Shared Secret نیز بررسی شود. Client و Server از یک Shared Secret مشترک برای محافظت و اعتبارسنجی پیامهای RADIUS استفاده میکنند.
مزایای سرور RADIUS چیست؟
مهمترین مزیت RADIUS، متمرکز کردن کنترل دسترسی است. بهجای اینکه اطلاعات کاربران و سیاستهای دسترسی روی تعداد زیادی تجهیز بهصورت جداگانه مدیریت شود، میتوان بخش مهمی از این فرآیند را در یک زیرساخت مرکزی قرار داد.
از مهترین مزایای RADIUS Server میتوان به موارد زیر اشاره کرد:
- مدیریت متمرکز حسابها و سیاستهای دسترسی
- کاهش نیاز به تعریف کاربران روی تجهیزات متعدد
- امکان استفاده از یک زیرساخت هویتی مشترک برای سرویسهای مختلف
- پشتیبانی از Wi-Fi سازمانی، VPN و 802.1X
- امکان ثبت اطلاعات مربوط به Session کاربران
- قابلیت Proxy برای معماریهای توزیعشده
محدودیتهای RADIUS Server چیست؟
RADIUS با وجود کاربرد گسترده، برای همه سناریوهای کنترل دسترسی بهترین گزینه نیست.
یکی از نکات مهم این است که سرور RADIUS اساساً برای کنترل دسترسی به سرویسهای شبکه طراحی شده است؛ بنابراین در سناریوهایی که هدف اصلی، مدیریت دقیق دسترسی مدیران به تجهیزات شبکه و کنترل مجوز اجرای Commandهاست، ممکن است پروتکلی مانند TACACS+ انتخاب مناسبتری باشد.
از طرف دیگر، RADIUS بهطور سنتی بر UDP متکی است و RFC 2865 نیز به محدودیتهایی مانند احتمال از دست رفتن داده و نبود مکانیزم کنترل ازدحام در طراحی اولیه اشاره میکند.
جمعبندی
RADIUS یک پروتکل Client/Server برای انتقال اطلاعات مربوط به Authentication، Authorization و Accounting در شبکه است. در معماری آن، تجهیزاتی مانند Access Point، سوئیچ یا VPN Gateway نقش RADIUS Client را دارند و RADIUS Server درخواستها را بررسی و نتیجه دسترسی را اعلام میکند.
اهمیت RADIUS زمانی بیشتر مشخص میشود که سازمان بخواهد دسترسی کاربران به Wi-Fi، VPN یا شبکه کابلی را بهصورت متمرکز مدیریت کند. در مقابل، برای مدیریت دسترسی ادمینها به تجهیزات و کنترل سطح دسترسی به Commandها، باید گزینههایی مانند TACACS+ را نیز بررسی کرد.
