关于MAC地址认证的场景 

基于无线场景的本地MAC地址认证方案_华为华三无线AC AP组网

MAC地址认证最早出现在有线交换机上面,对于接入交换机的口开启MAC认证,对应的终端MAC通过了数据才能正常通过这个口转发出去,随着无线应用的广泛,MAC地址认证也应用在了无线组网里面,在前几年可能应用的还是比较多,但随着智能手机的一些功能(一个叫做随机MAC的功能)出现、更多认证方式的出现、MAC地址认证带来的一些问题,导致MAC地址认证单独使用的场景越来越少了。

基于无线场景的本地MAC地址认证方案_华为华三无线AC AP组网_02

 

MAC认证流程

   在MAC认证过程中,AC会把用户的数据发送给radius服务器进行交互,交互的时候会对用户信息进行认证处理,处理数据加密方式为PAP与CHAP。


基于无线场景的本地MAC地址认证方案_中小型企业无线组网_03

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,在实际环境中要考虑服务器的配置权是否属于自己,如果是其他人负责,则需要根据协商来。当然我们也可以采用本地认证方式。


   MAC认证授权

  在我们对认证进行认证通过后,我们还可以对通过的用户进行授权,比如授予哪个VLAN、可以访问哪些资源(ACL),授权分为本地授权以及服务器认证。


基于无线场景的本地MAC地址认证方案_网络之路一天_04


  • 授权方法为本地授权时,用户从域下获取授权信息。
  • 授权方法为服务器授权时,用户从服务器和域下获取授权信息。域下配置的授权信息比服务器下发的授权信息优先级低,如果两者的授权信息冲突,则服务器下发的授权优先生效;如果两者的授权信息不冲突,则两者的授权信息同时生效。这样处理可以通过域管理进行灵活授权,而不必受限于服务器提供的授权。
  • 上面提到的都是认证通过后的,我们还可以基于认证前给予一些授权信息,比如认证前在哪个VLAN,认证失败后在哪个VLAN,以及认证服务器出现故障后如何处理。

   MAC用户下线

  当用户下线后,我们需要能够感知到用户的离开,否则会出现一些问题。

(1)Radius服务器会对用户进行计费,造成计费失误

(2)可能被非法用户仿冒合法用户进行接入网络

(3)已经下线的用户,如果还存在用户信息记录,对设备资源是一种消耗。

所以,接入设备(AC)需要能够感知到用户下线,即时删除用户信息,如果对接外部数据库的时候,需要通知外部服务器。 

 

  新知识点学习

 在配置MAC地址认证的时候,我们首先要回顾下NAC的配置流程,不管是哪种思路都是(1)配置接入模板  (2)配置认证模板   (3)应用到VAP模板。


基于无线场景的本地MAC地址认证方案_MAC地址认证_05


配置接入模板

mac-access-profile name :创建一个接入模板,默认存在一个mac_access_profile名字模板


基于无线场景的本地MAC地址认证方案_中小型企业无线组网_06

基于无线场景的本地MAC地址认证方案_MAC地址认证_07


默认存在一个模板名字叫做 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,如果我们想要配置成其他格式的,那么我们需要改参数。

基于无线场景的本地MAC地址认证方案_网络之路一天_08



在macaddress后面还有歌format参数,指定MAC地址的格式。其中:
with-hyphen:指定MAC地址带有分隔符“-”,例如“0005-e01c-02e3”。
with-hyphennormal:指定MAC地址带有分隔符“-”,例如“00-05-e0-1c-02-e3”。
with-hyphencolon:指定MAC地址带有分隔符“:”,例如“0005:e01c:02e3”。
with-hyphen normalcolon:指定MAC地址带有分隔符“:”,例如“00:05:e0:1c:02:e3”。
without-hyphen:指定MAC地址不带有分隔符“-”或“:”,例如“0005e01c02e3”。
Uppercase:指定用户名的形式为大写。
可以根据实际环境选择对应的格式,通常用without-hyphen最多。


2、采用PAP还是CHAP认证
mac-authenauthentication-method可以通过这个修改,默认采用PAP方式


3、MAC重新认证
mac-authenreauthenticate  :默认没启用重新认证功能
mac-authentimer reauthenticate-period :重新认证的时间间隔,默认是1800s,只有开启重新认证功能才生效。


  MAC地址本地认证案例  

基于无线场景的本地MAC地址认证方案_网络之路一天_09


对于MAC认证本地方式的话,配置全部在AC上面,包括用户信息(当然AR路由器充当AC的时候也支持),那么我们在配置之前需要注意这些问题。

1、MAC认证的用户名的格式为without-hyphen,就是0005e01c02e3没任何符号的,在创建用户名密码的时候可以统一为0005e01c02e3

2、认证模板本地我们可以采用默认或者是自定义,推荐养成自定义的习惯。

3、如果需要授权,我们可以对于认证后的用户进行本地授权,并且要考虑如果授权了VLAN后,数据VLAN放行的情况。


1、基本组网省略(已经第十八篇了,基础配置还不会,该反省了)


基于无线场景的本地MAC地址认证方案_本地MAC认证方案_10


基于无线场景的本地MAC地址认证方案_网络之路一天_11


基于无线场景的本地MAC地址认证方案_网络之路一天_12


基本环境就是Partners属于VLAN2, office属于VLAN3,开放式接入,都可以连接上,在这个基础上面,我们来做MAC地址认证。


基于无线场景的本地MAC地址认证方案_网络之路一天_13


AAA里面提示 认证类型是none


2、MAC本地认证配置


基于无线场景的本地MAC地址认证方案_网络之路一天_14

(1)配置MAC接入模板

[AC6005]mac-access-profile name mac

不需要配置任何参数,因为默认就是基于without-hyphen的用户名方式


基于无线场景的本地MAC地址认证方案_网络之路一天_15


(2)配置认证模板,认证模板分为认证方式、AAA方案、授权信息等

[AC6005]aaa
[AC6005-aaa]authentication-schememac
[AC6005-aaa-authen-mac]authentication-modelocal
[AC6005-aaa-authen-mac]q
定义了一个认证方式方案叫MAC,认证方式为local


[AC6005-aaa]local-user548998fc5e4b password  cipher548998fc5e4b
Error: The passwordcannot be the same as a user name or an inverted user name.

当配置本地认证信息的时候,可以看到用户名跟密码一致会提示错误,说密码不能包含用户名的信息。


解决方法:

[AC6005]mac-access-profilename mac
[AC6005-mac-access-profile-mac]mac-authenusername macaddress format without-hyphen password cipher Test@123
Info: The passwordshould meet the complexity check requirement.
定义一个通用密码,然后我们把本地信息的用户信息密码都设置这个。


[AC6005-aaa]local-user548998fc5e4b password  cipher Test@123
[AC6005-aaa]local-user548998fc5e4b service-type 8021x


[AC6005]authentication-profilename mac
[AC6005-authentication-profile-mac]mac-access-profilemac
[AC6005-authentication-profile-mac]authentication-schememac
定义一个认证模板,关联认证方式、接入模板,这里没有授权,所以不需要调用。


(3)调用认证模板到VAP
[AC6005-wlan-view]vap-profile  name Partners
[AC6005-wlan-vap-prof-Partners]authentication-profilemac
Warning: This actionmay cause service interruption. Continue?[Y/N]y


[AC6005-wlan-view]vap-profilename office
[AC6005-wlan-vap-prof-office]authentication-profilemac
Warning: This actionmay cause service interruption. Continue?[Y/N]y

总结下整个配置流程:(1)配置接入模板(采用哪种NAC认证)  (2)配置认证模板:认证模板里面分为认证方式(采用本地还是外部数据库)   如果是本地认证则配置本地用户信息(这里MAC地址用户名密码不能一致,所以采用通用密码方式解决),如果是外部数据库还需要配置radius等服务器的对接参数,还可以调用授权。(该实例就定义了认证方式为本地,然后配置了本地用户信息,然后调用了接入模板)  (3)把认证模板在VAP里面调用。


基于无线场景的本地MAC地址认证方案_华为华三无线AC AP组网_16


测试,可以连接,但是我们怎么判断它是不是属于MAC地址认证呢?


display mac-auten:查看MAC认证,可以看到有这个MAC的用户信息


基于无线场景的本地MAC地址认证方案_MAC地址认证_17


display access-user detail:查看用户信息的时候也可以看到AA的用户类型


基于无线场景的本地MAC地址认证方案_华为华三无线AC AP组网_18



可以看到type是提示的 MAC authentication


基于无线场景的本地MAC地址认证方案_中小型企业无线组网_19


点击连接,连不上。


这时候可以用到我们之前学过的一个排错命令


display station online-fail-record all


基于无线场景的本地MAC地址认证方案_华为华三无线AC AP组网_20



display  aaa online-fail-record  all:查看aaa失败的原因


基于无线场景的本地MAC地址认证方案_本地MAC认证方案_21


提示认证失败,认证失败的原因是因为我们没有这个用户名的本地信息,创建即可。


[AC6005-aaa]local-user54899886606e password  cipher Test@123

[AC6005-aaa]local-user54899886606e service-type 8021x


基于无线场景的本地MAC地址认证方案_中小型企业无线组网_22


已经连接成功,因为我们已经添加了本地用户信息,这个时候在来试试office。


基于无线场景的本地MAC地址认证方案_华为华三无线AC AP组网_23


office是先密码认证,密码认证城后在进行MAC地址认证。


基于无线场景的本地MAC地址认证方案_中小型企业无线组网_24


可以的,因为这个用户名在本地数据库里面。


基于无线场景的本地MAC地址认证方案_MAC地址认证_25


可以看到连的是Office,然后采用MAC地址认证方式。

 

 总结

1、对于从老版本过来的童鞋,一定要适应新版本的模板

2、思路就是(1)定义接入模板,采用什么NAC接入方式(2)定义认证模板(包括认证方式、授权,以及AAA,然后关联接入模板)  (3)把认证模板关联到VAP里面

3、本地认证的时候注意帐号密码在AC新版本里面都不能是包含用户名,我们解决办法是设置一个通用密码。

4、对MAC地址的认证流程有一个了解,然后了解查认证成功或者失败后如何去排查。

基于无线场景的本地MAC地址认证方案_华为华三无线AC AP组网_26

 作者:网络之路一天  首发公众号:网络之路博客(ID:NetworkBlog)