关于MAC地址认证的场景

MAC地址认证最早出现在有线交换机上面,对于接入交换机的口开启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,在实际环境中要考虑服务器的配置权是否属于自己,如果是其他人负责,则需要根据协商来。当然我们也可以采用本地认证方式。

MAC认证授权

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

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

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地址本地认证案例

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

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

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

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

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

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

AAA里面提示 认证类型是none

2、MAC本地认证配置

(1)配置MAC接入模板

[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地址认证方案