AAA مخفف Authentication، Authorization و Accounting است.
Authentication: به سوال شما کی هستید؟ پاسخ میدهد و نحوه اعتبارسنجی کاربر در زمان ورود را کنترل میکند.
Authorization: به سوال چه کاری میتوانید انجام دهید؟ پاسخ میدهد و دستورات CLI که کاربر مجاز به اجرای آنها است را کنترل میکند.
Accounting: به سوال چه کاری انجام دادید؟ پاسخ میدهد و فعالیتهای کاربر مانند دستورات اجرا شده را ثبت میکند.
SoodarOS از قوانین AAA محلی و سرورهای AAA از راه دور پشتیبانی میکند:
محلی: قوانین Authorization محلی و Accounting محلی (system logger).
TACACS+: AAA از راه دور با استفاده از سرورهای TACACS+.
RADIUS: AAA از راه دور با استفاده از سرورهای RADIUS.
سرورهای راه دور
سرورهای از راه دور به عنوان اشیاء نامگذاری شده تعریف میشوند. پس از ایجاد یک سرور، وارد node آن شوید و پارامترهایی مانند آدرس IP، پورت، کلید مشترک، VRF و آدرس IP مبدا را پیکربندی کنید.
سرور TACACS+
TACACS+ (Terminal Access Controller Access-Control System Plus) یک پروتکل است که برای ارائه Authentication، Authorization و Accounting متمرکز برای مدیرانی که به دستگاههای شبکه دسترسی دارند، استفاده میشود. این پروتکل از رمزگذاری کامل payload پشتیبانی میکند و امنیت بیشتری در مقایسه با پروتکلهای قدیمیتر مانند RADIUS دارد. همچنین، فقط TACACS+ از Authorization per-command پشتیبانی میکند.
ایجاد سرور TACACS+
- tacacs server TACACAS_SERVER_NAME
یک node پیکربندی سرور TACACS+ ایجاد میکند (یا وارد آن میشود).
TACACAS_SERVER_NAME: نام سرور TACACS+.
مثال:
soodar(config)# tacacs server TAC1
soodar(config-server-tacacs)#
حذف سرور TACACS+
- no tacacs server TACACAS_SERVER_NAME
تعریف یک سرور TACACS+ را حذف میکند.
TACACAS_SERVER_NAME: نام سرور TACACS+.
تنظیم آدرس سرور
- address <A.B.C.D|X:X::X:X>
آدرس سرور (IPv4 یا IPv6) را تنظیم میکند.
<A.B.C.D|X:X::X:X>: آدرس IP سرور TACACS+. میتواند یک آدرس IPv4 یا IPv6 باشد.
تنظیم پورت سرور
- port (1-65535)
پورت سرور را تنظیم میکند.
(1-65535): شماره پورت سرور TACACS+.
نکته
پیشفرض برای TACACS+ پورت 49 است.
تنظیم کلید مشترک
- key KEY
کلید مشترک (secret) مورد استفاده برای TACACS+ را تنظیم میکند.
KEY: رشته کلید مشترک (secret).
تنظیم VRF
- vrf VRFNAME
VRF برای دسترسی به سرور را تنظیم میکند.
VRFNAME: نام VRF برای استفاده در دسترسی به سرور TACACS+.
تنظیم آدرس IP مبدا
- source-ip <A.B.C.D|X:X::X:X>
آدرس IP مبدا مورد استفاده برای اتصال به سرور را تنظیم میکند.
<A.B.C.D|X:X::X:X>: آدرس IP مبدا (IPv4 یا IPv6) مورد استفاده در بستههای TACACS+.
Timeout سرور TACACS+ (Global)
- tacacs-server timeout (1-1000)
زمان انتظار برای پاسخ سرور TACACS+ (به ثانیه) را تنظیم میکند.
(1-1000): مقدار timeout به ثانیه.
نکته
Timeout پیشفرض 5 ثانیه است.
سرور RADIUS
ایجاد سرور RADIUS
- radius server RADIUS_SERVER_NAME
یک node پیکربندی سرور RADIUS ایجاد میکند (یا وارد آن میشود).
RADIUS_SERVER_NAME: نام سرور RADIUS.
مثال:
soodar(config)# radius server RAD1
soodar(config-server-radius)#
حذف سرور RADIUS
- no radius server RADIUS_SERVER_NAME
تعریف یک سرور RADIUS را حذف میکند.
RADIUS_SERVER_NAME: نام سرور RADIUS.
تنظیم آدرس سرور
- address <A.B.C.D|X:X::X:X>
آدرس سرور (IPv4 یا IPv6) را تنظیم میکند.
<A.B.C.D|X:X::X:X>: آدرس IP سرور RADIUS. میتواند یک آدرس IPv4 یا IPv6 باشد.
تنظیم پورت سرور
- port (1-65535)
پورت سرور را تنظیم میکند.
(1-65535): شماره پورت سرور RADIUS.
نکته
پیشفرض پورت 1645 است.
تنظیم Timeout سرور
- timeout (1-1000)
Timeout سرور (به ثانیه) را تنظیم میکند.
(1-1000): مقدار timeout به ثانیه.
نکته
Timeout پیشفرض 5 ثانیه است.
تنظیم VRF
- vrf VRFNAME
VRF برای دسترسی به سرور را تنظیم میکند.
VRFNAME: نام VRF برای استفاده در دسترسی به سرور RADIUS.
تنظیم آدرس IP مبدا
- source-ip <A.B.C.D|X:X::X:X>
آدرس IP مبدا مورد استفاده در بستههای RADIUS را تنظیم میکند.
<A.B.C.D|X:X::X:X>: آدرس IP مبدا (IPv4 یا IPv6) مورد استفاده در بستههای RADIUS.
Authentication
Authentication نحوه اعتبارسنجی کاربران در زمان ورود را کنترل میکند.
لیست Authentication برای ورود
لیستهای Authentication تعریف میکنند که از چه روشهایی برای Authentication کاربران در زمان ورود استفاده میشود. lines میتوانند از این لیستها استفاده کنند تا نحوه Authentication کاربرانی که از طریق آن line به دستگاه دسترسی دارند را تعیین کنند.
- aaa authentication login <AUTH_LOGIN_LIST_NAME> {local|tacacs+|radius|none}
یک لیست Authentication ورود ایجاد یا بهروزرسانی میکند. روشها میتوانند ترکیب شوند.
<AUTH_LOGIN_LIST_NAME>: نام لیست Authentication برای ایجاد یا تغییر.local: استفاده از Authentication محلی (پایگاه داده کاربر محلی).tacacs+: استفاده از سرور TACACS+ برای Authentication.radius: استفاده از سرور RADIUS برای Authentication.none: غیرفعال کردن Authentication (توصیه نمیشود).
نکته
یک لیست Authentication default داخلی وجود دارد که میتواند تغییر کند اما حذف نمیشود. این لیست به صورت پیشفرض در تمام lines ورود استفاده میشود مگر اینکه لیست دیگری مشخص شود.
نکته
روش Authentication پیشفرض local است.
نکته
اگر چندین روش مشخص شود، آنها به ترتیب local، TACACS+، RADIUS امتحان میشوند.
نکته امنیتی
برای امنیت، Authentication از راه دور (TACACS+ یا RADIUS) نیاز دارد که کاربر در دستگاه نیز تعریف شود، اما رمز عبور استفاده نمیشود.
مثال:
soodar(config)# aaa authentication login default tacacs+ local
اعمال لیست Authentication به lines
- login authentication AUTH_LOGIN_LIST_NAME
یک لیست Authentication ورود را به context line فعلی اعمال میکند.
AUTH_LOGIN_LIST_NAME: نام لیست Authentication برای اعمال.
برای مثال، برای اعمال فقط Authentication TACACS+ در line vty و هر دو Authentication محلی و TACACS+ در line console:
soodar(config)# aaa authentication login TACACS_ONLY tacacs+
soodar(config)# line vty
soodar(config-line)# login authentication TACACS_ONLY
soodar(config)# aaa authentication login default local tacacs+
توجه داشته باشید که line console از لیست Authentication default داخلی استفاده میکند، بنابراین نیازی به پیکربندی صریح نیست.
Accounting
Accounting فعالیتهای کاربر را ثبت میکند. command accounting دستورات CLI اجرا شده را ثبت میکند. exec accounting کنترل Accounting شروع/توقف session را انجام میدهد.
لیست Accounting برای دستورات
لیستهای Accounting دستورات تعریف میکنند که دستورات اجرا شده چگونه ثبت میشوند. lines میتوانند از این لیستها استفاده کنند تا نحوه ثبت دستورات اجرا شده را تعیین کنند.
- aaa accounting commands <ACCT_CMD_LIST_NAME> start-stop {logger|tacacs+|radius}
command accounting را پیکربندی میکند. روشها میتوانند ترکیب شوند.
<ACCT_CMD_LIST_NAME>: نام لیست Accounting برای ایجاد یا تغییر.start-stop: ثبت هر دو رویداد شروع و توقف دستور.logger: ثبت در system logger.tacacs+: ثبت در سرور TACACS+.radius: ثبت در سرور RADIUS.
نکته
یک لیست Accounting default داخلی وجود دارد که میتواند تغییر کند اما حذف نمیشود. این لیست به صورت پیشفرض در تمام lines استفاده میشود مگر اینکه لیست دیگری مشخص شود.
نکته
به صورت پیشفرض، Accounting غیرفعال است.
نکته
اگر چندین روش مشخص شود، ثبتسازی به تمام روشهای مشخص شده انجام میشود.
غیرفعال کردن command accounting
- aaa accounting commands <ACCT_CMD_LIST_NAME> none
command accounting را برای این لیست غیرفعال میکند.
<ACCT_CMD_LIST_NAME>: نام لیست Accounting برای تغییر.
اعمال لیست Accounting دستورات به lines
- accounting commands <ACCT_CMD_LIST_NAME>
لیست Accounting دستورات را به context line فعلی اعمال میکند.
<ACCT_CMD_LIST_NAME>: نام لیست Accounting برای اعمال.
برای مثال، برای فعال کردن command accounting به هر دو system logger و سرور TACACS+ در lines vty و غیرفعال کردن Accounting در line console:
soodar(config)# aaa accounting commands CMD_ACCT start-stop logger tacacs+
soodar(config)# line vty
soodar(config-line)# accounting commands CMD_ACCT
توجه داشته باشید که line console از لیست Accounting default داخلی استفاده میکند و پیکربندی پیشفرض این است که Accounting انجام نشود، بنابراین نیازی به پیکربندی صریح نیست.
لیست Accounting برای exec
exec accounting رویدادهای شروع و توقف session را ثبت میکند. لیستهای exec accounting تعریف میکنند که Accounting session چگونه ثبت میشود. lines میتوانند از این لیستها استفاده کنند تا نحوه ثبت Accounting session را تعیین کنند.
- aaa accounting exec <ACCT_EXEC_LIST_NAME> start-stop {tacacs+|radius}
exec accounting را پیکربندی میکند. روشها میتوانند ترکیب شوند.
<ACCT_EXEC_LIST_NAME>: نام لیست Accounting برای ایجاد یا تغییر.start-stop: ثبت هر دو رویداد شروع و توقف session.tacacs+: ثبت در سرور TACACS+.radius: ثبت در سرور RADIUS.
نکته
یک لیست Accounting default داخلی وجود دارد که میتواند تغییر کند اما حذف نمیشود. این لیست به صورت پیشفرض در تمام lines استفاده میشود مگر اینکه لیست دیگری مشخص شود.
نکته
به دلایل حسابرسی و امنیتی، Accounting session همیشه به صورت محلی در system logger ثبت میشود علاوه بر هر سرور از راه دوری که پیکربندی شده باشد.
نکته
به صورت پیشفرض، Accounting از راه دور غیرفعال است.
نکته
اگر چندین روش مشخص شود، ثبتسازی به تمام روشهای مشخص شده انجام میشود.
غیرفعال کردن exec accounting
- aaa accounting exec <ACCT_EXEC_LIST_NAME> none
exec accounting را برای این لیست غیرفعال میکند.
<ACCT_EXEC_LIST_NAME>: نام لیست Accounting برای تغییر.
اعمال لیست Accounting exec به lines
- accounting exec <ACCT_EXEC_LIST_NAME>
لیست Accounting exec را به context line فعلی اعمال میکند.
<ACCT_EXEC_LIST_NAME>: نام لیست Accounting برای اعمال.
برای مثال، برای فعال کردن Accounting ورود به هر دو system logger و سرور TACACS+ در lines vty و RADIUS در line console:
soodar(config)# aaa accounting exec EXEC_ACCT start-stop tacacs+
soodar(config)# aaa accounting exec default start-stop radius
soodar(config)# line vty
soodar(config-line)# accounting exec EXEC_ACCT
توجه داشته باشید که line console از لیست Accounting default داخلی استفاده میکند، بنابراین نیازی به پیکربندی صریح نیست. همچنین در این مثال، system logger همیشه برای exec accounting استفاده میشود علاوه بر هر سرور از راه دوری که پیکربندی شده باشد.