Posts

چرا به AAA نیاز داریم؟

استفاده از authentication ، authorization و accounting (به اختصار AAA) به منظور بررسی هویت کاربر و اینکه کاربر می تواند چه کاری انجام دهد یک راه بسیار عالی برای امن کردن management plane در تجهیزات محسوب می شود. در بسیاری از سازمان تعداد بسیاری زیادی دستگاه وجود دارد. اگر برای این دستگاه ها از دیتابیس لوکال دستگاه ها استفاده شود مدیریت کاربران برای این دستگاه ها سخت خواهد بود. به طور مثال اگر بخواهید به یک کاربر دسترسی به 10 دستگاه را بدهید باید برای این کاربر روی هر 10 دستگاه یوزر و پسورد تعریف کنید یا اگر بخواهید پسورد این کاربر را در این 10 دستگاه تغییر بدهید باید اینکار رو روی تمام این دستگاه ها انجام دهید. این روش در شبکه های بزرگ با دستگاه های زیاد و همچنین تعداد زیادی کاربر روش درستی نیست.
راه حل مناسب برای اینکار استفاده از یک دیتابیس مرکزی است که برای همه یوزر و پسورد ها برای تایید هویت و همچنین اینکه هر کاربر اجازه دارد چه کاری انجام دهد استفاده شود. این در درجه اول کاری است که (Access Control Server (ACS می تواند برای ما انجام دهد. اولین قسمت کانفیگ مربوط به سرور ACS می شود که در آن باید یوزر و پسورد ها و همچنین کاری که آنها اجازه دارند انجام دهند مشخص می شود. قسمت دوم کانفیگ این است که برای دستگاه مشخص کنیم که هنگامی که درخواست authentication یا authorization داشت از سرور ACS استفاده کند و با آن ارتباط برقرار کند.
از سرور ACS می توان برای مدیریت کاربران که می خواد از طریق دستگاه مثل روتر یا فایروال به شبکه دسترسی پیدا کنند استفاده کرد به طور مثال برخی از کاربران می خواهند از طریق VPN به شبکه متصل شوند در نتیجه نیاز به تایید هویت و کنترل دسترسی وجود دارد که اینکار توسط ACS به صورت متمرکز امکان پذیر است. همچنین از سرور ACS می توان برای ضبط اتفاقات (Accounting) استفاده کرد که در اینجا مشخص می شود که کاربر چه زمانی به تجهیزات متصل شده است و چه کاری انجام داده است.

Image

 

چرا از Cisco ACS استفاده می کنیم؟


بسیاری از سازمان های از تجهیزات سیسکو استفاده می کنند همچنین قصد استفاده از سرور ACS دارند بنابراین آنها می توانند کاربران خود را به صورت متمرکز مدیریت و کنترل کنند. با تعریف کاربران در سرور ACS ، تمام این دستگاه های سازمان به عنوان کلاینت برای سرور ACS عمل می کنند در نتیجه می توانید از سرور ACS به عنوان نقطه مرکزی برای تایید هویت استفاده کنید. به این صورت یکبار یک یوزر در سرور ACS ساخته می شود و دستگاه ها برای تایید هویت توسط ACS تنظیم می شوند در نتیجه از این به بعد تایید هویت به وسیله سرور ACS انجام می گیرد و به راحتی امکان اضافه کردن و تغییر کاربر وجود دارد و دیگر نیاز به مراجعه به تک تک دستگاه های برای تعریف و تغییر کاربران نیست و خیلی راحت و ساده می توانیم آنها را از طریق سرور ACS به صورت متمرکز مدیریت کنیم.
در بسیاری از سازمان ها کاربران زیادی برای تعریف در سرور ACS وجود دارد که این کاربران می تواند جهت دسترسی به شبکه یا تجهیزات باشند اما تعریف تعداد زیادی کاربر در دیتابیس لوکال ACS می تواند زمان بر باشد یک ویژگی که در ACS در نظر گرفته شده است استفاده از یک دیتابیس خارجی است که حاوی این کاربران و پسورد آنها می باشد یک نمونه از این دیتابیس خارجی Microsoft Active Directory است که حاوی اطلاعات کاربران و پسورد آنها است و می تواند به عنوان دیتابیس خارجی برای ACS عمل کند.
زنجیره ای از این رخدادها و اتفاقات می تواند شبیه این مثال باشد : یک کاربر به یک روتر متصل می شود و روتر به او پیغام تایید هویت می دهد در این مثال فرض بر این می شود که یک کاربر admin است که می خواد دسترسی CLI به روتر پیدا کند. روتر برای استفاده از ACS تنظیم شده است بعد از اینکه روتر یوزر و پسورد را از کاربر دریافت کرد این اطلاعات را برای سرور AAA خود یعنی سرور ACS ارسال می کند و منتظر پاسخ می ماند. در سرور ACS اگر از دیتابیس خارجی مانند Microsoft Active Directory استفاده شده باشد سرور ACS یک درخواست به Active Directory برای تایید اعتبار یوزر و پسورد ارسال می کند. اگر اطلاعات ارسالی توسط Active Directory تایید شد ACS صحت تایید هویت را به روتر اطلاع می دهد و روتر اجازه دسترسی به کاربر را می دهد اما اگر اطلاعات در Active Directory وجود نداشت براساس تنظیمات صورت گرفته برای ACS می توان دیتابیس لوکال خود را بررسی کند. در کل می توان این نکته را برداشت کرد که ACS می تواند از چند دیتابیس که شامل چند دیتابیس خارجی و دیتابیس لوکال برای بررسی صحت یوزر و پسورد استفاده کند.

فعال کردن AAA در حالت Local Authentication در تجهیزات سیسکو

در قسمت قبلی با AAA و مکانیزم کاری آن آشنا شدیم و همانطور که گفتیم یکی از روش های پیاده سازی AAA در حالت Local Authentication است. در این روش یوزرها روی خود دستگاه مانند روتر تعریف می شوند و برای تایید هویت ، دستگاه از دیتابیسی که روی خودش ایجاد می شود استفاده می کند. تعریف یوزر در این روش محدود است و فقط برای خود دستگاه قابل استفاده است و دستگاه های دیگر نمی توانند از این دیتابیس استفاده کنند.

Image

 

مراحل فعال سازی :


جهت فعال کردن AAA به صورت Local Authentication مراحل زیر را طی می کنیم :

  • فعال کردن AAA
  • تعریف کردن یوزر
  • مشخص نوع Authentication
  • فعال کردن Authorization
  • فعال برای پورت مورد نظر

 

دستورات و نحوی اجرا :


در ابتدا با دستور زیر AAA را فعال می کنیم :

Router(config)#aaa new-model

سپس یک یوزر تعریف می کنیم :

Router(config)#username itpro password 123

سپس نوع authentication را مشخص می کنیم :

Router(config)#aaa authentication login default local

دستورات زیر استفاده از آنها الزامی نیست ولی می توانند مفید باشند :
جهت نمایش یک پیام قبل از ورود به دستگاه :

Router(config)#aaa authentication banner ‘wellcome’

جهت نمایش یک پیام در صورتی که ورود به دستگاه موفق آمیز نباشد :

Router(config)#aaa authentication fail-message

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

Router(config)#aaa authentication password-prompt

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

Router(config)#aaa authentication username-prompt

فعال کردن Authorization :
جهت فعال کردن بررسی تعیین سطح دسترسی از دستور زیر استفاده کنید :

Router(config)#aaa authorization exec default local

فعال کردن روی پورت :
جهت فعال کردن AAA برای ارتباط کنسول ، Telnet یا SSH از دستور زیر استفاده می کنیم :
برای کنسول :

Router(config)#line console 0
Router(config-line)#login authentication default

برای Telnet و SSH :

Router(config)#line vty 0 4
Router(config-line)#login authentication default

از دستورات زیر برای خطایابی و بررسی تنظیمات می توانید استفاده کنید :

Router#show aaa sessions
Router#show aaa method-lists all
Router#debug aaa authentication
Router#debug aaa authorization
Router#debug aaa accounting

AAA چیست و چگونه در تجهیزات سیسکو پیدا سازی می شود؟

به عنوان مدیر شبکه شما باید دسترسی به شبکه را برای کاربران فراهم کنید و همچنین شبکه را در برابر دسترسی های غیرمجاز محافظت کنید. مدل AAA که از Authentication ، Authorization ، Accounting تشکیل شده است به شما کمک می کند که دسترسی به شبکه را مدیریت کنید این مدیریت شامل ، چه کسی ، به کجای شبکه و چه زمانی دسترسی داشته باشد. AAA برای یکسری خدمات امنیتی شبکه ارائه شده است تا از آن برای NAC) Network Access Control) استفاده شود. در این مقاله می خواهیم با مدل AAA آشنا شویم و نحوی راه اندازی آنرا فرا گیریم.

Image

مهاجمان تلاش می کنند به منابع حساس شبکه به صورت غیر مجاز دسترسی پیدا کنند. معماری AAA سیسکو به عنوان ابزاری برای جلوگیری از این تهدیدات و افزایش امنیت دسترسی مورد استفاده قرار می گیرد. در یک شبکه علاوه بر کاربران عادی و مهاجمین ، مدیران شبکه نیز برای دسترسی به منابع شبکه تلاش می کنند. AAA این دسترسی را به صورت امن فراهم می کند.
در محیط های سیسکو دسترسی به شبکه از طریق اینترنت ، Dialup و یا campus توسط سه بخش Authentication ، Authorization و Accounting انجام می شود.

  • Authentication : این بخش وظیفه تایید هویت را دارد و مشخص می کند کاربر اجازه دسترسی به شبکه را دارد یا خیر. در این بخش از مکانیزم های مختلفی مانند یوزر و پسورد یا Token Cards می توان استفاده کرد.
  • Authorization : بعد از اینکه تایید هویت توسط بخش Authentication ، بخش Authorization برای مشخص کردن سطح دسترسی به کار می رود. در واقع در این بخش مشخص می شود که کاربر اجازه دارد به چه منابعی دسترسی پیدا کند و چه کارهایی انجام دهد.
  • Accounting : بعد از انجام شدن Authentication و Authorization ، کاربر به شبکه دسترسی پیدا می کند و شروع به استفاده از منابع می کند. این بخش وظیفه دارد که عملکرد کاربر را ضبط کند اینکه کاربر چه کاری انجام داده و به کجا و به چه مدت متصل بوده است.

 

نقش ها در AAA :


• AAA Client : این نقش درخواست تایید هویت را به AAA Server ارسال می کند و براساس پاسخ سرور به کاربر اجازه یا عدم اجازه ورود می دهد. این نقش توسط تجهیزاتی مانند روتر ، اکسس پوینت و … انجام می شود.
• AAA Server : این نقش درخواست ارسال شده توسط AAA Client را با دیتابیس خود بررسی و نتیجه را به AAA Client اعلام می کند. این نقش توسط سخت افزار یا نرم افزار می تواند انجام گردد.

AAA Protocol :


AAA برای ارتباط خود با AAA Server از دو نوع پروتکل می تواند استفاده کند که به تشریح آنها می پردازیم :
• Radius : یک پروتکل عمومی است. ارتباط آن از نوع UDP و از شماره پورت های 1645 و 1812 برای Authentication و Authorization و از شماره پورت های 1646 و 1813 برای Accounting استفاده می کند. فقط پسورد را رمز می کند. Authentication و Authorization را به عنوان یک سرویس در هم ادغام می کند و فقط جهت کنترل دسترسی کاربران مورد استفاده قرار می گیرد.
• TACACS+ : توسط شرکت سیسکو ارائه شده و به عنوان یک استاندارد عمومی انتشار یافته است. ارتباط آن از نوع TCP و از شماره پورت 49 استفاده می کند. این پروتکل کل بسته را رمزنگاری می کند. سه بخش AAA را به صورت جداگانه انجام می دهد و همچنین می توان برای کنترل دستورات در تجهیزات از آن استفاده کرد.
در جدول زیر این دو پروتکل با یکدیگر مقایسه شده اند.

Image

 

AAA در سیسکو :


سیسکو برای اجرای AAA سه روش را فراهم کرده است :
Cisco Secure ACS Solution Engine : در این روش ، AAA روی دستگاهی مانند روتر که به عنوان دروازه ورود به شبکه برای دسترسی به منابع شبکه محسوب می شود فعال می گردد و برای تایید و کنترل دسترسی با Cisco Secure ACS Solution Engine ارتباط برقرار می کند. Cisco Secure ACS SE یک دستگاه (Appliance) مستقل می باشد که CSA روی آن قرار گرفته است. نصب و راه اندازی Cisco Secure ACS SE روی یک دستگاه مانند PC امکان پذیر است اما نصب و راه اندازی این روش نیاز به خرید سخت افزار ، تهیه یک سیستم عامل و نصب CSA روی این سخت افزار و مسائل مربوط به License دارد و این مراحل بسیار پیچیده و سخت و زمانبر می باشد.به همین خاطر استفاده از این Appliance برای بسیاری از سازمان ها ساده تر می باشد. در تصویر زیر این Appliance نمایش داده شده است.

Image

• Cisco Secure Access Control Server (ACS) For Windows Server : در این روش ، AAA همانند روش قبل روی دستگاهی مانند روتر که به عنوان دروازه ورود به شبکه برای دسترسی به منابع شبکه محسوب می شود فعال می گردد و برای تایید و کنترل دسترسی با نرم افزار ACS که روی یک سرور ویندوزی نصب شده است ارتباط برقرار می کند.
• Self-Contained AAA : در این روش تایید و کنترل کاربران توسط خود دستگاه مانند روتر انجام می گیرد. در این حالت روی خود دستگاه کاربران تعریف و استفاده می شوند. به این روش Local Authentication نیز گفته می شود.

نکته : غیر از روش هایی که توسط سیسکو ارائه شده است می توان از سایر نرم افزار هایی که به عنوان AAA Server شناخته می شوند برای تایید و احراز هویت استفاده کرد. از Active Directory ویندوز نیز به عنوان AAA Server می توان استفاده کرد.
نکته : از پرکاربردترین مصارف AAA می توان تایید و کنترل دسترسی به شبکه از راه دور مانند VPN و Dialup را نام برد.
نکته : از حالت Local Authentication برای ایجاد گروه کوچکی از کاربران برای یک دستگاه جهت دسترسی به شبکه استفاده می شود برای ایجاد کاربران به صورت local از دستور username itpro password 123 استفاده می شود.
نکته : برای ایجاد دسترسی برای تعداد زیادی یوزر و استفاده توسط دستگاه های مختلف از یک دیتابیس خارجی مانند نرم افزار ACS استفاده می شود و توسط AAA به اطلاعات این دیتابیس دسترسی پیدا می کند.