因公司人员变动比较频繁,经常需要对公司网络设备登陆用户名和密码进行变更。然而公司设备又比较多,一次更改密码非常浪费时间,故打算对所有网络设备进行统一认证管理。
本实验是对实际环境的模拟,配置相对实际应用当中更丰富,也利于学习。
一、实验前提:
1、本拓扑中已具备Radius认证服务器,也就是ACS 5.2作为Radius服务器,服务器的地址是192.168.157.200。
2、本实验是简单网络环境,和实际网络可能有所差距,但原理是一样的:所有网络设备到Radius服务器的路由是通的。
3、本实验当中的Radius认证服务器是ACS 5.2。认证服务器有很多,原理是一样的,根据各人习惯和擅长选择使用。
二、实验拓扑:
三、华为AAA配置原则:
1、先进入aaa视图,创建authentication-scheme模板;
2、创建authorization-scheme授权模板(可选)和accounting-scheme计费模板(可选);
3、aaa视图下,创建服务模板service-scheme;
4、全局视图下,创建radius-server template模板并配置相应规则;
5、aaa视图下,创建域:fishyoung(可改,或者使用default_admin默认域),并调用authentication-scheme模板、authorization-scheme模板(可选)、accounting-scheme模板(可选)、radius-server template模板、service-scheme模板(根据自己需要选择调用);
6、在user-interface 下选择认证的方式。
四、核心交换机上的实验配置:
1、核心交换机的配置
[Core Switch]aaa
[Core Switch-aaa]authentication-scheme acsvty
//创建一个模板,命名为acsvty
[Core Switch-aaa-authen-acsvty]authentication-mode radius local
//此模板下的认证方式为首先用radius服务器认证,如果无法连接radius服务器,则其次调用本地认证(如果能够和radius服务器通信,但用户名密码不对,是不会调用备份的本地认证的,切记切记!!)
[Core Switch-aaa-authen-acsvty]quit
2、本实验没有做授权和审计(略过)
3、创建service-scheme服务模板
[Core Switch]aaa
[Core Switch-aaa]service-scheme admin
//创建service-scheme模板,命名为admin//
[Core Switch-aaa-service-admin]admin-user privilege level 15
//配置admin-user的权限为15级//
4、创建radius-server template模板
[hide][Core Switch]radius-server template acs5.2
//创建radius-server模板,名为acs5.2
Info: Create a new server template.
[Core Switch-radius-acs5.2]radius-server authentication 192.168.157.200 1812
//在模板中指定认证服务器的IP地址为157.200,端口号为1812(radius认证端口号一般为1812,记账为1813)
[Core Switch-radius-acs5.2]radius-server authentication 1.1.1.1 1812 secondary
//指定模板中的备份服务器IP地址和端口号
[Core Switch-radius-acs5.2]radius-server shared-key simple test
//配置交换机和radius服务器通信的密钥为test,防止非法radius服务器或者非法网络设备接入
[Core Switch-radius-acs5.2]radius-server timeout 3 retransmit 2
//指定radius服务器的超时时间为3秒,重传次数为2次(可默认不改)
[Core Switch-radius-acs5.2]undo radius-server user-name domain-included
//此命令的作用是当输入用户名带有域名时,交换机自动把域名去掉然后把用户名发送给radius服务器.例:用户名输入vtyuser1@fishyoung,交换机只会把vtyuser1当作用户名发送给radius服务器进行认证,把域名去掉了。至于域名用什么作为分隔符、从左往右还是从右往左识别,都可以在模板中配置,在此不多说了,查文档就有
[Core Switch-aaa]domain-name-delimiter ?
STRING<1-1> Identifier character \ / : < > | @ ' %
//修改域分隔符,默认为@
[Core Switch-aaa]domainname-parse-direction ?
left-to-right Configure the left to right direction of domainname parsing
right-to-left Configure the right to left direction of domainname parsing
//配置用户名和域名解析的方向(可选,缺省从左向右)
5、aaa视图下创建fishyoung域
[Core Switch-aaa]domain fishyoung
//创建fishyoung域,域内的用户认证时用户名需要带域名。如:vtyuser@fishyoung为用户名
[Core Switch-aaa-domain-wangrx]authentication-scheme acs5.2
//调用认证模板。如果需要,调用授权和计费模板。此处没配置授权和计费模板,不作调用
[Core Switch-aaa-domain-wangrx]service-scheme admin
//调用服务模板
[Core Switch-aaa-domain-wangrx]radius-server acs
//调用radius-server服务器模板
6、在user-interface下选择认证方式
[Core Switch]telnet server enable
[Core Switch]user-interface vty 0 4
[Core Switch-ui-vty0-4]authentication-mode aaa
[Core Switch-ui-vty0-4]protocol inbound telnet
[Core Switch]user-interface console 0
[Core Switch-ui-console0]authentication-mode aaa
五、radius服务器上的配置:
1、安装WinRadius服务,并做好相应的设置(网上可以下载)
2、添加用户vtyuser1和用户vtyuser2
六、进行最后的登陆验证:
1、认证在fishyoung域中,成功。
2、vtyuser2用户认证在default_admin域中,也就是不在任何域中,在默认的域中。
此处认证成功在于在默认default_admin中做了相应的调用如下:
【华为有两个默认域,就是 domain default 和domain default_admin。这两个域是不同的。在目前AAA的实现中,所有用户都属于某个域。用户属于哪个域是由用户名中带的“@”后的字符串来决定的,比如“user@fishyoung”,就属于“fishyoung”域;
如果用户名中没有带“@”,对于普通用户,属于系统缺省的default域,实现对不带域名的普通接入用户(例如,采用802.1x或Portal进行认证的用户)的身份验证。
如果用户名中没有带“@”,对于管理用户,属于系统缺省的default_admin域,实现对不带域名的管理用户(例如,采用HTTP,SSH,Telnet,Terminal或FTP方式登录设备的用户)的身份验证。
用户所属域是由域分隔符后的字符串来决定的,域分隔可以是@、|、%等符号,如user@fishyoung就表示属于fishyoung域,如果用户名不带@等,就属于系统缺省默认域。】
此处,vtylocal1用户是本地用户,当radius服务器好用的时候,本地用户是不能通过认证的,也就是不会启用本地认证。当radius服务器挂了的时候,才会调用本地认证(或不认证none)。[/hide]
[Core Switch-aaa-authen-acsvty]authentication-mode radius local
建议在vty接口下使用authentication-mode radius local,备份认证是本地认证;但在con口下,使用authentication-mode radius none,备份认证是none,也就是不认证。因为,如果交换机备份认证是本地,而本地没有用户的话,就没有办法认证了,这台设备也就无法登陆了。