访问手机版  

招聘|合作 登陆|注册

网络工程师培训

当前位置:网络工程师 > 国际认证 > 思科培训 > CCNP > 热点关注 > CCNP新闻

CCNP学习之3A,不看会后悔系列!

时间:2018-06-20 11:29:41

学习CCNP的人都知道3A是什么,3A就是:Authentication、Authentication、Accouting。但是3A学起来还是有一定难度,所以我们今天就来说说3A的学习!
Authentication:用于验证用户的访问,如login access,ppp network access等。
Authorization:在Autentication成功验证后,Authorization用于限制用户可以执行什么操作,可以访问什么服务。
Accouting:记录Authentication及Authorization的行为。
Part I. 安全协议
1)Terminal Access Controller Access Control System Plus (TACACS+)
Cisco私有的协议。加密整个发给tacacs+ server的消息,用户的keys。
支持模块化AAA,可以将不同的AAA功能分布于不同的AAA Server甚至不同的安全协议,从而可以实现不同的AAA Server/安全协议实现不同的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的会话始终保留一条TCP链接,而不是默认的每次会话都打开/关闭TCP链接。
(2)配置两个tacacs-server host命令可以实现tacacs+的冗余,如果第一个server fail了,第二个server可以接管相应的服务。第一个tacacs-server host命令指定的server为主,其它为备份。
(3)配置inbound acl时需要permit tacacs+的TCP port 49。
(4) 如果两个tacacs-server使用不同的key,则需要在tacacs-server host命令中指定不同的encryption_key,否则可以使用tacacs-server key统一定制。但tacacs-server host命令中的key定义优先于tacacs-server key命令。
Troubleshooting:
命令:
#show tacacs
#debug tacacs 关于TACACS+的操作信息。
#debug tacacs events 比debug tacacs更详细的信息,包括router上运行的 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是一个开放的标准,定义于RFC 2865和2865。
RADIUS使用一个共享的密钥,并且只加密用户的keys,而不是TACACS+的整个AAA消息。用户的keys不会明文在网络上传递。
RADIUS应用范围:
(1)使用multiple vendors设备,并且需要一个单独的安全协议用于AAA。
(2)需要实现资源记录,如跟踪用户登录router多长时间及用户访问网络多长时间。
(3)smart card authentication systems只支持RADIUS。
(4)在用户初始化访问一个设备时,对他进行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(如:两个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监听Authentication消息默认使用UDP 1645.Authorization消息默认使用UDP 1646.
(2)配置inbound acl以permit UDP 1645/1646。
(3)RFC 2026中指出,RADIUS也可能使用UDP 1812/1813,一些新的RADIUS Server同时监听UDP 1645/1646及UDP 1812/1813。所以配置router inbound acl以permit相应的端口。
(4)RADIUS默认timeout为5s,retransmit为3.
Troubleshooting:
show radius statistics
debug radius [brief] 
加上brief参数功能类似于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
默认使用tacacs-server host或radius-server host命令配置的AAA Server都是按命令出现的顺序分为主/备服务器,可以使用aaa group server radius/tacacs+命令覆盖实现部分配置的host做为验证server。同时可以实现不同的aaa group实现不同的AAA功能,如group1实现Authentication,group2实现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中混合使用多种安全协议。
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等远程访问协议建立一个data-link layer链接。
Method lists:
指定一系列的认证方式。如group tacacs+,group radius,local,none等。
每个authentication命令最多只能同时使用4种认证methods。
认证的结果:
Success:此method可达,且用户通过验证。
Fail:此mothod可达,但用户验证失败。
Error:有两种情况
(1)此mothod中指定的aaa server group中的一个AAA Server不可达,第二个AAA Server被尝试。
(2)此mothod指定的方式不存在,或AAA group中的所有的servers都不可达。 
注:
1>如果router试图访问的所有mothods结果都是unsuccessful,则router acl会自动deny以后的authentication request。
2>如果指定的mothod是local,且没有与用户提供的用户名相匹配的username,则验证结果为Error。
Authtication Command Syntax:
aaa authtication login {认证列表名称} {验证方法}
{认证列表名称}
default:默认的authentication认证方式。
name:指定特定的认证方式列表,实现更具体的认证。
{验证方法}
enable使用enable帐号密码验证
group:使用Server Group验证
krb5:使用kerberos V验证
krb5-telnet:使用kerberos V验证telnet
line:使用线路密码验证
local:使用本地帐号密码验证
local-case:使用本地帐号密码验证(区分大小写)
none:不进行验证
aaa authentication enable default {验证方法}
{验证方法}
enable
group
line
none
aaa authentication ppp {认证列表名称} {验证方法}
{认证列表名称}
default:默认的authentication认证方式。
name:指定特定的认证方式列表,实现更具体的认证。
{验证方法}
group
if-needed:如果用户已经通过tty线路身份验证,则在此不验证用户身份,直接通过
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等待多长时间将此认证method认为是error。默认timeout为30s,取值范围1~300s。
4>上图列出的methods,aaa authentication enable不支持local和local-case。
Username and Password Prompts:
默认用户登录时,cisco会给出这样的提示符:
Username: 
Password: 
可以使用以下命令修改这些默认的提示:
Router(config)# aaa authentication username-prompt {prompt_string} Router(config)# aaa authentication password-prompt {prompt_string}
注:
TACACS+/RADIUS Server也支持修改默认的提示符,如果同时配置aaa authentication username-prompt/password-prompt命令和TACACS+/RADIUS Server配置,则cisco优先使用TACACS+/RADIUS Server配置的pro
mpt。
Login Banners:
可以使用aaa来代替默认用banner命令配置的登录提示消息:
Router(config)# aaa authentication banner {stop_character message stop_character} 注:最多支持2996个字符。 
也可以修改用户在输入无效的用户名/密码时的提示:
Router(config)# aaa authentication fail-message {stop_character message stop_character}
注:最多支持2996个字符。
Login Attempts:
默认cisco router允许用户尝试3次登录,最后disconnect用户的链接。可以使用以下命令修改允许尝试的次数:
Router(config)# aaa authentication attempts login {#_of_attempts} 注:
1>可配置的次数为1~25。
2>推荐将网络外接设备的login attempts次数修改为1,这样可以减少对密码暴力破解的机会。