飞翔灬吾爱的Blog
华为 | AAA结合WinRadius服务器认证
2019-1-12 fishyoung

因公司人员变动比较频繁,经常需要对公司网络设备登陆用户名和密码进行变更。然而公司设备又比较多,一次更改密码非常浪费时间,故打算对所有网络设备进行统一认证管理。

本实验是对实际环境的模拟,配置相对实际应用当中更丰富,也利于学习。

一、实验前提:

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计费模板(可选);

3aaa视图下,创建服务模板service-scheme;

4全局视图下,创建radius-server template模板并配置相应规则;

5aaa视图下,创建域: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,也就是不认证。因为,如果交换机备份认证是本地,而本地没有用户的话,就没有办法认证了,这台设备也就无法登陆了。

评论:
cchu
2020-03-31 15:49 回复
学习了