什么是独立环境
独立环境指的是CA NPS没有在域架构的环境下独立运行的服务,所有认证用户信息都保存在NPS数据库中,当无线客户端用户认证时候,AC会把用户信息交给NPS,NPS通过匹配给予结果反回给AC,AC根据结果来执行操作。
了解802.1x
802.1x在平时无线应用中相对来说是少点,主要是在企业网安全性要求比较高的情况下来部署,因为它要求要服务器,而且需要一个证书,所以这个对于部署这块来说是比较难的。公有网络在前几年也会遇到,比如移动的CMCC,电信的Chiannet连接的时候输入帐号密码就可以进入。(现在公有网络都替换成portal形式了,802.1x的很少见了),802.1x还有一个名称叫做dot1x,所以听到这两个名词都说的是一个技术,我们在部署这种网络之前,需要先了解了解下802.1x的认证流程。
1、802.1x的认证系统
802.1x系统是基于客户端/服务器模式结构,由三个实体组成:
(1)客户端(无线终端):通过系统内置的或者厂家的802.1x客户端软件发起认证,通常都支持EAPoL(基于局域网可扩展的认证协议)
(2)接入设备(AC或者胖AP):为启用802.1x认证的设备,提供局域网接入功能,通过对于用户身份的认证,来开放或者拒绝用户接入
(3)认证服务器(NPS等):用于对用户进行认证、授权、计费,通常都是指Radius服务器。
2、802.1x的认证流程
说到认证,那么一定是由某一方来发起或者触发认证,802.1x触发认证方式有三种
认证流程支持两种方式完成,一种是EAP中继方式,一种是EAP终结方式。
EAP中继认证方式:接入设备不会处理客户端以及服务器的信息,只中转。
1、用户客户端接入网络的时候,连接这个WIFI名字,输入用户名密码(管理员申请),输入完成后,客户端会用系统自带的802.1x客户端发起连接请求(不过是安卓、苹果、Windows、Linux都内置了客户端,也可以用厂商出的客户端软件),这个连接请求的报文就是EAPol-Start,开始进行认证。(注意这个时候用户名密码是不会发送出去,只是发起认证请求)
2、接入设备(AC)收到认证请求报文后,响应一个Identity的请求报文(EAP-Request/Identity)给客户端,要求客户端发送用户名密码信息。
3、客户端响应这个报文,将用户密码信息通过响应报文(EAP-Response/Identity)交给设备端
4、AC收到以后会将响应EAP报文整个封装在Radius报文里面,通过Radius Access-Request报文交给认证服务器进行处理。
5、Radius服务器收到AC中转过来的信息后,进行解封装,得到用户信息,将这个信息与数据库中的用户信息行对比,对比成功后,会随机生成一个MD5 Challenge对密码进行加密处理,同时将此MD5 Challenge通过RadiusAccess-Challenge报文交给AC
6、AC将Radius服务器发送过来的MD5Challenge转发给客户端
7、客户端收到后,用该Challenge对密码部分进行加密处理,生成的结果通过EAP-Response/MD5 Challenge报文,交给AC
8、AC将该报文封装在Radius报文里面,用RadiusAccess-Request发送给服务器
9、服务器收到加密信息后和本地生成的加密信息进行对比,相同则认为用户是合法的,并通知AC,通过发送Radius Access-Accept,认证通过报文。
10、AC收到认证通过报文后,向客户端发送认证成功报文(EAP-Success),将该用户改为授权状态,允许访问访问。
11、客户端在线期间,设备会定时的发送握手交互报文用于探测用户是否在线
12、客户端会相应这个报文,回复应答报文,表示我还是在的
13、当客户端关机或者离线后,客户端会主动发送EAPoL-Logoff报文给AC,主动要求下线,或者在AC主动发送握手报文,2次没有收到客户端的响应,也会认为用户已经下线。(客户端因为关机没有主动发送下线报文)
14、AC把WIFI端口的状态从授权变为未授权,并会向客户端发送EAP-Failure报文。
EAP终结认证流程 :接入设备(AC)会作为代理一样,处理客户端以及服务器过来的信息。
EAP终结方式与EAP中继方式的认证流程相比,不同之处在于用来对用户密码信息进行加密处理的MD5Challenge由接入设备生成,之后设备端会把用户名、MD5Challenge和客户端加密后的密码信息一起送给RADIUS服务器,进行相关的认证处理。而在EAP中继方式中,用来对用户密码进行加密处理的挑战字由认证服务器生成,设备端只是负责将EAP报文封装在RADIUS报文中透传认证服务器,整个认证处理都由认证服务器来完成 。
两种方式对比与选择
采用EAP终结还是EAP中继,将取决于RADIUS服务器的处理能力。如果RADIUS服务器的处理能力比较强,能够解析大量用户的EAP报文后再进行认证,可以采用EAP中继方式;如果RADIUS服务器处理能力不能够很好的同时解析大量EAP报文并完成认证,建议采用EAP终结方式,由设备帮助RADIUS服务器完成前期的EAP解析工作。
新配置学习
默认也是存在一个dot1x模板的,里面附带默认参数,起始是可以直接用的,但是博主建议使用自定义的,我们来看看默认的参数
1、默认的认证模式是EAP中继:dot1x authentication-method 可以通过这个命令改成终结
2、重新认证功能是关闭的。
3、客户端没响应之前授权的VLAN,默认是没有的
4、最大认证请求报文的次数是2,发送2次客户端没有响应就会认为不存在
5、重新认证事件是3600s
6、客户端认证超时时间是5s
7、是否绑定了认证模板
创建一个新的模板
[AC6005]dot1x-access-profile name dot1x
可以看到新建的模板跟默认的参数是一样的,默认是EAP中继模式,这里说一下一般情况下使用EAP中继就行了,因为目前的客户端大部分还不支持终结方式。
无响应时候给予的网络权限
在某些时候,希望用户在认证成功之前能有一些基本的网络访问权限,可以更新客户端、更新杀毒软件等,或者给予临时的上网权限,我们可以通过无响应时的网络权限功能,给予特定的权限。
[AC6005-dot1x-access-profile-dot1x]authenticationevent client-no-response action authorize vlan 2
起始就是给予一个特定的VLAN,我们针对这个VLAN做策略即可。(注意这个VLAN在AC是必须创建的)
关于安全模板的配置
[AC6005-wlan-view]security-profilename office
[AC6005-wlan-sec-prof-office]securitywpa2 dot1x aes
平时我们配置的多的是秘钥的方式,也就是个人版,我们之前说过WPA系列是支持企业级的,对应那就是dot1x,所以安全策略这里直接wpa2 dot1x
独立环境案例
说下实际的环境,注意这里用的全是真机环境,可能大家注意到了这个环境里面没有AC,是的,博主这边暂时没有AC的真机在,本来可以用AR充当AC的,但是发现配置方式跟AC有点区别,所以把手里的3030DN刷成胖了,胖版本跟AC的配置思路流程以及方式都一模一样,所以这里就用了这样一个环境,这里再次说下跟AC+AP瘦环境是一模一样的。(并且模拟器不支持这个实验),环境很简单,爱快路由器LAN口地址192.168.1.5,然后POE做傻瓜POE交换机,接了一台AP(192.168.1.254)以及认证服务器(192.168.1.250)。
1、定义认证模板
[Huawei]dot1x-access-profile name dot1x
用的FAT里面最新的版本
2、定义Radius服务器
[Huawei]radius-servertemplate dot1x
[Huawei-radius-dot1x]radius-serverauthentication 192.168.1.250 1812
[Huawei-radius-dot1x]undoradius-server user-name domain-included
[Huawei-radius-dot1x]radius-servershared-key cipher ccieh3c.com
3、服务器端配置
首先地址要固定
计算器管理-----本地用户和组----创建用户
打开网络策略服务器,我们可以选择向导方式创建,选择用于802.1x
配置
这里选择无线
这里添加radius客户端
确定,然后下一步即可
点击配置
进去后有一个默认证书,这个我们暂时不管,直接确定下一步
这里可以基于组,也可以不填写,我们这里选择直接下一步
完成即可。
都配置完了,我们首先又是测试连通性,这个步骤非常重要,成功了表示已经成功了50%以上。
先ping测试,基本通信要OK
第二部分直接test-aaa,记得这里我是跟了PAP参数的,如果不跟默认是CHAP,CHAP的话会遇到一些问题,可以直接参考第十九篇里面有详细说明。提示了错误,那么我们就得来排查哪出问题了,这个时候就要用到我们的Windows日志信息了。(仔细看过第十九篇的朋友应该已经非常熟悉流程了)
打开计算机管理----Windows日志----安全---找到任务类别是 Network policy sever的,有一个审核失败。我们点开
t提示用户属性是拒绝用户访问,设置为允许访问或者通过NPS网络策略访问即可。这个时候我们来看用户的属性
Windows 2012跟2019的默认拨入权限是通过NPS网络控制策略访问来实现,也就是说默认不是拒绝访问,那我们就看下NPS的策略。
打开NPS,找到网络策略,里面可以看到默认有2个策略是被拒绝的,还一个就是我们在做向导的时候创建的安全无线连接生成的,打开
可以看到这个策略的默认属性是不管你用户的拨入属性是允许还是拒绝,都会忽略到,由NPS的规则来决定。
这个时候就到了一个比较容易困惑的地方了,日志提示说用户权限是拒绝的,而我们看用户是由NPS决定,NPS又是允许的。我们在翻过去看日志里面一个比较重要的地方。
我们在看日志的时候,一定要看全,在后面这边有一个身份验证详细信息,里面包括了连接请求策略名称,这里为”所有用户使用的Windows身份验证“,我们来看下这个
请求策略里面有2个,一个是默认的,一个是我们向导创建的802.1x的,我们了解下这2个的不同点,为什么会匹配下面这个。
我们点开无线的请求策略,里面有一个条件,条件的内容是基于无线的端口类型,而我们test-aaa用的端口类型是以太网,所以这个请求策略是匹配不上的。我们在看下另外一个请求策略的规则。
这个规则就显然很宽松,就是任何时间,不管什么类型 什么用户都能匹配上,所以日志里面看到的匹配的是这个请求。
请求连接策略我们明白了,再来看下面一个网络策略名称,匹配的是"到其他访问服务器的连接"
我们可以看到这个策略是打叉的,访问类型是拒绝访问,那为什么匹配不上安全无线连接呢?
我们看到这个后就明白了,它的条件还是基于无线,test-aaa是基于有线以太网,所以匹配不上。
到其他服务器的策略就非常广泛了,都允许,我们看看概述
概述方面可以看到为什么匹配这个提示拒绝接入,是因为匹配这个策略的直接给拒绝,我们解决的办法是授予访问权限。
这个时候策略显示OK了,我们在来测试下。
还是提示错误,我们接着看日志。
我们先看原因:提示的是网络策略为启用这种身份验证的方法,然后在看下身份验证的类型是PAP,这个时候可以判断是“网络策略”没有启用PAP认证。
看到约束里面,默认的策略是微软的MS-CHAP-V2跟MS-CHAP,并没有启用CHAP跟PAP,这个就是失败的原因,这个时候我们启用下。
这个时候在测试,成功了!!!,这里影响的因素很多,记住一点就行,就是不管是华为还是思科这些test-aaa 它都是基于以太网的,很多朋友在创建了802.1x的向导后就直接test-aaa,看到提示错误就以为服务器没搭建成功,没仔细去看看日志的提示,很多时候日志的提示给了我们方向,一个一个排除就可以了。
4、定义认证方式
[Huawei]aaa
[Huawei-aaa]authentication-schemedot1x
[Huawei-aaa-authen-dot1x]authentication-modradius
5、定义认证模板
[Huawei]authentication-profilename dot1x
[Huawei-authentication-profile-dot1x]radius-serverdot1x
[Huawei-authentication-profile-dot1x]authentication-schemedot1x
[Huawei-authentication-profile-dot1x]dot1x-access-profile dot1x
6、无线业务配置
[Huawei]wlan
[Huawei-wlan-view]ssid-profilename dot1x
[Huawei-wlan-ssid-prof-dot1x]ssiddot1x
[Huawei-wlan-view]security-profilename dot1x
[Huawei-wlan-sec-prof-dot1x]securitywpa2 dot1x aes
[Huawei-wlan-view]vap-profilename dot1x
[Huawei-wlan-vap-prof-dot1x]ssid-profiledot1x
[Huawei-wlan-vap-prof-dot1x]security-profiledot1x
[Huawei-wlan-vap-prof-dot1x]authentication-profiledot1x
到这里,AP跟AC的配置都是一样的通用,就最后调用的时候不太一样,AC是调用在AP组,而AP就调用在射频口
[Huawei]interface Wlan-Radio 0/0/0
[Huawei-Wlan-Radio0/0/0]vap-profiledot1x wlan 2
[Huawei]interface Wlan-Radio 0/0/1
[Huawei-Wlan-Radio0/0/1]vap-profiledot1x wlan 2
Windows7测试验证
我们先测试电脑端,连接dot1x
这个时候遇到第一个问题了,无法连接dot1x信号,我们第一个就是先看日志
用户名不对,并且日志提示证书链是不受信任的机构颁发的,所以没办法认证成功。这个时候我们解决办法就是不能用自动的,我们需要手动创建这个名字。
因为默认WindowsXP、7内置的配置有几个问题。
1、内置是启用了自动使用Windows登陆名和密码
2、默认没有指定身份验证模式
3、默认会验证服务器的证书
点击更改设置
设置
这个沟去掉
高级设置
确定完成
输入用户名信息
这是因为我们服务器的证书是自己的,并且不是买的公有的,所以会提示不信任,这里可以点击连接即可,如果不想这个提示出来,可以把验证码服务器证书给关了。
这个时候就连上了,这个就是WINDOWS客户端的一些问题。
Windows10 测试验证
点击确定
连接即可。
可以连上了,并没有任何问题,可以发现Windows10还是优化了很多的。
手机客户端测试验证
手机的话 不同的系统有点不太一样,博主荣耀30的需要手动选择阶段2的身份证验证以及CA证书,然后输入身份跟密码
这个时候就连上了。而小米的系统则人性化一些,直接输入帐号密码就行,不需要用户来选择PEAP跟CA证书
排错与维护命令
display aaa online-fail-record all:查看AAA认证失败的原因
display station online-fail-record all:查看客户端上线失败的原因
display access-user detail :查看用户的详细情况
display dot1x:查看dot1x的认证情况
display authentication-profile configuration name dot1x:查看认证模板的参数
可以看到我们调用的一些参数,以及绑定在了哪个VAP模板里面。
从头到尾没有操作过CA?是否有必要
这里我们还留下了最后一个疑问,就是我们之前安装了CA服务,从头到位都没用过,那么是否没必要安装呢?我们来看看NPS服务器调用的参数。
我们在NPS服务器的“网络策略”里面查看EAP属性的时候,默认就有一个办法给ccieh3c.com的证书,这个证书记得我们在创建CA的时候我们填写了参数,就是那个时候生成的,所以可以看到我们不需要在向CA来申请服务器证书了,这个证书就可以作为验证。
我们也可以打开IIS选择服务器证书
双击这个
这个证书有效期是10年,因为我们创建的时候选择了10年,这个就是CA跟NPS装一起的时候的一个好处,省了不少操作,当然也有的环境是NPS跟CA分开的,这个环境我们在后面会单独用一篇来讲解下。
总结
在整个流程中最容易出现的问题就在于radius客户端(AC)与服务器之间的交互了,这里总结几个容易忽略的地方。
1、当AC与服务器都搭建完成后,先ping测试下到服务器的连通性,基本通信都不行,后面就没法进行(服务器注意个人防火墙关闭了)
2、AC或者FAT AP指定服务器模板,主要是认证服务器地址、端口号、秘钥以及是否包含域信息。
3、服务器可以通过向导模式创建基于无线的802.1x环境,但是test-aaa是基于有线的环境,默认匹配有线的策略是拒绝的,我们需要开启,并且应许CHAP与PAP协议,这样就可以test-aaa成功。
4、在遇到客户端接入不成功的情况下,我们要利用查看命令 display aaa online-fail-record all display station online-fail-record all 包括Windows服务器的日志都能给出提示出现在哪个环节。
5、用户名密码创建的时候一定要细心,否则会认证失败,找到用户信息。(Windows日志主要安全里面---任务类别是Network policy server这个)
6、关于服务器证书,这里是CA与NPS装在一起,默认已经生成了一个服务器的证书,而且有效期是10年。
7、可以通过查看dot1x以及认证模板的参数来看调用的是否正确。
8、关于不同客户端的参数不太一样,需要细微的调整,这个根据实际情况来查看。