學(xué)習(xí)CCNP的人都知道3A是什么,3A就是:Authentication、Authentication、Accouting。但是3A學(xué)起來還是有一定難度,所以我們今天就來說說3A的學(xué)習(xí)!
Authentication:用于驗(yàn)證用戶的訪問,如login access,ppp network access等。
Authorization:在Autentication成功驗(yàn)證后,Authorization用于限制用戶可以執(zhí)行什么操作,可以訪問什么服務(wù)。
Accouting:記錄Authentication及Authorization的行為。
Part I. 安全協(xié)議
1)Terminal Access Controller Access Control System Plus (TACACS+)
Cisco私有的協(xié)議。加密整個(gè)發(fā)給tacacs+ server的消息,用戶的keys。
支持模塊化AAA,可以將不同的AAA功能分布于不同的AAA Server甚至不同的安全協(xié)議,從而可以實(shí)現(xiàn)不同的AAA Server/安全協(xié)議實(shí)現(xiàn)不同的AAA功能。
配置命令:
Router(config)# tacacs-server host IP_address [single-connection] [port {port_#}] [timeout {seconds}] [key {encryption_key}]
Router(config)# tacacs-server key {encryption_key} 注:
(1)single-connection:為Router與AAA Server的會(huì)話始終保留一條TCP鏈接,而不是默認(rèn)的每次會(huì)話都打開/關(guān)閉TCP鏈接。
(2)配置兩個(gè)tacacs-server host命令可以實(shí)現(xiàn)tacacs+的冗余,如果第一個(gè)server fail了,第二個(gè)server可以接管相應(yīng)的服務(wù)。第一個(gè)tacacs-server host命令指定的server為主,其它為備份。
(3)配置inbound acl時(shí)需要permit tacacs+的TCP port 49。
(4) 如果兩個(gè)tacacs-server使用不同的key,則需要在tacacs-server host命令中指定不同的encryption_key,否則可以使用tacacs-server key統(tǒng)一定制。但tacacs-server host命令中的key定義優(yōu)先于tacacs-server key命令。
Troubleshooting:
命令:
#show tacacs
#debug tacacs 關(guān)于TACACS+的操作信息。
#debug tacacs events 比debug tacacs更詳細(xì)的信息,包括router上運(yùn)行的 TACACS+ processes消息。
Router# show tacacs
Tacacs+ Server : 10.0.0.10/49
Socket opens: 3
Socket closes: 3
Socket aborts: 0
Socket errors: 0
Socket Timeouts: 0
Failed Connect Attempts: 0
Total Packets Sent: 42
Total Packets Recv: 41
Expected Replies: 0
No current connection
2>Remote Authentication Dial-In User Service (RADIUS)
RADIUS是一個(gè)開放的標(biāo)準(zhǔn),定義于RFC 2865和2865。
RADIUS使用一個(gè)共享的密鑰,并且只加密用戶的keys,而不是TACACS+的整個(gè)AAA消息。用戶的keys不會(huì)明文在網(wǎng)絡(luò)上傳遞。
RADIUS應(yīng)用范圍:
(1)使用multiple vendors設(shè)備,并且需要一個(gè)單獨(dú)的安全協(xié)議用于AAA。
(2)需要實(shí)現(xiàn)資源記錄,如跟蹤用戶登錄router多長(zhǎng)時(shí)間及用戶訪問網(wǎng)絡(luò)多長(zhǎng)時(shí)間。
(3)smart card authentication systems只支持RADIUS。
(4)在用戶初始化訪問一個(gè)設(shè)備時(shí),對(duì)他進(jìn)行preauthentication。
RADIUS的使用限制:
(1) 不支持Apple Talk's Remote Access Protocol(ARAP),the NetBIOS Frame Control Protocol(NBFCP),NetWare's Asynchronous Serveices Interface(NASI)及X.25 PAD鏈接。
(2)RAIUDS不支持模塊化AAA操作,即只可以使用RADIUS來完成全部的AAA操作。
(3)只支持one-way authentication.不支持two-way authentication(如:兩個(gè)router之間的PPP CHAP Authentication).
(4)RADIUS將Authentication及Authorization功能集成為"Authentication"。
配置命令:
Router(config)# radius-server host IP_address [auth-port {port_#}] [acct-port {port_#}] [timeout {seconds}] [retransmit {retries}] [key {key_value}] [alias {hostname | IP_address}]
Router(config)# radius-server timeout {seconds}
Router(config)# radius-server retransmit {retries}
Router(config)# radius-server key {key_value}
注:
(1)RADIUS Server daemon監(jiān)聽Authentication消息默認(rèn)使用UDP 1645.Authorization消息默認(rèn)使用UDP 1646.
(2)配置inbound acl以permit UDP 1645/1646。
(3)RFC 2026中指出,RADIUS也可能使用UDP 1812/1813,一些新的RADIUS Server同時(shí)監(jiān)聽UDP 1645/1646及UDP 1812/1813。所以配置router inbound acl以permit相應(yīng)的端口。
(4)RADIUS默認(rèn)timeout為5s,retransmit為3.
Troubleshooting:
show radius statistics
debug radius [brief]
加上brief參數(shù)功能類似于debug tacacs命令,不加則類似于debug tacacs event命令。
Router# show radius statistics
Auth. Acct. Both
Maximum inQ length: NA NA 1
Maximum waitQ length: NA NA 1
Maximum doneQ length: NA NA 1
Total responses seen: 5 0 5
Packets with responses: 5 0 5
Packets without responses: 0 0 0
Average response delay(ms): 1880 0 1880
Maximum response delay(ms): 6540 0 6540
Number of Radius timeouts: 0 0 0
Duplicate ID detects: 0 0 0
3>Kerberos
其中TACACS+及RADIUS全面支持AAA。Kerberos只支持Authentication。
Item
TACACS+
RADIUS
Comparison
Connection
TCP
UDP
UDP has less overhead; however, with TCP, TACACS+ more quickly can detect a failed server and switch over to a backup. TCP can do this by having the router look for an RST (closed connection) message or by using TCP keepalives.
Encryption
Payload
Passwords
TACACS+ is more secure because it encrypts the entire payload, which includes all user and AAA message information; RADIUS encrypts only passwords, so everything else, including usernames and other account information, is sent in clear text.
Authentication and authorization
Separate
Combined
RADIUS combines authentication and authorization functions, which means that you must use the same server or group for these functions. TACACS+ separates them, giving you more control over the server that handles these functions.
WAN protocols
PPP, ARAP, NetBIOS, NASI, and X.25 PAD
PPP and SLIP
TACACS+ is better suited for remote-access situations that involve multiple dialup protocols, whereas RADIUS supports only PPP and SLIP.
Router command authorization
Yes
No
TACACS+ enables you to control what commands an authenticated user can execute on a router; RADIUS does not.
Accounting
Basic
Advanced
The one big advantage that RADIUS has over TACACS+ is its robust accounting, which is why many ISPs use it to monitor PPP connections.
Part II. Server Groupings
默認(rèn)使用tacacs-server host或radius-server host命令配置的AAA Server都是按命令出現(xiàn)的順序分為主/備服務(wù)器,可以使用aaa group server radius/tacacs+命令覆蓋實(shí)現(xiàn)部分配置的host做為驗(yàn)證server。同時(shí)可以實(shí)現(xiàn)不同的aaa group實(shí)現(xiàn)不同的AAA功能,如group1實(shí)現(xiàn)Authentication,group2實(shí)現(xiàn)Authorization等。
配置命令:
Router(config)# aaa group server radius | tacacs+ {group_name}
Router(config-sg)# server {IP_address | hostname} [auth-port {port_#}] [acct-port {port_#}]
注:
(1)不能在aaa group server中混合使用多種安全協(xié)議。
Part III. Authentication
router支持authentication以下兩種基本的訪問模式。
1>Character mode:用戶通過console, auxiliary, TTY, or VTY線路獲得到router的 user或privileged EXEC訪問。
2>Packet mode:用戶通過使用 PPP, SLIP, ARAP, NASI, NetBIOS, or X.25 PAD等遠(yuǎn)程訪問協(xié)議建立一個(gè)data-link layer鏈接。
Method lists:
指定一系列的認(rèn)證方式。如group tacacs+,group radius,local,none等。
每個(gè)authentication命令最多只能同時(shí)使用4種認(rèn)證methods。
認(rèn)證的結(jié)果:
Success:此method可達(dá),且用戶通過驗(yàn)證。
Fail:此mothod可達(dá),但用戶驗(yàn)證失敗。
Error:有兩種情況
(1)此mothod中指定的aaa server group中的一個(gè)AAA Server不可達(dá),第二個(gè)AAA Server被嘗試。
(2)此mothod指定的方式不存在,或AAA group中的所有的servers都不可達(dá)。
注:
1>如果router試圖訪問的所有mothods結(jié)果都是unsuccessful,則router acl會(huì)自動(dòng)deny以后的authentication request。
2>如果指定的mothod是local,且沒有與用戶提供的用戶名相匹配的username,則驗(yàn)證結(jié)果為Error。
Authtication Command Syntax:
aaa authtication login {認(rèn)證列表名稱} {驗(yàn)證方法}
{認(rèn)證列表名稱}
default:默認(rèn)的authentication認(rèn)證方式。
name:指定特定的認(rèn)證方式列表,實(shí)現(xiàn)更具體的認(rèn)證。
{驗(yàn)證方法}
enable使用enable帳號(hào)密碼驗(yàn)證
group:使用Server Group驗(yàn)證
krb5:使用kerberos V驗(yàn)證
krb5-telnet:使用kerberos V驗(yàn)證telnet
line:使用線路密碼驗(yàn)證
local:使用本地帳號(hào)密碼驗(yàn)證
local-case:使用本地帳號(hào)密碼驗(yàn)證(區(qū)分大小寫)
none:不進(jìn)行驗(yàn)證
aaa authentication enable default {驗(yàn)證方法}
{驗(yàn)證方法}
enable
group
line
none
aaa authentication ppp {認(rèn)證列表名稱} {驗(yàn)證方法}
{認(rèn)證列表名稱}
default:默認(rèn)的authentication認(rèn)證方式。
name:指定特定的認(rèn)證方式列表,實(shí)現(xiàn)更具體的認(rèn)證。
{驗(yàn)證方法}
group
if-needed:如果用戶已經(jīng)通過tty線路身份驗(yàn)證,則在此不驗(yàn)證用戶身份,直接通過
krb5
local-case
local
none
Authtication Configuration:
Router(config)# aaa new-model
Router(config)# aaa authentication login {default | list_name} method1 [method2...]
Router(config)# aaa authentication enable default method1 [method2...]
Router(config)# line [aux | console | tty | vty] start_line_# [end_line_#]
Router(config-line)# login authentication {default | list_name}
Router(config-line)# timeout login response {seconds}
Method Keyword
Description
enable
The password in the enable secret or enable password commands is used to perform the authentication.
line
The line password command, on the line that the user is trying to access, is used to perform authentication.
local
The username commands are used to perform authentication.
local-case
The username commands are used to perform authentication. However, the username that the user enters is treated as case sensitive.
none
No authentication is performed.
group radius
All configured RADIUS servers can be used to perform authentication.
group tacacs+
All configured TACACS+ servers can be used to perform authentication.
group group_name
Only servers in the specified aaa group server command are used to perform authentication.
注:
1>aaa authentication login:User EXEC Authentication
2>aaa authentication enable:Privileged EXEC Authentication
3>timeout值為cisco router等待多長(zhǎng)時(shí)間將此認(rèn)證method認(rèn)為是error。默認(rèn)timeout為30s,取值范圍1~300s。
4>上圖列出的methods,aaa authentication enable不支持local和local-case。
Username and Password Prompts:
默認(rèn)用戶登錄時(shí),cisco會(huì)給出這樣的提示符:
Username:
Password:
可以使用以下命令修改這些默認(rèn)的提示:
Router(config)# aaa authentication username-prompt {prompt_string} Router(config)# aaa authentication password-prompt {prompt_string}
注:
TACACS+/RADIUS Server也支持修改默認(rèn)的提示符,如果同時(shí)配置aaa authentication username-prompt/password-prompt命令和TACACS+/RADIUS Server配置,則cisco優(yōu)先使用TACACS+/RADIUS Server配置的pro
mpt。
Login Banners:
可以使用aaa來代替默認(rèn)用banner命令配置的登錄提示消息:
Router(config)# aaa authentication banner {stop_character message stop_character} 注:最多支持2996個(gè)字符。
也可以修改用戶在輸入無效的用戶名/密碼時(shí)的提示:
Router(config)# aaa authentication fail-message {stop_character message stop_character}
注:最多支持2996個(gè)字符。
Login Attempts:
默認(rèn)cisco router允許用戶嘗試3次登錄,最后disconnect用戶的鏈接?梢允褂靡韵旅钚薷脑试S嘗試的次數(shù):
Router(config)# aaa authentication attempts login {#_of_attempts} 注:
1>可配置的次數(shù)為1~25。
2>推薦將網(wǎng)絡(luò)外接設(shè)備的login attempts次數(shù)修改為1,這樣可以減少對(duì)密碼暴力破解的機(jī)會(huì)。