上一章节我们学习了MAC地址的认证流程,并且讲解了一个本地认证的案例,这次主要来讲解通过外部认证服务器如何进行认证。
新知识点扩展
在之前的介绍里面,我们了解到了如果使用外部认证的时候就会用到一个认证服务器,认证服务器都用了一种协议就是Radius协议(包括思科、H3C、华为自己的认证服务器都采用了标准协议),在实验之前我们来了解下这个Radius协议。
1、什么是Radius
RADIUS是一种分布式的、客户端/服务器结构的信息交互协议,常应用在既要求较高安全性、又允许远程用户访问的各种网络环境中。RADIUS报文采用的是UDP端口1812、1813分别作为默认的认证、计费端口。
2、Radius能实现什么
RADIUS最初仅是针对拨号用户的AAA协议,后来随着接入方式的多样化出现,RADIUS也适应多种接入方式。它通过认证授权来提供接入服务,通过计费来收集、记录用户对网络资源的使用。
RADIUS协议的主要特征如下:
- 客户端/服务器模式:通常接入交换机、AC、出口路由器作为客户端,然后跟认证服务器进行交互
- 安全的消息交互机制:利用共享秘钥来加解密中间交互的数据。(两遍配置相同的秘钥)
- 良好的扩展性:有新的协议出现,可以直接通过属性值来扩展,而不需要重新来定义协议,扩展性非常好。(包括厂家可以定义属于自己的私有属性,来支持更多的功能)
3、Radius的交互流程
1、当用户接入网络(不管有线无线),输入认证信息(比如用户名密码)给Radius客户端(交换机、AC等设备)
2、Radius客户端收到以后,会开始跟服务器进行交互信息,内容是把用户发送过来的认证信息请求给服务器处理。
3、Radius服务器收到后,对用户的认证信息进行检验(1)如果用户身份通过,会向Radius客户端返回认证接受报文,并且如果有授权的情况下,会把授权信息一起推送给Radius客户端(因为Radius协议认证跟授权是在一起的,所以只要认证通过,那么对应的授权就会下发) (2)如果用户身份没有通过,会向Radius客户端返回认证拒绝报文,拒绝用户接入网络。
4、Radius客户端根据收到的报文通知用户认证是否成功。
5、(可选)如果用户允许通过,开启了计费的情况下则向服务器发送计费开始请求报文。
6、(可选)Radius服务器收到后,响应这个报文,并且开始计费。
7、用户开始可以正式访问网络资源
关于5~6、8~9、11~12都是关于计费的,也是可选的,如果没有开启计费功能,那么对应的步骤会省略掉,计费的的交互过程主要是保证客户的计费不会出现偏差,以及能够正确的开始与结束。
4、如果服务器出现问题怎么办?
了解了这么多,认证服务器是充当一个非常重要的角色,一旦服务器出现问题,所有用户都会无法进行认证,这个时候就需要一种功能,来定时的查看服务器的状态,这种功能就是服务器状态探测。
服务器探测功能能够提供在服务器DOWN掉后,启用一个用户“逃生”功能,能够让用户访问指定的网络权限。
1、服务器状态了解
这里主要了解下服务器变成DOWN的一些因素
- RADIUS服务器最大无响应时长(max-unresponsive-interval的取值)
- RADIUS请求报文发送的次数
- RADIUS请求报文发送的时间间隔
- RADIUS服务器的探测周期
- RADIUS服务器探测周期循环次数
- RADIUS服务器在每个探测周期内连续无响应最大次数
服务器DOWN后对用户的处理,RADIUS服务器的状态恢复为Up后,对于802.1X认证用户和MAC认证用户,用户会退出逃生授权并进行重认证;对于Portal认证用户,用户会进入预连接授权,在用户访问网络资源时,才会触发重定向到Portal服务器进行认证。
服务器从DOWN变成UP的几个因素
- Radius客户端发送的报文得到服务器的响应了
- Radius客户端开启的自动探测功能得到服务器的响应
2、服务器的主备与负载均衡
对于服务器的重要性,我们还可以选择多台服务器同时进行服务,在Radius客户端上面我们可以选择不同的机制
1、默认机制,主备方式
根据配置的权重来选择优先选择哪台服务器进行交互,当主出现问题后切换到备用。
2、负载均衡算法
我们可以启用负载均衡(手动开启)然后根据权重比例来分配到对应的服务器,来实现资源利用。
MAC地址基于服务器认证案例
环境跟本地认证还是一样的,就是多了一个认证服务器,地址是192.168.1.250,AC的地址是192.168.1.254用来跟服务器对接(服务器不一定要在一个网段的,三层可达即可),而且这次由于是在外部服务器认证,配置需要多一个服务器模板。
1、基础配置就省略了
2、按照配置流程来
(1)配置接入模板
[AC6005]mac-access-profile name mac :采用默认格式即可,就是不带任何符号
(2)配置认证模板中的服务器模板
[AC6005]radius-server template mac :新建一个radius模板叫做MAC
[AC6005-radius-mac]radius-server authentication 192.168.1.250 1812 :指定认证服务器的地址是192.168.1.250,并且端口是1812
[AC6005-radius-mac]radius-server user-name original:向服务器发送用户名的时候不改变信息,保持原样
[AC6005-radius-mac]undo radius-server user-name domain-included:向服务器发送用户名的时候不包含域信息,这个功能比较常见,比如我们的域是MAC,那么用户名默认会是XXXX-XXXX-XXXX@mac,如果这个用户名直接包含域名发送给服务器,但服务器那边创建的是XXXX-XXXX-XXXX则会匹配不上,所以一般情况下我们会去掉域信息。
[AC6005-radius-mac]radius-server shared-key cipher ccie :客户端与服务器共同定义一个共享密钥
(3)服务器端配置
首先我们打开计算机管理,找到本地用户和组,然后创建一个新的组比如MAC
创建完确定即可
添加MAC为用户名与密码
提示的是密码不满足策略要求,记得在本地认证的场景中也出现了这个情况,解决办法是用了一个统一密码,服务器中也可以用这种方法解决,还一种是把服务器的密码策略要求给关闭。
WIN+R,输入g
在打开的本地组策略编辑器依次打开计算机配置→Windows 设置→安全设置→账户策略→密码策略
禁用掉
这个时候在创建就OK了,并且给它属于MAC组
配置下radius客户端,这里客户端就是AC,我们新建
属于名字AC,AC地址192.168.1.254,秘钥是ccie,然后确定
到网络策略里面,新建一个
添加用户组,当然还可以基于很多参数
下一步
这里勾选PAP与CHAP即可,因为MAC认证只支持这两种方式
这里默认即可
这里暂时默认,做授权的地方,可以下发VLAN,下发ACL等
完成
这个时候就有一个非常有用的探测命令来验证下是否跟radius服务器通了。
先ping测试连通性(注意服务器防火墙是否关闭,否则也会不通)
<AC6005>test-aaa 548998FC5E4B 548998FC5E4B radius-template mac :可以直接test-aaa,然后输入用户名密码,后面跟radius模板就可以跟radius服务器进行通信
得到的结果是认证失败,可能是用户名密码或者秘钥错误。
这个时候又到了一个有用的排错环节了,我们打开服务器的计算机管理,找到---window日志---安全
审核失败,类型为network policy server的,我们可以打开看
这里出现了两个提示,第一个身份验证类型是MD5-CHAP的,第二种是用户凭据不匹配
在此检查之前的用户名,发现第3跟4位输入反了,我们修改下。
提示是没有开启可逆加密的密码,导致失败了,这个时候需要关闭这个功能。
在打开的本地组策略编辑器依次打开计算机配置→Windows 设置→安全设置→账户策略→密码策略,里面有一个还原加密存储密码的是禁用的,我们开启下。
注意,开启了还不行,还的把密码重新输入一次,生成可还原的。
重置下密码
还是提示失败,日志里面显示还是映射不到现有账户,我们可以从日志里面看出来服务器收到的用户信息是基于大写的(我们在输入的时候是大写)而数据库创建是基于小写的,所以会失败。
改成小写后就提示认证成功了,这个就是第一次接触认证服务器会遇到的一些问题,一直卡在测试阶段了,其实还有一个参数可以测试,不需要这么麻烦。
我们可以在认证模板的后面跟一个PAP认证,就可以直接认证了,默认情况下不跟参数就是CHAP。
(4)配置认证模板之认证方案
[AC6005]aaa
[AC6005-aaa]authentication-scheme mac
[AC6005-aaa-authen-mac]authentication-mode radius
记得我们在做本地的时候,方式是为local,这里就要是radius外部方式
(5)配置认证模板,关联之前的配置
[AC6005]authentication-profile name mac
[AC6005-authentication-profile-mac]authentication-scheme radius
[AC6005-authentication-profile-mac]mac-access-profile mac
[AC6005-authentication-profile-mac]radius-server mac
(6)调用在VAP里面
[AC6005]wlan
[AC6005-wlan-view]vap-profile name office
[AC6005-wlan-vap-prof-office]authentication-profile mac
[AC6005-wlan-view]vap-profile name Partners
[AC6005-wlan-vap-prof-Partners]authentication-profile mac
(7)实际测试
已经在数据库连接的 可以连接上去。
没有的怎么都不行。
display aaa online-fail-record all
display station online-fail-record all
2个排错命令都提示是radius认证失败给拒绝接入了。
服务器这边有两个日志,一个成功 一个失败的
成功的用户,客户端是从AC6005过来,用的无线协议,并且采用PAP认证(因为默认MAC使用PAP认证)
而失败的则是提示用户名不存在。
创建用户名密码 加入组,我们再来测试
可以看到是基于MAC认证接入并且是基于Radius模板的。
关于认证总结
在整个流程中最容易出现的问题就在于radius客户端(AC)与服务器之间的交互了,这里总结几个容易忽略的地方。
1、当AC与服务器都搭建完成后,先ping测试下到服务器的连通性,基本通信都不行,后面就没法进行(服务器注意个人防火墙关闭了)
2、当AC指定了radius服务器,NPS服务器指定了客户端后,可以创建一个用户名密码作为测试 建议使用PAP,命令test-aaa 用户名 密码 radius模板 PAP。(注意网络策略里面先建的策略要允许PAP与CHAP协议)
3、如果默认没跟PAP参数就是用的CHAP,CHAP在Windows里面默认是不行的,需要开启可逆功能,而且帐号密码要设置一样的时候,在安全策略里面把密码策略给关闭
4、在遇到客户端接入不成功的情况下,我们要利用AC的查看命令 display aaa online-fail-record all display station online-fail-record all 包括Windows服务器的日志都能给出提示出现在哪个环节。
5、用户名密码创建的时候一定要细心,否则会认证失败,找到用户信息。(Windows日志主要安全里面---任务类别是Network policy server这个)
介绍
《带你学习华为企业无线网络应用》是博主原创的针对常见华为厂商无线AC AP组网系列应用部署为主的系列课程,结合实际环境出发,加上了博主部署经验以及会遇到哪些问题等进行综合,做到学以致用,给各位看官朋友一个不一样的学习体验。
如果大家有任何疑问或者文中有错误跟疏忽的地方,欢迎大家留言指出,博主看到后会第一时间修改,谢谢大家的支持,更多技术文章尽在网络之路Blog,版权归网络之路Blog所有,原创不易,侵权必究,觉得有帮助的,关注转发一波谢谢。
上一篇回顾
18、基于无线场景的本地MAC地址认证方案
下一篇学习
20、基于无线场景的企业认证802.1x独立环境方案认证篇