前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于无线场景的本地MAC地址认证方案

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

作者头像
网络之路一天
发布2024-01-08 19:53:38
1490
发布2024-01-08 19:53:38
举报
文章被收录于专栏:网络之路网络之路

关于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,内容为一些用户名的格式,是否重认证以及周期,是否绑定了认证模板。

代码语言:javascript
复制
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,如果我们想要配置成其他格式的,那么我们需要改参数。
代码语言:javascript
复制
在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认证本地方式的话,配置全部在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方案、授权信息等

代码语言:javascript
复制
[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.

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

解决方法:

代码语言:javascript
复制
[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地址认证呢?

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-user54899886606e password cipher Test@123

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

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

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

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

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

总结

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

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

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网络之路博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档