MAC地址认证最早出现在有线交换机上面,对于接入交换机的口开启MAC认证,对应的终端MAC通过了数据才能正常通过这个口转发出去,随着无线应用的广泛,MAC地址认证也应用在了无线组网里面,在前几年可能应用的还是比较多,但随着智能手机的一些功能(一个叫做随机MAC的功能)出现、更多认证方式的出现、MAC地址认证带来的一些问题,导致MAC地址认证单独使用的场景越来越少了。
在MAC认证过程中,AC会把用户的数据发送给radius服务器进行交互,交互的时候会对用户信息进行认证处理,处理数据加密方式为PAP与CHAP。
1、终端接入WIFI后,AC(接入设备)发现VAP启用了MAC认证功能,触发MAC认证流程
2、AC会随机生成一个MD5挑战秘钥,并且使用这个秘钥对MAC的用户信息进行加密,然后把原始用户信息,加密的用户信息以及MD5的挑战秘钥发送给radius服务器,让radius服务器对终端的MAC进行认证处理(这里注意并不是单纯的把用户信息直接发给radius服务器,中间有一个加密过程)
3、radius服务器收到AC发过来的信息后,会提取里面的MD5挑战秘钥以及原始用户信息,然后对本地数据库中存在的对应MAC用户信息也用MD5加密以此,得到的结果跟AC发过来的结果相同,则告诉AC认证接受(通过),允许接入网络,反之,则认证失败,拒绝接入。
PS:PAP与CHAP的加密方式,区别在于PAP对原始信息加密一次,而CHAP则加密两次,具体采用PAP还是CHAP,在实际环境中要考虑服务器的配置权是否属于自己,如果是其他人负责,则需要根据协商来。当然我们也可以采用本地认证方式。
在我们对认证进行认证通过后,我们还可以对通过的用户进行授权,比如授予哪个VLAN、可以访问哪些资源(ACL),授权分为本地授权以及服务器认证。
MAC用户下线
当用户下线后,我们需要能够感知到用户的离开,否则会出现一些问题。
(1)Radius服务器会对用户进行计费,造成计费失误
(2)可能被非法用户仿冒合法用户进行接入网络
(3)已经下线的用户,如果还存在用户信息记录,对设备资源是一种消耗。
所以,接入设备(AC)需要能够感知到用户下线,即时删除用户信息,如果对接外部数据库的时候,需要通知外部服务器。
新知识点学习
在配置MAC地址认证的时候,我们首先要回顾下NAC的配置流程,不管是哪种思路都是(1)配置接入模板 (2)配置认证模板 (3)应用到VAP模板。
配置接入模板
mac-access-profile name :创建一个接入模板,默认存在一个mac_access_profile名字模板
默认存在一个模板名字叫做 mac_access_profile,内容为一些用户名的格式,是否重认证以及周期,是否绑定了认证模板。
1、这里我们主要来了解下用户名的格式
[AC6005]mac-access-profile name mac
[AC6005-mac-access-profile-mac]mac-authen username macaddress
我们创建一个接入模板为MAC,然后定义mac认证的用户名为MAC地址就可以直接回车了,我们都知道MAC地址在不同的系统表示方式不太一样。
0005-e01c-02e3、
00-05-e0-1c-02-e3
0005:e01c:02e3
00:05:e0:1c:02:e3
0005e01c02e3
默认为最后这一种不带-也不带:的0005e01c02e3,如果我们想要配置成其他格式的,那么我们需要改参数。
在macaddress后面还有歌format参数,指定MAC地址的格式。其中:
with-hyphen:指定MAC地址带有分隔符“-”,例如“0005-e01c-02e3”。
with-hyphen normal:指定MAC地址带有分隔符“-”,例如“00-05-e0-1c-02-e3”。
with-hyphen colon:指定MAC地址带有分隔符“:”,例如“0005:e01c:02e3”。
with-hyphen normal colon:指定MAC地址带有分隔符“:”,例如“00:05:e0:1c:02:e3”。
without-hyphen:指定MAC地址不带有分隔符“-”或“:”,例如“0005e01c02e3”。
Uppercase:指定用户名的形式为大写。
可以根据实际环境选择对应的格式,通常用without-hyphen最多。
2、采用PAP还是CHAP认证
mac-authen authentication-method 可以通过这个修改,默认采用PAP方式
3、MAC重新认证
mac-authen reauthenticate :默认没启用重新认证功能
mac-authen timer reauthenticate-period :重新认证的时间间隔,默认是1800s,只有开启重新认证功能才生效。
对于MAC认证本地方式的话,配置全部在AC上面,包括用户信息(当然AR路由器充当AC的时候也支持),那么我们在配置之前需要注意这些问题。
1、MAC认证的用户名的格式为without-hyphen,就是0005e01c02e3没任何符号的,在创建用户名密码的时候可以统一为0005e01c02e3
2、认证模板本地我们可以采用默认或者是自定义,推荐养成自定义的习惯。
3、如果需要授权,我们可以对于认证后的用户进行本地授权,并且要考虑如果授权了VLAN后,数据VLAN放行的情况。
基本环境就是Partners属于VLAN2, office属于VLAN3,开放式接入,都可以连接上,在这个基础上面,我们来做MAC地址认证。
AAA里面提示 认证类型是none
[AC6005]mac-access-profile name mac
不需要配置任何参数,因为默认就是基于without-hyphen的用户名方式
(2)配置认证模板,认证模板分为认证方式、AAA方案、授权信息等
[AC6005]aaa
[AC6005-aaa]authentication-scheme mac
[AC6005-aaa-authen-mac]authentication-mode local
[AC6005-aaa-authen-mac]q
定义了一个认证方式方案叫MAC,认证方式为local
[AC6005-aaa]local-user 548998fc5e4b password cipher 548998fc5e4b
Error: The password cannot be the same as a user name or an inverted user name.
当配置本地认证信息的时候,可以看到用户名跟密码一致会提示错误,说密码不能包含用户名的信息。
解决方法:
[AC6005]mac-access-profile name mac
[AC6005-mac-access-profile-mac]mac-authen username macaddress format without-hyphen password cipher Test@123
Info: The password should meet the complexity check requirement.
定义一个通用密码,然后我们把本地信息的用户信息密码都设置这个。
[AC6005-aaa]local-user 548998fc5e4b password cipher Test@123
[AC6005-aaa]local-user 548998fc5e4b service-type 8021x
[AC6005]authentication-profile name mac
[AC6005-authentication-profile-mac]mac-access-profile mac
[AC6005-authentication-profile-mac]authentication-scheme mac
定义一个认证模板,关联认证方式、接入模板,这里没有授权,所以不需要调用。
(3)调用认证模板到VAP
[AC6005-wlan-view]vap-profile name Partners
[AC6005-wlan-vap-prof-Partners]authentication-profile mac
Warning: This action may cause service interruption. Continue?[Y/N]y
[AC6005-wlan-view]vap-profile name office
[AC6005-wlan-vap-prof-office]authentication-profile mac
Warning: This action may cause service interruption. Continue?[Y/N]y
总结下整个配置流程:(1)配置接入模板(采用哪种NAC认证) (2)配置认证模板 :认证模板里面分为认证方式(采用本地还是外部数据库) 如果是本地认证则配置本地用户信息 (这里MAC地址用户名密码不能一致,所以采用通用密码方式解决),如果是外部数据库还需要配置radius等服务器的对接参数,还可以调用授权。(该实例就定义了认证方式为本地,然后配置了本地用户信息,然后调用了接入模板) (3)把认证模板在VAP里面调用。
测试,可以连接,但是我们怎么判断它是不是属于MAC地址认证呢?
display mac-auten:查看MAC认证,可以看到有这个MAC的用户信息
display access-user detail:查看用户信息的时候也可以看到AA的用户类型
可以看到type是提示的 MAC authentication
点击连接,连不上。
这时候可以用到我们之前学过的一个排错命令
display station online-fail-record all
display aaa online-fail-record all :查看aaa失败的原因
提示认证失败,认证失败的原因是因为我们没有这个用户名的本地信息,创建即可。
[AC6005-aaa]local-user 54899886606e password cipher Test@123
[AC6005-aaa]local-user 54899886606e service-type 8021x
已经连接成功,因为我们已经添加了本地用户信息,这个时候在来试试office。
office是先密码认证,密码认证城后在进行MAC地址认证。
可以的,因为这个用户名在本地数据库里面。
可以看到连的是Office,然后采用MAC地址认证方式。
1、对于从老版本过来的童鞋,一定要适应新版本的模板
2、思路就是(1)定义接入模板,采用什么NAC接入方式 (2)定义认证模板(包括认证方式、授权,以及AAA,然后关联接入模板) (3)把认证模板关联到VAP里面
3、本地认证的时候注意帐号密码在AC新版本里面都不能是包含用户名,我们解决办法是设置一个通用密码。
4、对MAC地址的认证流程有一个了解,然后了解查认证成功或者失败后如何去排查。
《带你学习华为企业无线网络应用》是博主原创的针对常见华为厂商无线AC AP组网系列应用部署为主的系列课程,结合实际环境出发,加上了博主部署经验以及会遇到哪些问题等进行综合,做到学以致用,给各位看官朋友一个不一样的学习体验。
如果大家有任何疑问或者文中有错误跟疏忽的地方,欢迎大家留言指出,博主看到后会第一时间修改,谢谢大家的支持,更多技术文章尽在网络之路Blog,版权归网络之路Blog所有,原创不易,侵权必究,觉得有帮助的,关注转发一波谢谢。
上一篇回顾
下一篇学习
19、基于无线场景的外部服务器MAC地址认证方案
……