如何实现Windows AD的统一认证 - 网络设备部分
在企业内实现统一认证是所有系统管理员梦寐以求的事情,先不说情况多变的普通用户,单就网络设备的管理就是一件很麻烦的事情。假设一个企业拥有的网络设备多达100台,它们全部采用传统的本地登录认证方式。那么任何一个系统管理员离职或调动,就需要对所有网络设备的账号进行变更,理想情况下需重复操作100次。实现统一认证之后,只需要在后台的用户数据库操作1次即可,这就是统一认证的魅力。
受限于网络设备这个独特的群体,可供选择的技术并不多,首先网络设备品牌多种多样,一个标准的协议必不可少,目前Radius是绝大部分厂家都支持的,因此选用Radius作为统一认证基础。
一、工作原理
- 系统管理员telnet或ssh网络设备时,根据提示输入自己的AD帐号和密码;
- 网络设备将这个身份凭证提交到radius服务器进行处理;
- radius服务器将根据配置将该身份凭证转交给用户数据库申请比对;
- 接着radius服务器将比对结果返回网络设备;
- 网络设备根据返回结果判断是否允许该系统管理员登录系统;
在统一认证过程中涉及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数据包中携带查看管理权限标识,从而实现不同管理员拥有不同管理权限的目的。
二、准备工作
- Windows AD的安装和部署;
- Windows IAS的安装和部署;
- 了解网络设备的配置指令;
三、NAS配置
在本文中假设企业内有两种不同厂商的网络设备,分别是cisco路由器和H3C交换机。网络管理员分高级和实习生两类,他们对网络设备拥有不同的权限。
3.1. 创建RADIUS客户端
- 在IAS的管理页面右键点击左边栏的“新建RADIUS客户端(C)”将开启配置向导,其中:
- 客户端-供应商选择默认的“RADIUS Standard”;
- 共享的机密可以任意输入一串可打印字符,并记录下来,后面配置网络设备的时需要用到;
- 配置完成的客户端属性如下所示:
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组时,赋予该用户只读权限|
|—-
{: class=“datalist” }
因此,首先在Windows AD域控制器中创建4个组,并将A、B、C和D分别纳入这些组中,接下来以创建h3c_admin策略为例进行说明:
- 在IAS管理界面,右键点击左边栏的“远程访问策略”,选择“新建远程访问策略”。
- 在“策略配置方法”中,选择“设置自定义策略”,填入“h3c_admin”,点击下一步;
- 在“策略情况”中需要添加判断条件:
NAS-Port-Type为Ethernet和Windows Groups为h3c-admin; - 在“权限”一步中选择“授予远程访问权限”;
- 在“配置文件”一步中点击“编辑配置文件”按钮,激活“身份认证”标签页,取消掉默认的MS-CHAP v2和MS-CHAP,勾选“未加密的身份验证(PAP, SPAP)”,然后激活“高级”标签页:
- 将Framed-Protocol属性删除,添加:
Login-Service=telnet - 接着添加“Vendor-Specific”,在“多值属性信息”中点击“添加”按钮,出现“供应商特有的属性信息”窗口,选择输入供应商代码,输入“2011”,接着选择“符合”并点击“配置属性”按钮。
并在“配置VSA(符合RFC的)”对话框中输入以下内容:
添加完毕后的结果如下所示:
至此,h3c_admin认证策略创建完毕,h3c_viewonly的配置类似,只是最后一步的Vendor-Specific值应填0。
cisco的策略跟h3c的又略有不同,主要表现在返回值的配置上,在上面第7步的“供应商特有的属性信息”窗口中,应从下拉框中选择“cisco”,在“配置VSA(符合RFC的)”的对话框中输入:
最终IAS的认证策略如下表所示:
h3c和cisco在radius的实现上有差别,譬如cisco就要求返回值须带有其私有属性,因此这部分还需要读者自行参考其它厂商的设备使用文档。
{: class=“info” }
四、网络设备配置
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官方帮助文档。
{: class=“info” }
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]
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 radius-scheme [scheme_name] local
accounting optional
; 与5500不同,authorization和accounting不需要单独写一条配置
domain default enable [scheme_name]
配置结束后可用ssh客户端登录测试。
说明:
- scheme_name是指radius的策略名称
- IAS-1 IP是IAS服务器1的IP地址
- IAS-2 IP是IAS服务器1的IP地址
- 共享的机密是指在IAS服务器中创建网络设备时的共享机密
- 本设备的IP地址建议选用loopback ip
上述的配置中除了可以做统一认证之外,还可以做本地认证,前提是IAS失效(意思是IAS服务处于停止状态)。系统管理员此时就可以通过本地账号local_admin进行登录。
五、参考
- O’Reilly RADIUS
- cisco官方文档
- H3C S3600系列以太网交换机操作手册
- H3C S5500系列以太网交换机操作手册