در این بخش میخواهیم به سرویس AAA که در قسمتهای قبلی در مورد آن صحبت کردیم بپردازیم، این سرویس سه کار احراز هویت (Authentication)، مجوز دسترسی (Authorization) و بررسی رویدادها (Accounting) انجام خواهد داد، اگر توجه کرده باشید در قسمتهای قبلی نرمافزار ACS را راه اندازی کردیم و آن را به سرویس Active Directory ویندوز متصل کردیم، میخواهیم سرویس AAA اطلاعات کاربری خود را از طریق Active Directory دریافت کند.
برای شروع کار، باید یک کانکشن بین دستگاههایی که قرار است از سرویس ACS استفاده کنند بزنیم، مثلاً در قسمت قبل یک روتر در GNS3 ایجاد کردیم و IP آن را ۱۹۲.۱۶۸.۵.۱۹ در نظر گرفتیم، در این قسمت گزینهی Network Devices and AAA Clients را انتخاب کنید و در صفحه باز شده بر روی گزینهی Create کلیک کنید.
در قسمت Name یک نام به دلخواه خود وارد کنید، در قسمت IP Address باید آدرس روتر یا دستگاه مورد نظر که قرار است بر روی آن سرویس AAA فعال شود را وارد کنید که البته میتوانید یک Subnet یا رنج آدرس برای آن مشخص کنید در قسمت Authentication options تیک گزینهی TACACS+ را انتخاب کنید و یک رمز عبور برای آن قرار دهید که در اینجا ۱۲۳ در نظر گرفته شده است و در آخر بر روی Submit کلیک کنید تا Connection مورد نظر ایجاد شود.
بعد از ایجاد رمز عبور وارد روتر R1 که در نرمافزار GNS3 ایجاد کردیم میشویم و تنظیمات زیر را انجام میدهیم.
با دستور زیر سرور AAA بر روی روتر فعال خواهد شد:
aaa new-model
tacacs-server host 192.168.5.36 key 123
توجه داشته باشید برای اینکه ارتباط بین سرور ACS و روتر را چک کنیم میتوانیم از دستور زیر استفاده کنیم:
R1#test aaa group tacacs+ babajani Password legacy
Attempting authentication test to server-group tacacs+ using tacacs+
User was successfully authenticated.
در دستور بالا به جای نام کاربری و رمز عبور مشخص شده با رنگ قرمز باید نام کاربری که در اکتیو دایرکتوری وجود دارد و عضو گروه Domain Admin است را وارد کنید که بعد از اجرا، پیغام successfully authenticated مشخص کننده ارتباط درست بین Router و ACS است.
aaa authentication login default group tacacs+
با اجرای این دستور، احراز هویت روتر از طریق نرمافزار ACS انجام خواهد شد، برای تست این موضوع، ارتباط Telnet با روتر R1 با برقرار میکنیم که برای انجام آن میتوانید از نرمافزار Putty استفاده کنید در این نرمافزار گزینهی Telnet را انتخاب کنید و آدرس روتر مورد نظر که بر روی آن با دستور (Line vty 0 4) سرویس Telnet را فعال کردید را وارد و بر روی Open کلیک کنید.
در شکل روبرو با استفاده از کاربر Administrator که در Active قرار دارد توانستیم به روتر متصل شویم.
نکته: زمانیکه از دستور Enable در این قسمت استفاده میکنید اگر چنانجه Enable Password در روتر تعریف نشده باشد، اجازه ورود به روتر را پیدا نخواهید کرد، پس باید این دستور در روتر اجرا شود.
تذکر: وقتی در روتر از دستور زیر برای فعال سازی سرویس AAA استفاده میکنید:
aaa authentication login default group tacacs+
به یاد داشته باشید که استفاده از کلمه tacacs+ در آخر این دستور باعث میشود که رمز عبور، فقط و فقط از طریق نرمافزار ACS خوانده شود و دیگر نمیتوانید از Username و Password که در روتر تعریف کردید استفاده کنید.
همانطور که در شکل روبرو مشاهده میکنید، به روتر از طریق Telnet متصل شدیم، اگر با نام کاربری که در قسمت قبل بر روی روتر تعریف کردیم وارد آن شویم با خظا روبرو مواجه خواهیم شد.
این موضوع یک مشکل اساسی ایجاد خواهد کرد، اگر چنانچه سرور ACS از کار بیفتد و از مسیر خارج شود دیگر به هیچ عنوان نمیتوانید وارد تنظیمات روتر شود، برای تست این موضوع سرور ACS را خاموش میکنیم و همانطور که در شکل روبرو مشاهده میکنید، برای ارتباط با روتر با سه خطای پشت هم مواجه میشوید.
برای حل این مشکل باید کاری کنید که همزمان از ACS و هم از دیتابیس خود روتر استفاده شود، برای این کار باید در روتر دستور زیر را وارد کنید:
aaa authentication login default group tacacs+ local
در دستور بالا کلمه local اضافه شده است، پس روتر طبق اولویتی که تعریف کردید اگر سرور ACS در دسترس بود از اطلاعات خود سرور ACS استفاده خواهد کرد و هر چقدر هم تلاش کنید تا از نام کاربری روتر استفاده کنید موفّق نخواهید بود، ولی اگرACS از از مسیر خارج شود و در دسترس نباشد، نام کاربری به صورت محلی و از داخل خود روتر صدا زده خواهد شد.
همانطور که در شکل روبرو مشاهده میکنید توانستیم با کاربر babajani وارد روتر شویم.
در ادامه میخواهیم سرویس Authorization و Accounting را روی روتر فعال کنیم و با این سرویسها میتوانیم برای کاربران سطح دسترسی و نوع دستورات را برای آنها مشخص کنیم.
در ادامه میخواهیم مشخص کنیم که هر کاربر، چه دستوراتی را بتواند در روتر یا سوئیچ و دیگر دستگاهها اجرا کند که به این مرحله Authorization گفته میشود.
aaa authorization exec default group tacacs+ local
با دستور بالا سرویس Authorization فعال خواهد شد که سطح دسترسی کاربر را بررسی خواهد کرد، همانطور که گفتیم هم از tacacs+ استفاده میکنیم و هم از دیتابیس Local تا همدیگر را پوشش دهند.
نکته: اگر این دستور را در روتر وارد کنید و تنظیمی روی روتر در ادامه برای آن انجام ندهید کاربر دیگر نمیتواند وارد روتر شود.
دستورات زیر را در روتر مورد نظر برای سطحها مختلف دسترسی وارد کنید.
aaa authorization commands 0 default group tacacs+ local
aaa authorization commands 1 default group tacacs+ local
aaa authorization commands 15 default group tacacs+ local
بعد اجرا کردن دستورات بالا از طریق Telnet وارد روتر شوید و یک دستور را اجرا کنید، متوجه خواهید شد دستور مورد نظر اجرا نشده و با خطای روبرو مواجع میشوید، توجه داشته باشید اگر بعد از دستورات علامت سوال قرار دهید دستورات دیگر را نشان میدهد ولی اگر بخواهید آن را اجرا کنید با خطا روبرو میشوید.
برای تنظیم این دستور در ACS از قسمت Policy Elements وارد Shell Profiles شوید و بر روی Create کلیک کنید.
در این قسمت میتوانید گروههای مختلفی ایجاد کنید که دارای دسترسیهای مختلفی به دستورات اجرایی داشته باشند.
در این صفحه یک نام برای گروه خود در نظر بگیرید و برای اینکه دستورات مشخص شدهای را که کاربر بتواند با آنها کار کند را به لیست اضافه کنید باید در قسمت Grant گزینهی Permit را انتخاب و دستور را در قسمت Command بنویسید، همانطور که مشاهده میکنید دستور show نوشته شده است و دستوری که در Arguments نوشته میشود ادامه دستور قبلی است یعنی در این دستور Show IP اجازه اجرا شدن دارد که با هم تست خواهم کرد، بعد از وارد کردن دستور حتماً بر روی Add^ کلیک کنید تا به لیست اضافه شود، دستورات دیگری را هم میخواهید میتوانید به لیست اضافه کنید.
نکته: اگر در شکل قبل تیک گزینهی Permit any command that is not in the table below را انتخاب کنید تمام دستورات برای کاربر مورد نظر اجرا خواهد شد و هر دستوری را که در لیست وارد کنید بیفایده است و دستورات به صورت کامل اجرا خواهند شد.
بعد از ایجاد گروه به مانند شکل از قسمت Authorization بر روی گزینهی Customize کلیک کنید.
در این صفحه اگر به قسمت Coustomize Results توجه کنید گزینهی Command Sets را مشاهده میکنید که باید آن را با کلید مشخص شده به لیست اصلی اضافه کنید.
بعد ازانجام کار قبلی وارد Rule-1 که قبلاً ایجاد کردید شوید.
در این قسمت باید بر روی Select کلیک کنید و گروهی را که برای Command با نام Limit access command ایجاد کردی را انتخاب کنید و بر روی OK کلیک کنید و در آخر بر روی Save Changes کلیک کنید تا تنظیمات ذخیره شود.
نکته: زمانی که ACS را به صورت مجازی اجرا میکنید سعی کنید در زمانبندی مشخص از ماشین ان SnapShot تهیه کنید تا به مشکلی بر نخورد.
همانطور که در شکل زیر مشاهده میکنید، ستون Command Sets اضافه شده است.
نکته: اگر در شکل یک به ستون Hit Count نگاه کنید یک عدد را مشاهده میکنید، این عدد یک شمارنده است و زمانی که کاربر از دیتورات در خط فرمان استفاده کند این شماره تغییر خواهد کرد.
برای تست این موضوع اگر با Telnet به روتر مورد نظر متصل شوید و دستور Show Ip Interface Brief را اجرا کنید میبینید به خوبی این دستور اجرا میشود چون اجازه دسترسی را در گروه مورد نظر صادر کرده بودیم ولی اگر دستور Show arp را اجرا کنید چون در لیست نیست با خطای Command authorize failed مواجه خواهید شد که این کار میتواند در کنترل کاربران به شما بسیار کمک کند.
در ادامه دستور بعدی که باید فعال کنیم Accounting است، این دستور برای بررسی عملکرد کاربر ایجاد شده است، که باید بعد از Authentication و Authorization فعال شود.
aaa accounting commands 0 default start-stop group tacacs+
aaa accounting commands 1 default start-stop group tacacs+
aaa accounting commands 15 default start-stop group tacacs+
بعد از فعال کردن Accounting ، کاربران هر دستوری را اجرا کنند در گزارشگیری ثبت خواهد شد، برای اینکه گزارشات کارکرد کاربران را در AAA مشاهده کنیم باید به مانند شکل روبرو بر روی Lunch Monitoring and Report Viewer کلیک کنید.
در این صفحه برای نمایش گزارشات نرمافزار ACS باید بر روی Reports کلیک کنید.
نکته: برا اینکه صفحه Reports برای شما به نمایش گذاشته شود نیاز به نرمافزار Flash Player دارید که باید از قبل بر روی سیستم نصب باشد.
همانطور که در شکل زیر مشاهده میکنید صفحه گزارشات باز شده است و دارای گزینههای متعدد است، برا اینکه گزارشات مربوط به AAA را مشاهده کنیم بر روی AAA Protocol کلیک کنید.
در قسمت AAA Protocol دو پروتکل TACACS+ و RADIUS را مشاهده میکنید، برای اینکه گزارشات مربوط به TACACS را مشاهده کنید، باید بر روی هر یک از گزینهها کلیک کنید.
در شکل زیر بر روی TACACS Accounting کلیک کنید و مقدار زمان آن را مشخص و بر روی Run کلیک کنید، همانطور که مشاهده میکنید یک گزارش از دستوراتی که کاربر user1 ثبت کرده است را مشاهده میکنید که این موضوع واقعاً میتواند برای مدیریت کاربران بسیار کمک کننده باشد.
در شکل زیر قسمت Authorization را مشاهده میکنید که نشان میدهد کاربر تلاش داشته چه دستوراتی را اجرا کند و دستوراتی که در آن مجوز نداشته با ضربدر قرمز مشخص شده است، توجه داشته باشید آخرین تغییرات در اول سطر قرار میگیرد.
قسمت Authentication هم نشان میدهد که کاربر برای احراز هویت چه کاری انجام داده، اگر بر روی آیکون مشخص شده در شکل زیر کلیک کنید میتوانید جزئیات کار را مشاهده کنید.
همانطور که در شکل روبرو مشاهده میکنید جزئیات کار مشخص شده است که در قسمت Remote Address مشخص شده است که چه آدرسی تلاش کرده به دستگاه Network Device IP Address متصل شود که البته نام کاربری را به اشتباه وارد کرده است.
برای اینکه رویدادهای مربوط به AAA را در روتر مشاهده کنید میتوانید دستور Debug را برای آن فعال کنید که برای این کار در روتر مورد نظر دستور زیر را وارد کنید:
R1#debug aaa authentication
AAA Authentication debugging is on
R1#debug aaa authorization
AAA Authorization debugging is on
R1#debug aaa accounting
AAA Accounting debugging is on
توجه داشته باشید که بعد از فعال کردن این دستورات، کارهایی که در زمینهی AAA در روتر انجام شود به عنوان یک رویداد به شما نمایش داده خواهد شد.
همانطور که در شکل روبرو مشاهده میکنید، زمانی که کاربر به روتر R1 از راه دور و از طریق Telnet متصل شد رویدادهای مربوط به AAA و authentication به نمایش گذاشته شد، که می۲تواند کمک کننده باشد و بیشتر در بحث Trublshoting مورد استفاده قرار میگیرد.
فعالسازی Radius در ACS
برای فعالسازی Radius در ACS باید دقیقاً همان کاری که برای TACACS انجام دادید را اجرا کنید فقط با یک تغییر جزئی.
وارد نرمافزار ACS شوید و از قسمت Network Resources بر روی گزینهی Network Devices and AAA Clients کلیک کنید و یک Rule جدید ایجاد کنید و به مانند شکل باید به جای انتخاب TACACS+ گزینهی RADIUS را انتخاب کنید و رمز عبور آن را وارد کنید، توجه داشته باشید که پورت پیشفرض آن ۱۷۰۰ است، بعد از وارد کردن آدرس روتر و رمز عبور مشخص اطلاعات را ذخیره کنید، با این کار تنظیمات قبلی که انجام داده بودید بر روی پروتکل RADIUS اجرا خواهد شد.
در ادامه باید دستورات روتر را به صورت زیر وارد کنید:
برای فعالسازی AAA باید دستور زیر را وارد کنید:
R1(config)#aaa new-model
برای ارتباط با سرور Radius باید دستور زیر را وارد کنید و آدرس و نام کاربر و رمز عبور را که مربوط به سرور Radius است را وارد کنید:
R1(config)#radius-server host 192.168.5.36 key test@12345
در دستورات زیر Authentication و Authorization را برای Radius فعال میکنیم:
R1(config)#aaa authentication enable default group radius
R1(config)#aaa authentication login default group radius local
R1(config)#aaa authorization exec default group tacacs+ local
در ادامه دستورات باید برای Telnet دستور زیر را وارد کنید.
R1(config)#line vty 0 4
R1(config-line)#login authentication default
بعد از انجام تنظیمات برای اینکه ارتباط را تست بگیریم باید از دستور زیر استفاده کنیم، که در قسمت آخر مشخص شده است که به درستی سرور Radius در دسترس است، فقط به این نکته توجه کنید که باید به جای user1 نام کاربری خود را به همراه رمز عبور آن وارد کنید.
R1#test aaa group radius user1 qq2123 legacy
*Nov 18 10:47:41.819: %SYS-5-CONFIG_I: Configured from console by console
R1#test aaa group radius user1 qq2123 legacy
Attempting authentication test to server-group radius using radius
User was successfully authenticated.