CISCO路由器AAA介绍及相关路由配置
3A概念:认证authentication 授权authorization 记帐 accounting
cisco为路由器和交换机提供多种3A服务的方法:
1 自包含AAA 路由器/NAS自身包含AAA服务 NAS(网络访问服务器)
2 CISCO SECURE ACS 路由器/NAS上的AAA服务与外部CISCO SECURE ACS系统联系
3 CISCO SECURE ACS SOLUTION ENGINE 路由器/NAS上的AAA服务与外部CISCO SECURE ACS SOLUTION
3A概念:认证authentication 授权authorization 记帐 accounting
cisco为路由器和交换机提供多种3A服务的方法:
1 自包含AAA 路由器/NAS自身包含AAA服务 NAS(网络访问服务器)
2 CISCO SECURE ACS 路由器/NAS上的AAA服务与外部CISCO SECURE ACS系统联系
3 CISCO SECURE ACS SOLUTION ENGINE 路由器/NAS上的AAA服务与外部CISCO SECURE ACS SOLUTION
ENGINE系统联系
4 第三方ACS 路由器/NAS上的AAA服务与外部CISCO认可的第三方ACS系统联系 radius tacacs+
4 第三方ACS 路由器/NAS上的AAA服务与外部CISCO认可的第三方ACS系统联系 radius tacacs+
cisco secure acs系列是供安全访问网络的一种全面而灵活的平台。他主要负责以下一个方面的安全
通过CISCO NAS和路由器拨号
管理员进行路由器和交换机的控制台及VTY端口访问
CISCO PIX防火墙访问
×××3000系列集线器(仅用于RADIUS)
使用CISCO LEAP 和 PEAP的无线局域网支持
交换机的无线802.1X认证
通过CISCO NAS和路由器拨号
管理员进行路由器和交换机的控制台及VTY端口访问
CISCO PIX防火墙访问
×××3000系列集线器(仅用于RADIUS)
使用CISCO LEAP 和 PEAP的无线局域网支持
交换机的无线802.1X认证
边界路由器AAA配置过程
1 在vty,异步,aux和tty端口对特权EXEC和配置模式进行安全访问
config t
enable password ***
service password-encryption
enable secret ******
2 在边界路由器上,用aaa new-model命令启用AAA。
config t
aaa new-model
username *** password ***
aaa authentication login default local
注意点,在配置aaa new-model命令的时候,一定要提供一种本地登入方式,防止由于管理性会话失效而引发
1 在vty,异步,aux和tty端口对特权EXEC和配置模式进行安全访问
config t
enable password ***
service password-encryption
enable secret ******
2 在边界路由器上,用aaa new-model命令启用AAA。
config t
aaa new-model
username *** password ***
aaa authentication login default local
注意点,在配置aaa new-model命令的时候,一定要提供一种本地登入方式,防止由于管理性会话失效而引发
路由器锁定。
3 配置AAA认证列表
aaa authentication login 定义用户视图登入到路由器时需要使用哪个认证步骤。
aaa authentication ppp 对于使用PPP的串行接口上的用户会话,定义了要使用的认证步骤。
aaa authentication enable default 定义了有人试图通过enable命令进去特权EXEC模式时,应该采用的
3 配置AAA认证列表
aaa authentication login 定义用户视图登入到路由器时需要使用哪个认证步骤。
aaa authentication ppp 对于使用PPP的串行接口上的用户会话,定义了要使用的认证步骤。
aaa authentication enable default 定义了有人试图通过enable命令进去特权EXEC模式时,应该采用的
认证步骤
在访问服务器上全局启用了AAA之后,还需要定义认证方法列表,并将其应用到链路和接口。这些认证方法
在访问服务器上全局启用了AAA之后,还需要定义认证方法列表,并将其应用到链路和接口。这些认证方法
列表指出了服务(PPP,ARAP,NASI,LOGIN) 和认证方法(本地,TACACS+,RADIUS,login 或enable),这里
建议将本地认证作为最后一种方法。
定义认证方法列表
1规定服务(PPP,ARAP,NASI)或登录认证
2标识一个列表名称或采用缺省
3规定认证方法,并规定其中一种不可用时,路由器如何反应
4将其应用到一下链路或接口之一
链路--tty,vty,console,aux和async链路,或者供登入的控制台端口已经供ARA的异步链路
接口--同步,异步以及为PPP.SLIP.NASI或ARAP而配置的虚拟接口
5在全局配置模式下使用aaa authentication命令,以启用AAA认证过程。
1 aaa authentication login命令
config t
aaa authentication login default enable
aaa authentication login console-in local
aaa authentication login tty-in line
console-in和 tty-in是管理员创建的简单的方法列表名称。
aaa authentication login {default | list-name} method1 [method2~~~]
default 用户登入时,使用此变量后面列出的认证方法,作为缺省的方法列表
list-name 当用户登录时,用来命名认证方法列表的字符串
method:
(enable) 使用enable口令来认证
(krb5) 用kerberos 5来认证
(krb5-telnet) 当借助telnet连接路由器时,使用kerberos 5 telnet认证协议
(line) 用链路口令来认证
(local) 用本地用户名数据库来认证
(none) 不用认证
(group- radius) 使用包含所有RADIUS服务器的一个列表来认证
(group tacacs+) 使用包含所有TACACS+服务器的一个列表来认证
(group group-name) 用RADIUS或TACACS+服务器的一个子集来认证 这些服务器定义在aaa group
定义认证方法列表
1规定服务(PPP,ARAP,NASI)或登录认证
2标识一个列表名称或采用缺省
3规定认证方法,并规定其中一种不可用时,路由器如何反应
4将其应用到一下链路或接口之一
链路--tty,vty,console,aux和async链路,或者供登入的控制台端口已经供ARA的异步链路
接口--同步,异步以及为PPP.SLIP.NASI或ARAP而配置的虚拟接口
5在全局配置模式下使用aaa authentication命令,以启用AAA认证过程。
1 aaa authentication login命令
config t
aaa authentication login default enable
aaa authentication login console-in local
aaa authentication login tty-in line
console-in和 tty-in是管理员创建的简单的方法列表名称。
aaa authentication login {default | list-name} method1 [method2~~~]
default 用户登入时,使用此变量后面列出的认证方法,作为缺省的方法列表
list-name 当用户登录时,用来命名认证方法列表的字符串
method:
(enable) 使用enable口令来认证
(krb5) 用kerberos 5来认证
(krb5-telnet) 当借助telnet连接路由器时,使用kerberos 5 telnet认证协议
(line) 用链路口令来认证
(local) 用本地用户名数据库来认证
(none) 不用认证
(group- radius) 使用包含所有RADIUS服务器的一个列表来认证
(group tacacs+) 使用包含所有TACACS+服务器的一个列表来认证
(group group-name) 用RADIUS或TACACS+服务器的一个子集来认证 这些服务器定义在aaa group
server radius或aaa group server tacacs+命令中
2 aaa authentication ppp命令
aaa authentication ppp (default |list-name) method1 [method2~~~]
default 用户登入时,使用此变量后面列出的认证方法,作为缺省的方法列表
list-name 当用户登录时,用来命名认证方法列表的字符串
method:
(if-needed 如果用户在TTY链路上认证了,就不需要再认证
(krb5 用kerberos 5来认证
(local 用本地用户名数据库来认证
(local-case
(none 不用认证
(group group-name 用RADIUS或TACACS+服务器的一个子集来认证 这些服务器定义在aaa group
2 aaa authentication ppp命令
aaa authentication ppp (default |list-name) method1 [method2~~~]
default 用户登入时,使用此变量后面列出的认证方法,作为缺省的方法列表
list-name 当用户登录时,用来命名认证方法列表的字符串
method:
(if-needed 如果用户在TTY链路上认证了,就不需要再认证
(krb5 用kerberos 5来认证
(local 用本地用户名数据库来认证
(local-case
(none 不用认证
(group group-name 用RADIUS或TACACS+服务器的一个子集来认证 这些服务器定义在aaa group
server radius或aaa group server tacacs+命令中
3 aaa authentication enable default命令
aaa authentication enable default method1 [method2~~~]
method:
enable 使用enable口令来认证
line 用链路口令来认证
none 不用认证
group radius 使用包含所有RADIUS服务器的一个列表来认证
group tacacs+ 使用包含所有TACACS+服务器的一个列表来认证
group group-name 用RADIUS或TACACS+服务器的一个子集来认证 这些服务器定义在aaa group
3 aaa authentication enable default命令
aaa authentication enable default method1 [method2~~~]
method:
enable 使用enable口令来认证
line 用链路口令来认证
none 不用认证
group radius 使用包含所有RADIUS服务器的一个列表来认证
group tacacs+ 使用包含所有TACACS+服务器的一个列表来认证
group group-name 用RADIUS或TACACS+服务器的一个子集来认证 这些服务器定义在aaa group
server radius或aaa group server tacacs+命令中
4 对链路和接口应用认证命令
config t
aaa new-model 启用AAA
aaa authentication login default enable 将enable口令作为缺省的登入方式
aaa authentication login console-in group tacacs+ local 无论何时使用名为console-in的列
4 对链路和接口应用认证命令
config t
aaa new-model 启用AAA
aaa authentication login default enable 将enable口令作为缺省的登入方式
aaa authentication login console-in group tacacs+ local 无论何时使用名为console-in的列
表,都使用TACACS+认证,如果TACACS+认证失败,己用本地用户名和口令
aaa authentication login dial-in group tacacs+ 无论何时使用名为dial-in的列表,都
aaa authentication login dial-in group tacacs+ 无论何时使用名为dial-in的列表,都
使用TACACS+认证.
username *** password **** 建立一个本地用户名和口令,最可能与console-in登录方法列
username *** password **** 建立一个本地用户名和口令,最可能与console-in登录方法列
表一起使用
line console 0 进入链路控制台配置模式
login authentication console-in 使用console-in列表作为控制台端口0的登录认证
line s3/0
ppp authentication chap dial-in 使用dial-in列表作接口S3/0 的PPP CHAP的登录认证
4 配置供用户通过认证之后的AAA授权
aaa authorization 命令
aaa authorization {network|exec|commands level|reverse-access|configuration} {default
line console 0 进入链路控制台配置模式
login authentication console-in 使用console-in列表作为控制台端口0的登录认证
line s3/0
ppp authentication chap dial-in 使用dial-in列表作接口S3/0 的PPP CHAP的登录认证
4 配置供用户通过认证之后的AAA授权
aaa authorization 命令
aaa authorization {network|exec|commands level|reverse-access|configuration} {default
|list-name} method1 [method2~~~]
network 为所有网络相关的服务请求进行授权,包括SLIP,PPP,PPP NCP和ARA
exec 使用授权,以确定是否用户可以运行一个EXEC shell.
commands 为所有处于规定的特权级别的命令使用授权
level 规定应该被授权的命令级别,有效值 0-15
reverse-access 为反向访问连接使用授权,例如反向Telnet
configuration 从AAA服务器上下载配置
default 使用此变量后列出的认证方法,作为缺省方法列表供认证
listname 用来命令认证方法列表的字符串
method 规定以下关键字的至少一种
group 用radius或tacacs+服务器的一个子集来认证,这些服务器定义在aaa group server radius
network 为所有网络相关的服务请求进行授权,包括SLIP,PPP,PPP NCP和ARA
exec 使用授权,以确定是否用户可以运行一个EXEC shell.
commands 为所有处于规定的特权级别的命令使用授权
level 规定应该被授权的命令级别,有效值 0-15
reverse-access 为反向访问连接使用授权,例如反向Telnet
configuration 从AAA服务器上下载配置
default 使用此变量后列出的认证方法,作为缺省方法列表供认证
listname 用来命令认证方法列表的字符串
method 规定以下关键字的至少一种
group 用radius或tacacs+服务器的一个子集来认证,这些服务器定义在aaa group server radius
或aaa group server tacacs+命令中
if-authenticated 如果用户为认证,允许用户访问请求的功能;
krb5-instance 使用被kerberos instance map命令定义的实例;
local 用本地用户名数据库来授权
none 不用授权
例子:
enable secret level 1 *** 为级别1的用户建立一个enable secret口令
enable secret level 15 *** 为级别15的用户建立一个enable secret口令
aaa new-model 启用AAA
aaa authentication login default enable 将enable口令作为缺省的登入方式
aaa authentication login console-in group tacacs+ local 无论何时使用名为console-in的列
if-authenticated 如果用户为认证,允许用户访问请求的功能;
krb5-instance 使用被kerberos instance map命令定义的实例;
local 用本地用户名数据库来授权
none 不用授权
例子:
enable secret level 1 *** 为级别1的用户建立一个enable secret口令
enable secret level 15 *** 为级别15的用户建立一个enable secret口令
aaa new-model 启用AAA
aaa authentication login default enable 将enable口令作为缺省的登入方式
aaa authentication login console-in group tacacs+ local 无论何时使用名为console-in的列
表,都使用TACACS+认证,如果TACACS+认证失败,己用本地用户名和口令
aaa authentication login dial-in group tacacs+ 无论何时使用名为dial-in的列表,都使用
aaa authentication login dial-in group tacacs+ 无论何时使用名为dial-in的列表,都使用
TACACS+认证.
username *** password **** 建立一个本地用户名和口令,最可能与console-in登录方法列
username *** password **** 建立一个本地用户名和口令,最可能与console-in登录方法列
表一起使用
aaa authorization commands 1 alpha local 用本地用户名数据库来为所有级别1命令的使用进行
aaa authorization commands 1 alpha local 用本地用户名数据库来为所有级别1命令的使用进行
授权
aaa authorization commands 15 bravo if-authenticated group tacplus local 如果用户已经认
aaa authorization commands 15 bravo if-authenticated group tacplus local 如果用户已经认
证了,让其运行级别15的命令,如果还未认证,在允许其访问级别15的命令之前,必须基于tacplus组中的
TACACS+服务器来认证
aaa authorization network charlie local none 使用本地数据库来对所有网络服务的使用授权,
aaa authorization network charlie local none 使用本地数据库来对所有网络服务的使用授权,
如果本地服务器不可用,此命令执行并不授权,用户能使用所有的网络服务
aaa authorization exec delta if-authenticated group tacplus 如果用户已经认证,让其运行
aaa authorization exec delta if-authenticated group tacplus 如果用户已经认证,让其运行
EXEC过程,如果没有认证,在允许EXEC之前,必须基于tacplus组中的TACACS+服务器来认证
privilege exec level 1 ping 为级别1的用户启用PING
line console 0
login authentication console-in 使用console-in列表作为控制台端口0的登录认证
line s3/0
ppp authentication chap dial-in 使用dial-in列表作接口S3/0 的PPP CHAP的登录认证
privilege exec level 1 ping 为级别1的用户启用PING
line console 0
login authentication console-in 使用console-in列表作为控制台端口0的登录认证
line s3/0
ppp authentication chap dial-in 使用dial-in列表作接口S3/0 的PPP CHAP的登录认证
5 配置规定如何写记帐记录的AAA记帐
aaa accounting [auth-proxy |system |network |exec |connection |commands level]{default
aaa accounting [auth-proxy |system |network |exec |connection |commands level]{default
|list-name} [vrf vrf-name] [start-stop|stop-only|none][broadcast][method][method2]
auth-proxy 提供有关所有认证代理用户事件的信息
system 为所有非用户相关的系统级事件执行记帐
network 为所有网络相关的服务请求运行记帐
exec 为EXEC shell会话运行记帐。
connection 提供所有有关源子NAS的外出连接的信息
commands 为所有处于特定特权级别的命令运行记帐,有效的特权级别取值0-15
default 使用本参数之后列出的记帐方式
list-name 用来命令记帐方式列表的字符串
vrf vrf-name 规定一个VRF配置
start-stop 在一个过程的开端,发送一个开始记帐通知,在过程结束时,发送一个停止记帐通知
auth-proxy 提供有关所有认证代理用户事件的信息
system 为所有非用户相关的系统级事件执行记帐
network 为所有网络相关的服务请求运行记帐
exec 为EXEC shell会话运行记帐。
connection 提供所有有关源子NAS的外出连接的信息
commands 为所有处于特定特权级别的命令运行记帐,有效的特权级别取值0-15
default 使用本参数之后列出的记帐方式
list-name 用来命令记帐方式列表的字符串
vrf vrf-name 规定一个VRF配置
start-stop 在一个过程的开端,发送一个开始记帐通知,在过程结束时,发送一个停止记帐通知
。
stop-only 在被请求用户工程结束时发送一个停止记帐通知
none 禁止此链路或接口上的记帐服务
broadcast 启用发送记帐记录到多个3A服务器,同时向每个组中第一台服务器发送记帐记
stop-only 在被请求用户工程结束时发送一个停止记帐通知
none 禁止此链路或接口上的记帐服务
broadcast 启用发送记帐记录到多个3A服务器,同时向每个组中第一台服务器发送记帐记
录
method 规定一下关键子中的至少一个
group radius 用所有RADIUS服务器列表作为记帐
group tacacs+ 用所有列出的TACACS+服务器来记帐
group group-name 用RADIUS或TACACS+服务器的一个子集作为记帐
在路由器上启用下列命令以启用几张
aaa accounting system wait-start local 用记帐方法审计系统事件
aaa accounting network stop-only local 当网络服务中断,发送停止记录通知
aaa accounting exec start-stop local 当EXEC过程开始时,发送一个开始记录通知,结束时,发
method 规定一下关键子中的至少一个
group radius 用所有RADIUS服务器列表作为记帐
group tacacs+ 用所有列出的TACACS+服务器来记帐
group group-name 用RADIUS或TACACS+服务器的一个子集作为记帐
在路由器上启用下列命令以启用几张
aaa accounting system wait-start local 用记帐方法审计系统事件
aaa accounting network stop-only local 当网络服务中断,发送停止记录通知
aaa accounting exec start-stop local 当EXEC过程开始时,发送一个开始记录通知,结束时,发
送停止记录
aaa accounting commands 15 wait-start local 在任何级别15的命令开始之前,发送一个开始记录通
aaa accounting commands 15 wait-start local 在任何级别15的命令开始之前,发送一个开始记录通
知,并等待确认,当命令中止时,发送一个停止记录通知。
6 校验配置
debug aaa authentication 显示有关认证功能的调试信息
debug aaa authorization 显示有关授权功能的调试信息
debug aaa accounting 显示有关记帐功能的调试信息
6 校验配置
debug aaa authentication 显示有关认证功能的调试信息
debug aaa authorization 显示有关授权功能的调试信息
debug aaa accounting 显示有关记帐功能的调试信息