在企业内实现统一认证是所有系统管理员梦寐以求的事情,先不说情况多变的普通用户,单就网络设备的管理就是一件很麻烦的事情。假设一个企业拥有的网络设备多达100台,它们全部采用传统的本地登录认证方式。那么任何一个系统管理员离职或调动,就需要对所有网络设备的账号进行变更,理想情况下需重复操作100次。实现统一认证之后,只需要在后台的用户数据库操作1次即可,这就是统一认证的魅力。

受限于网络设备这个独特的群体,可供选择的技术并不多,首先网络设备品牌多种多样,一个标准的协议必不可少,目前Radius是绝大部分厂家都支持的,因此选用Radius作为统一认证基础。

一、工作原理

  1. 系统管理员telnet或ssh网络设备时,根据提示输入自己的AD帐号和密码;

  2. 网络设备将这个身份凭证提交到radius服务器进行处理;

  3. radius服务器将根据配置将该身份凭证转交给用户数据库申请比对;

  4. 接着radius服务器将比对结果返回网络设备;

  5. 网络设备根据返回结果判断是否允许该系统管理员登录系统;

在统一认证过程中涉及radius客户端、radius服务器和用户数据库三部分,其中绝大部分可网管的网络设备都内嵌的radius客户端,这部分不需要担心;接着选择用户数据库,在企业中,Windows桌面操作系统占据绝对的统治地位,Windows的Active Directory也得到广泛的部署,因此本文将选择Windows AD作为用户数据库。同样地,Radius服务器选择了Windows server自带的IAS。

IAS最核心的部分就是认证策略。IAS支持多个认证策略,它收到一个请求后将从上到下与策略进行比对,一旦适配则根据策略的配置返回结果给请求者,否则继续比对直至末尾,若最终仍无合适的策略则返回一个错误结果给请求者。

接下来需要了解一下网络设备的授权机制,网络设备大都支持多权限管理机制,不同的管理员将获得不同的管理权限,譬如:高级管理员将拥有全部命令的执行权限,实习生则只具有查看的权限。

这个时候IAS的多策略就起作用了,假设现在公司有4个管理员,分别是A、B、C和D,其中A和B隶属高级管理员组,C和D隶属实习生组。我们将针对这两个组分别创建一条IAS认证策略,当A和B登录的时候,认证策略将在返回的RADIUS数据包中携带高级管理权限标识,当C和D登录的时候,认证策略将在返回的RADIUS数据包中携带查看管理权限标识,从而实现不同管理员拥有不同管理权限的目的。

二、准备工作

  1. Windows AD的安装和部署;

  2. Windows IAS的安装和部署;

  3. 了解网络设备的配置指令;

三、NAS配置

在本文中假设企业内有两种不同厂商的网络设备,分别是cisco路由器和H3C交换机。网络管理员分高级和实习生两类,他们对网络设备拥有不同的权限。

3.1. 创建RADIUS客户端

  1. 在IAS的管理页面右键点击左边栏的“新建RADIUS客户端©”将开启配置向导,其中:

  2. 客户端-供应商选择默认的“RADIUS Standard”;

  3. 共享的机密可以任意输入一串可打印字符,并记录下来,后面配置网络设备的时需要用到;

  4. 配置完成的客户端属性如下所示:

sw_core属性

3.2. 创建认证策略

两个不同的厂家设备,两种不同的用户授权,意味着需要创建四条认证策略:

编号

策略名称

用户组

作用

1

h3c_admin

h3c-admin

当登录用户隶属于h3c-admin组时,赋予该用户全部权限

2

h3c_viewonly

h3c-trainee

当登录用户隶属于h3c-trainee组时,赋予该用户只读权限

3

cisco_admin

cisco-admin

当登录用户隶属于cisco-admin组时,赋予该用户全部权限

4

cisco_viewonly

cisco-trainee

当登录用户隶属于cisco-trainee组时,赋予该用户只读权限

因此,首先在Windows AD域控制器中创建4个组,并将A、B、C和D分别纳入这些组中,接下来以创建h3c_admin策略为例进行说明:

  1. 在IAS管理界面,右键点击左边栏的“远程访问策略”,选择“新建远程访问策略”。

  2. 在“策略配置方法”中,选择“设置自定义策略”,填入“h3c_admin”,点击下一步;

  3. 在“策略情况”中需要添加判断条件:NAS-Port-Type为EthernetWindows Groups为h3c-admin

  4. 在“权限”一步中选择“授予远程访问权限”;

  5. 在“配置文件”一步中点击“编辑配置文件”按钮,激活“身份认证”标签页,取消掉默认的MS-CHAP v2和MS-CHAP,勾选“未加密的身份验证(PAP, SPAP)”,然后激活“高级”标签页:

  6. 将Framed-Protocol属性删除,添加:Login-Service=telnet

  7. 接着添加“Vendor-Specific”,在“多值属性信息”中点击“添加”按钮,出现“供应商特有的属性信息”窗口,选择输入供应商代码,输入“2011”,接着选择“符合”并点击“配置属性”按钮。

h3c_admin策略
并在“配置VSA(符合RFC的)”对话框中输入以下内容:
配置VSA
添加完毕后的结果如下所示:
编辑拨入配置文件

至此,h3c_admin认证策略创建完毕,h3c_viewonly的配置类似,只是最后一步的vendor-specific值应填0。

cisco的策略跟h3c的又略有不同,主要表现在返回值的配置上,在上面第7步的“供应商特有的属性信息”窗口中,应从下拉框中选择“cisco”,在“配置VSA(符合RFC的)”的对话框中输入:

配置VSA-cisco

最终ias的认证策略如下表所示:

IAS认证策略配置

h3c和cisco在radius的实现上有差别,譬如cisco就要求返回值须带有其私有属性,因此这部分还需要读者自行参考其它厂商的设备使用文档。

4. 网络设备配置

4.1. cisco

!-该语句启用aaa
aaa new-model
!-该语句定义默认的认证方法,先radius,后本地
aaa authentication login default group radius local
!-定义no_authent的认证方法,用于console口,none的意思是无须
!-验证即可登陆路由器,默认权限为1
aaa authentication login no_authent none
aaa authentication ppp default if-needed group radius local
!-定义特权模式的授权方法,先radius,后local
aaa authorization exec default group radius local
aaa authorization network default group radius local
!-定义审计
aaa accounting delay-start
aaa accounting exec default start-stop group radius
aaa accounting network default start-stop group radius
aaa session-id common
!-当radius服务器不可用时,使用下列本地的用户名和密码作为
!-fallback的身份凭证
!-其中cisco只可获得权限6,而admin可获得权限15。
username cisco privilege 6 password 0 cisco*06
username admin privilege 15 password 0 cisco*15
!-实习生具有查看权限,同时需使用ping,traceroute辅助排错
!-但是他们的权限6无法使用show running命令,所以需要为
!-权限6的用户增加以下几条命令
privilege exec level 6 traceroute
privilege exec level 6 ping
privilege exec level 6 show startup-config
privilege exec level 6 show running-config
privilege exec level 6 show
!-定义radius服务器的ip地址和认证,审计端口
radius-server host 192.168.100.1 auth-port 1812 acct-port 1813
!-定义本客户端使用的share key,这和服务器的设置必须一致
radius-server key hello.kitty
!-the enable secret is the same as the password of local user admin
!-插上console口的电脑,可以直接用远程终端登陆,获得权限1,接着输入
!-enable secret的密码来获取15的权限。
line con 0
 logging synchronous
 login authentication no_authent
end

说明:本配置适用于ios12.1,实际的配置请读者根据实际的ios版本查阅相应的cisco官方帮助文档。

4.2. h3c

4.2.1. h3c s5500

local-user local_admin
 password cipher y#s`q`v3dqp9,2i_=/l2`1!!
 authorization-attribute level 3
 service-type telnet
user-interface vty 0 4
 authentication-mode scheme
radius scheme [scheme_name]
 server-type extended
 primary authentication [ias-1 ip]
  primary accounting [ias-1 ip]
 secondary authentication [ias-2 ip]
  secondary accounting [ias-2 ip]
  key authentication [共享的机密]
  key accounting [共享的机密]
  user-name-format without-domain
  nas-ip [本设备的ip,建议选择loopback]
domain [scheme_name]
  authentication login radius-scheme [scheme_name] local
  authorization login radius-scheme [scheme_name] local
  accounting login radius-scheme [scheme_name] local
  accounting optional
domain default enable [scheme_name]

4.2.2. h3c s3600

local-user local_admin
  password cipher y#s`q`v3dqp9,2i_=/l2`1!!
  service-type telnet
  level 3
user-interface vty 0 4
  authentication-mode scheme
radius scheme <scheme_name> (1)
  server-type extended
  primary authentication <ias-1> (2)
  primary accounting <ias-1>
  secondary authentication <ias-2> (3)
  secondary accounting <ias-2>
 key authentication <shared-secret> (4)
  key accounting <shared-secret>
  user-name-format without-domain
  nas-ip <loopback-ip> (5)
domain <scheme_name>
  authentication radius-scheme <scheme_name> local
  accounting optional
domain default enable <scheme_name>
1 scheme_name是指radius的策略名称
2 ias-1 ip是ias服务器1的ip地址
3 ias-2 ip是ias服务器1的ip地址
4 shared-secret是指在ias服务器中创建网络设备时的共享机密
5 loopback-ip地址为本机的loopback ip

配置结束后可用ssh客户端登录测试。

上述的配置中除了可以做统一认证之外,还可以做本地认证,前提是ias失效(意思是ias服务处于停止状态)。系统管理员此时就可以通过本地账号local_admin进行登录。

五、参考

  1. o’reilly radius

  2. cisco官方文档

  3. h3c s3600系列以太网交换机操作手册

  4. h3c s5500系列以太网交换机操作手册