在网络接入控制中,AAA服务器负责身份验证(Authentication)、授权(Authorization)和计账(Accounting)。MAC认证(也称为MAB, MAC Authentication Bypass)是通过设备的物理地址(MAC)进行识别的一种认证手段。常见的实现方式是将交换机/NAS作为认证客户端,将MAC地址作为“用户名”提交给RADIUS或TACACS服务器进行核验,从而实现设备接入控制与端口安全策略下发。
对于没有802.1X能力的终端(如打印机、摄像头、会议设备),802.1X难以部署或不支持,使用MAC认证可以快速实现设备接入控制;同时可配合静态MAC或动态MAC策略,便于资产管理与安全审计。
通常采用RADIUS作为网络接入的身份认证协议,因为RADIUS在网络访问类(Network Access)场景(如802.1X、MAB)具有丰富的属性支持与广泛兼容性。TACACS(或TACACS+)更常用于设备管理、命令授权与审计,不是首选的MAC认证协议,但在某些厂商实现中也可用于细粒度策略下发与设备认证。
要实现MAC认证,通常需要:交换机/无线控制器(NAS),AAA服务器(常用RADIUS服务器如FreeRADIUS、ACS或AD集成的RADIUS),以及设备数据库(含静态MAC或动态登记信息)。
交换机检测到未知设备上线后触发MAB,采集设备MAC并作为用户名向RADIUS发起Access-Request;RADIUS比对数据库后返回Access-Accept/Reject,同时可携带VLAN/ACL等策略下发属性;交换机根据返回的属性完成端口放行或限制。
基于MAC的认证容易被MAC伪造攻击绕过,因此建议将MAC认证与端口隔离、端口安全(如端口安全mac limit/violation)、设备指纹(设备识别)和日志审计结合使用,必要时启用二次验证或入网前隔离策略。
TACACS在设备管理与命令级授权上更灵活,但在MAB场景中功能并不如RADIUS直接。若要把TACACS用于MAC绑定,通常需要厂商特定实现或将TACACS与本地策略结合,复杂度更高。
对大多数接入控制场景,优先选择RADIUS实现MAB与MAC绑定策略;在需要对网络设备命令与配置作细粒度审计时,结合TACACS作为运维授权方案。
示例基于常见交换机与FreeRADIUS,目标是用MAC作为用户名鉴权并下发VLAN 100。
# users
00-11-22-33-44-55 Cleartext-Password := "00-11-22-33-44-55"
Service-Type = Framed-User,
Tunnel-Type = VLAN,
Tunnel-Medium-Type = 802,
Tunnel-Private-Group-Id = "100"
aaa new-model
radius-server host 10.0.0.10 auth-port 1812 key radiusKey
aaa authentication dot1x default group radius
aaa authorization network default group radius
interface GigabitEthernet1/0/1
switchport mode access
switchport access vlan 999
authentication port-control auto
mab
dot1x pae authenticator
spanning-tree portfast
上述配置使交换机在802.1X失败时使用MAB,并将MAC当作用户名提交到RADIUS;RADIUS返回的Tunnel-Private-Group-Id会被用于下发VLAN(即实现MAC绑定)。
对关键设备推荐使用静态MAC条目并加强物理和策略隔离;对临时设备采用动态MAC登记流程(如门户认证后在AAA记录中写入MAC),以降低管理负担。
启用RADIUS Accounting,将设备上线/下线记录到SIEM,以便进行异常检测(如短时间内同一MAC在多端口出现,可能是伪造或复制)。
配合交换机的端口安全、802.1X、ARP防护与流量监控,减少MAC欺骗风险;对高风险环境建议使用设备指纹/证书认证替代单纯的MAC认证。
不同厂商对MAC格式(00-11-22-33-44-55、0011.2233.4455、00:11:22:33:44:55)处理不同,建议统一转换规则或在RADIUS端配置多个格式的条目。