Cisco AAA 配置
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何在Cisco设备上来配置AAA的认证?
实验设备:
cisco 3640路由器1台,PC一台,Console线缆一根,交叉线一根
实验拓扑:
实验过程:
第一步:通过console线缆,使用超级终端或者SecureCRT登录路由器,完成基本配置,同时将交叉线连接到路由器E1/0,t在PC的接口上配置IP为192.168.10.1,掩码255.255.255.0 Router>enable
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#no ip domain-lookup
Router(config)#line console 0
Router(config-line)#no exec-t
Router(config-line)#logg syn
3640(config)#host R3640
R3640(config)#int e1/0
R3640(config-if)#ip add 192.168.10.3 255.255.255.0
R3640(config-if)#no sh
R3640(config-if)#end
*Mar 1 00:02:02.499: %SYS-5-CONFIG_I: Configured from console by console
R3640#ping 192.168
*Mar 1 00:02:03.659: %LINK-3-UPDOWN: Interface Ethernet1/0, changed state to up *Mar 1 00:02:04.659: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet1/0, changed state to up
R3640#ping 192.168.10.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.1, timeout is 2 seconds:
.
Success rate is 80 percent (4/5), round-trip min/avg/max = 12/32/44 ms
第二步:启用AAA,并配置登录验证为local
R3640#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R3640(config)#aaa ?
new-model Enable NEW access control commands and functions.(Disables OLD
commands.)
R3640(config)#aaa new-model全局启用AAA功能
R3640(config)#aaa authentication login ?当用户登录时启用AAA认证功能,并且定义认证时调用的名字是默认的”default”,还是自己随便定义1个
WORD Named authentication list.
default The default authentication list.
R3640(config)#aaa authentication login default ?指定用哪种认证方式 enable Use enable password for authentication. 使用特权密码
group Use Server-group 使用Radius或者Tacacs+协议
krb5 Use Kerberos 5 authentication. 使用Kerberos
krb5-telnet Allow logins only if already authenticated via Kerberos V
Telnet.
line Use line password for authentication. 使用线路认证方式 local Use local username authentication.使用本地认证方式,需配置用户名和密码
local-case Use case-sensitive local username authentication.
none NO authentication. 不做认证
配置当用户登录设备时,使用aaa本地登录认证方式,认证调用的名字为default,认证方式为local
R3640(config)#aaa authentication login default local
配置本地登录时,使用的用户名和密码。
密码我配置的为经过 MD5加密的secret密码。
安全性高,在show running-config显示的是密文的。
不建议配置明文的用户名和密码如
(R3640(config)#username admin password admin)
密码建议配置复杂一点,要有大小写,特殊字符,和数字,长度大于8位以上。
如:P@ssw0rd R3640(config)#username nousername secret nopassword
第三步:启用认证调试,观察debug 现象
R3640#debug aaa authentication
AAA Authentication debugging is on
R3640#
第四步:如图1所示,在PC上使用telnet,远程登录路由器
第五步:如图2所示,输入刚才再配置,登录的用户名nousername 和密码nopassword。
输入的密码是不会显示的,不然怎么叫密码了,登录成功之后,在当前路由器的用户模式。
说明我们已经完成了aaa的认证功能,并没有配置VTY的密码,而是使用aaa完成的认证
第六步:如图3所示,输入enable,尝试进入特权模式,路由器提示如下认证错误。
为什么了?
第七步:当输入enable,尝试登录时,查看路由器的上的debug现象
R3640#
*Mar 1 00:38:49.347: AAA: parse name=tty130 idb type=-1 tty=-1
*Mar 1 00:38:49.347: AAA: name=tty130 flags=0x11 type=5 shelf=0 slot=0 adapter=0 port=130 channel=0
*Mar 1 00:38:49.347: AAA/MEMORY: create_user (0x637810BC) user='nousername'(登录的用户名和密码) ruser='NULL' ds0=0 port='tty130' rem_addr='192.168.10.1'(PC IP地址) authen_type=ASCII service=ENABLE priv=15 initial_task_id='0', vrf= (id=0)
*Mar 1 00:38:49.351: AAA/AUTHEN/START (509980843): port='tty130' list=''
action=LOGIN service=ENABLE 输入
enable
(没有enable密码)
*Mar 1 00:38:49.351: AAA/AUTHEN/START (509980843): non-console enable - default to enable password
*Mar 1 00:38:49.351: AAA/AUTHEN/START (509980843): Method=ENABLE
R3640#
*Mar 1 00:38:49.351: AAA/AUTHEN(509980843): can't find any passwords 没有发现enable 密码
*Mar 1 00:38:49.351: AAA/AUTHEN(509980843): Status=ERROR (认证状态发生错误)
*Mar 1 00:38:49.351: AAA/AUTHEN/START (509980843): no methods left to try
*Mar 1 00:38:49.351: AAA/AUTHEN(509980843): Status=ERROR
*Mar 1 00:38:49.351: AAA/AUTHEN/START (509980843): failed to authenticate 认证失败,原因是没有配置enable密码
*Mar 1 00:38:49.355: AAA/MEMORY: free_user (0x637810BC) user='nousername'
ruser='NULL' port='tty130' rem_addr='192.168.10.1' authen_type=ASCII service=ENABLE priv=15 vrf= (id=0)
R3640#
第七步:如果要想远程登录能进入到特权模式,完成配置,还需要在路由器上配置enable 密码。
如果希望让某个大虾,只活动用户模式下,那暂且可以不配,但是没有enable那不是不科学的,不敢保证,永远也不需要远程调试路由器,如果需要调试,那肯定就需要enable密码才可以进入,如图4所示,
第八步:如图5所示,输入刚配置的enable secret密码,可以登录到特权模式。
思考上图中为什么出现以下错误提示:
R3640>enable
Password:
% Access denied
R3640>enable
Password:
% Password: timeout expired!
% Error in authentication.
输入enable密码,进入特权模式时,authentication debug 消息
*Mar 1 00:51:26.719: AAA/MEMORY: free_user (0x63D5B984) user='NULL' ruser='NULL' port='tty130' rem_addr='192.168.10.1' authen_type=ASCII service=ENABLE priv=15 vrf= (id=0)
R3640#
*Mar 1 00:51:30.667: AAA: parse name=tty130 idb type=-1 tty=-1
*Mar 1 00:51:30.667: AAA: name=tty130 flags=0x11 type=5 shelf=0 slot=0 adapter=0 port=130 channel=0
*Mar 1 00:51:30.667: AAA/MEMORY: create_user (0x63D5B984) user='nousername'
ruser='NULL' ds0=0 port='tty130' rem_addr='192.168.10.1' authen_type=ASCII
service=ENABLE priv=15 initial_task_id='0', vrf= (id=0)
*Mar 1 00:51:30.667: AAA/AUTHEN/START (2028066283): port='tty130' list=''
action=LOGIN service=ENABLE
*Mar 1 00:51:30.671: AAA/AUTHEN/START (2028066283): non-console enable - default to enable password
*Mar 1 00:51:30.671: AAA/AUTHEN/START (2028066283): Method=ENABLE
R3640#
*Mar 1 00:51:30.671: AAA/AUTHEN(2028066283): Status=GETPASS 认证通过
R3640#
*Mar 1 00:51:37.599: AAA/AUTHEN/CONT (2028066283): continue_login (user='(undef)') *Mar 1 00:51:37.599: AAA/AUTHEN(2028066283): Status=GETPASS
*Mar 1 00:51:37.599: AAA/AUTHEN/CONT (2028066283): Method=ENABLE
*Mar 1 00:51:37.623: AAA/AUTHEN(2028066283): Status=PASS
*Mar 1 00:51:37.623: AAA/MEMORY: free_user (0x63D5B984) user='NULL' ruser='NULL' port='tty130' rem_addr='192.168.10.1' authen_type=ASCII service=ENABLE priv=15 vrf= (id=0)
R3640#
第九步:刚才我们验证的是远程登录,再来验证一下,本地登录认证这种方式,从console接口能否登陆,如图6所示:提示需要,用户名和密码
第十步:输入正确的用户名和密码
*Mar 1 00:51:26.719: AAA/MEMORY: free_user (0x63D5B984) user='NULL' ruser='NULL' port='tty130' rem_addr='192.168.10.1' authen_type=ASCII service=ENABLE priv=15 vrf= (id=0)
R3640#
*Mar 1 00:51:30.667: AAA: parse name=tty130 idb type=-1 tty=-1
*Mar 1 00:51:30.667: AAA: name=tty130 flags=0x11 type=5 shelf=0 slot=0 adapter=0 port=130 channel=0
*Mar 1 00:51:30.667: AAA/MEMORY: create_user (0x63D5B984) user='nousername'
ruser='NULL' ds0=0 port='tty130' rem_addr='192.168.10.1' authen_type=ASCII
service=ENABLE priv=15 initial_task_id='0', vrf= (id=0)
*Mar 1 00:51:30.667: AAA/AUTHEN/START (2028066283): port='tty130' list=''
action=LOGIN service=ENABLE
*Mar 1 00:51:30.671: AAA/AUTHEN/START (2028066283): non-console enable - default to enable password
*Mar 1 00:51:30.671: AAA/AUTHEN/START (2028066283): Method=ENABLE
R3640#
*Mar 1 00:51:30.671: AAA/AUTHEN(2028066283): Status=GETPASS
R3640#
*Mar 1 00:51:37.599: AAA/AUTHEN/CONT (2028066283): continue_login (user='(undef)') *Mar 1 00:51:37.599: AAA/AUTHEN(2028066283): Status=GETPASS
*Mar 1 00:51:37.599: AAA/AUTHEN/CONT (2028066283): Method=ENABLE
*Mar 1 00:51:37.623: AAA/AUTHEN(2028066283): Status=PASS
*Mar 1 00:51:37.623: AAA/MEMORY: free_user (0x63D5B984) user='NULL' ruser='NULL' port='tty130' rem_addr='192.168.10.1' authen_type=ASCII service=ENABLE priv=15 vrf= (id=0)
进入特权模式之后,用户的级别是在15,思考,在用户模式级别是多少?通过什么命令可以查看到你当前所处的模式,是那个级别?
总结:
本地登录认证配置有两种方法:
第一种:如图7所示
第二种:如图8所示
第二种配置方式,认证调用的名字是自定义的,那就需要在console和VTY接口下,调用才可以。
第一种配置在命令上会少一些,如果配置登录认证名字为默认“default”,是不需要在VTY和Console,再次调用一下,因为在执行认证就会去查询本地名称 default,如果配置认证是名字为自定义的,如”hackerjx“,就必须到VTY和Console执行调用才可以认证通过。
不然这个配置,当从 console登录根本就没有对console做安全认证。
但是这两配置AAA本地的认证方法,没有必要同时在一台设备上配置,大家可以根据自己的情况来配置。
一、简介
AAA是Authentication(认证)Authorization授权Account记帐的简称;
它们不是必须的也不是要同时一起使用的;
他们可以使用路由器设备本地数据库,也可以使用外部数据库(ACS);
首先我们要认证,即通过密码验证;我们就算没有设置其实也用到了认证,就是登陆路由器要输入的密码,这个叫enable,
我们在配置了,username abc password aaa 使用这个帐号的话,叫local;
这二种是本地的数据库,如果要用到认证服务器,如tacacs+ radius 就属于group 服务器组方式了,这时你必须要在tacacs+ radius中选一个,同时还最多可选三个其它的认证方式;当然如果你对你的服务器和网络环境有信心的话可以不选。
二、配置教程
一、使用它们都是三个步骤
1、建立帐户数据库(本地或认证服务器);
2、定义列表;
3、应用到接口和链路;
二、首先我们要启用AAA功能
aaa new-model
三、一般来说第二步定义一个本地数据库防止配置失误造成无法登陆
Username abc password aaa
四、定义认证配置
认证相当于在问你是谁,你要回答我是哪个;但不可能不停的在问就算不烦嗓子也疼啊,只有在进门时我会问下你是谁,开保险柜时我在问下你是谁,或者是检查指纹测试瞳孔什么的等等;所以我们要对动作进行认证定义。
aaa authentication行为列表名认证方法
1、行为主要有以下三种:
aaa authentication login ――――――当有一个登陆行为时进行认证;
aaa authentication ppp ――――――对基于PPP协议的一些网络应用进行认证;
aaa authentication enable ――――――对使用enable命令进入特权模式时进行认证;
2、列表名是自己定义的,这样我们可以把各种认证方式互相组合保存成一个个列表,用的时候方便,修改起来也方
便,我改了一个列表里的认证方式那么所有使用这个列表的地方都改了,不需要去一个个地方去改了。
Dedautl列表是一个系统自己建立的列表名作为缺省列表。
它与我们自己建的列表没有任何区别,只不过他是系统
建的而已。
3、认证方法,就是指我们是查口令呢还是看指纹还是其它等等,也就是把我们的回答和谁进行分析比较。
主要有以
下几种:
关键字
描述
enable
使用enabel口令认证;
krb5
使用Kerberos5来认证;
line
使用线路口令来认证;
local
使用本地用户数据库来认证;
none
不认证;
group radius
使用radius服务器来认证;
group tacacs+
使用tacacs+服务器来认证;
每个列表中必须定义一种认证方法,最多可以定义四种方法,当第一种认证不通过再使用第二种,以此类推。
例如我们定义
aaa authentication login 二号方案group tacacs+ local
//我们定义了一个名叫二号方案认证方式,就是先去tacacs+服务器验证,如果不成功在试试用本地帐号来试;
aaa authentication login 三号方案group local enable
//我们定义了一个名叫三号方案认证方式,就是先用本地帐号验证,如果不成功就用enable 密码来验证;
五、应用到接口和链路
我们上面做了那么多但是还没有效果为什么呢,就好像我们做好了报警器,指纹验证器但没装到门上你说可有效果,那当然是不行的了,我们是定义了当登陆时就启用一个列表名字叫二号方案的认证方式,但只有我们把他装到门上才能有效果啊,有人说太麻烦应该定义好了就能用,那就惨了,你给自己家的门上装了二号方案没关系,如果楼道门、院子门,都给装上了那就有问题了,所以我们要把定义好的认证方法列表装到我们需要使用认证的门上,例如我们可能对Telnet要认证,但通过console登陆的就不要认证。
line vty 0 //我们先要进入接口
aaa authentication 二号方案//线路vty0使用名为二号方案的方式进行认证;
line vty 1
aaa authentication 三号方案
六、配置tacace服务器
可能的情况下还需要告诉路由器认证服务器IP地址和KEY
Router(config)#tacacs-server host 1.1.1.1 key cisco12345
如果是Radius服务器的话就使用下面的命令:
Router(config)#radius-server host 1.1.1.1key cisco12345 七、整理一下上面的命令看看在路由器上的实际配置情况
Router>en
Router#conf t
Enter configuration commands, one perline.
End with CNTL/Z.
Router(config)#aaa new
Router(config)#aaa new-model
Router(config)#username aaa password abc
Router(config)#aaa authe
Router(config)#aaa authentication log
Router(config)#aaa authentication loginfirst group tac
Router(config)#aaa authentication loginfirst group tacacs+ loc Router(config)#aaa authentication loginfirst group tacacs+ local Router(config)#aaa auth
Router(config)#aaa authent
Router(config)#aaa authentication log
Router(config)#aaa authentication loginsecond loc
Router(config)#aaa authentication loginsecond local ena Router(config)#aaa authentication loginsecond local enable Router(config)#line vty 0
Router(config-line)#login authenticationfirst
Router(config-line)#line vty 1
Router(config-line)#login authenticationsecond
Router(config-line)#。