3. 准入控制基础协议

准入控制不是单一协议能完成的任务,而是一条由“链路认证—身份协商—策略裁决—密钥保护”串起来的协议链。理解这条链上每个协议负责什么、不负责什么,是设计NAC方案的前提。本节把802.1X、EAP、RADIUS、MAB、MACsec放在同一条数据路径上讲解,重点说明它们的交互关系与适用边界。

一、802.1X:链路层的“门禁开关”

802.1X是IEEE定义的基于端口的网络接入控制协议,工作在数据链路层。它把交换机或无线AP上的一个物理/逻辑端口划分为两个逻辑通道:受控端口(Controlled Port)和非受控端口(Uncontrolled Port)。认证未通过前,受控端口关闭,终端只能通过非受控端口收发EAPoL(EAP over LAN)报文;认证通过后,受控端口打开,业务流量才能通行。

802.1X定义了三个角色:客户端(Supplicant)、认证者(Authenticator,通常是交换机/AP)、认证服务器(Authentication Server,通常是RADIUS服务器)。认证者本身不做身份裁决,它只是把客户端的EAP报文封装进RADIUS报文转发给服务器,再把服务器结果翻译成端口的开/关动作。这一点非常关键:交换机是“执行者”,不是“决策者”。

802.1X的适用边界很明确:它要求终端具备Supplicant能力。Windows、macOS、Linux原生支持,但打印机、IP电话、摄像头、PLC等哑终端往往没有。此外,802.1X依赖EAPoL报文,在终端未加载Supplicant或网卡驱动未就绪时无法认证,因此常需要配合MAB作为兜底。

二、EAP:可扩展的认证“信封”

EAP(Extensible Authentication Protocol)本身不是认证方法,而是一个认证框架。它只定义了请求/响应/成功/失败的报文格式,真正的认证逻辑由具体的EAP方法承载,例如EAP-MD5、EAP-TLS、PEAP、EAP-TTLS、EAP-FAST等。

不同EAP方法的安全强度差异很大:EAP-MD5只做单向口令摘要,不提供服务器认证,易受中间人攻击,仅适合测试;EAP-TLS使用双向证书,安全性最高,但需要为每台终端签发客户端证书,运维成本高;PEAP和EAP-TTLS采用“服务器证书+隧道内口令”的方式,在安全性和部署成本之间取得平衡,是企业有线/无线准入最常用的选择。

EAP的边界在于:它只解决“如何证明身份”,不解决“认证后能访问什么”。授权、VLAN分配、ACL下发等策略动作,全部由RADIUS在认证成功后通过属性下发完成。

三、RADIUS:策略裁决与属性下发中心

RADIUS是AAA(认证、授权、计费)协议的事实标准,使用UDP 1812(认证/授权)和1813(计费)端口。在NAC中,RADIUS服务器(如Cisco ISE、FreeRADIUS、华为Agile Controller)承担策略点(PDP)角色,交换机/AP作为RADIUS客户端(NAS)承担执行点(PEP)。

一次典型的RADIUS交互包含:Access-Request(携带用户名、NAS-IP、Calling-Station-Id等)→ Access-Challenge(可选,用于EAP多轮交互)→ Access-Accept或Access-Reject。Access-Accept中可携带大量授权属性,例如:

Tunnel-Type = VLAN
Tunnel-Medium-Type = IEEE-802
Tunnel-Private-Group-Id = 30
Filter-Id = ACL-EMPLOYEE
Session-Timeout = 28800

上述属性表示:认证通过后把该端口划入VLAN 30,应用ACL-EMPLOYEE,会话超时8小时。RADIUS的边界在于:它基于UDP,本身不加密整个报文,仅对密码字段做隐藏,因此现代部署要求RADIUS over TLS(RadSec)或至少使用IPsec保护;同时RADIUS不负责链路层加密,只负责“放行”和“打标签”。

四、MAB:没有Supplicant时的身份兜底

MAB(MAC Authentication Bypass)用终端的MAC地址作为用户名和密码,向RADIUS发起认证。交换机在端口上开启MAB后,若一段时间内未收到EAPoL报文,就自动用源MAC触发RADIUS请求。MAB本身不提供密码学意义上的身份证明,MAC地址可被伪造,因此它只适合作为哑终端的接入手段,且必须配合其他控制措施:

  • 在RADIUS侧建立MAC地址白名单,只允许已登记设备通过;
  • 将MAB通过的终端放入隔离VLAN或受限ACL,仅允许访问必要服务;
  • 结合IP-MAC绑定、DHCP Snooping、动态ARP检测(DAI)抑制伪造;
  • 对MAB终端启用端口安全(Port Security)限制MAC数量。

MAB的适用边界是“可信但能力受限的已知设备”,绝不能用于员工PC等具备Supplicant能力的终端。

五、MACsec:链路层加密的补充

MACsec(IEEE 802.1AE)在以太网帧层提供逐跳的加密与完整性校验,使用GCM-AES-128/256算法,通过MKA(MACsec Key Agreement,802.1AK)协商密钥。它解决的是“数据在链路上被窃听或篡改”的问题,而不是“谁能接入”的问题。

MACsec与802.1X的关系是互补的:802.1X负责身份认证和密钥分发(通过EAP导出MSK,再派生CAK/CKN),MACsec负责用这些密钥加密后续数据帧。典型部署在交换机与交换机之间、交换机与服务器之间、以及支持MACsec的终端与AP之间。边界在于:MACsec需要两端硬件支持,且是逐跳加密,跨路由后不再保护;它不能替代RADIUS授权,也不能解决终端自身的安全问题。

协议链与适用边界总览

把五个协议放在一条链路上看:终端发起EAPoL → 交换机封装为RADIUS Access-Request → RADIUS服务器执行EAP方法并裁决 → 返回Access-Accept及授权属性 → 交换机打开受控端口并应用VLAN/ACL → 若启用MACsec,则用EAP派生的密钥加密链路数据。MAB则是在EAPoL缺失时,用MAC地址走同一条RADIUS通道的替代入口。

NAC准入协议链:从链路认证到链路加密 终端 Supplicant PC / 手机 / 哑终端 EAPoL 客户端 MACsec 端点(可选) 认证者 Authenticator 交换机 / 无线AP 受控端口 / 非受控端口 EAPoL 终结 + RADIUS 客户端 MAB 触发点 认证服务器 RADIUS ISE / FreeRADIUS EAP 方法裁决 VLAN / ACL / 超时下发 MAC 白名单(MAB) EAPoL RADIUS Accept/Reject 受控端口状态 认证前:关闭(仅EAPoL) 认证后:打开 + VLAN/ACL MACsec 链路加密 GCM-AES-128/256 MKA 密钥协商(逐跳) 密钥派生 MAB 兜底 无Supplicant终端 MAC地址作为凭据 MAC触发 适用边界速查 802.1X:需Supplicant,负责端口开/关;EAP:只定义框架,方法决定安全强度;RADIUS:负责裁决与属性下发,不加密链路。 MAB:MAC可伪造,仅作哑终端兜底,须配白名单与隔离VLAN;MACsec:逐跳加密,需硬件支持,不替代身份认证。 组合原则:802.1X + EAP-TLS/PEAP 为主,MAB 兜底,RADIUS 下发策略,MACsec 保护链路数据。

六、工程选型建议

在实际项目中,协议选择应遵循“能力匹配、风险可控”的原则。员工PC和移动设备优先使用802.1X + PEAP/EAP-TLS,实现强身份认证和动态VLAN;打印机、IP电话、摄像头等哑终端使用MAB,但必须限制在隔离VLAN并绑定MAC白名单;交换机互联、服务器接入等对链路窃听敏感的场景,在802.1X基础上叠加MACsec;RADIUS服务器应部署为双机热备,并启用RadSec或IPsec保护认证流量。

需要特别注意的是,协议链中任何一环配置不当都会导致准入失效。例如:RADIUS的共享密钥不一致会导致Access-Reject;交换机未开启MAB且终端无Supplicant会导致端口长期关闭;EAP方法选择EAP-MD5会使认证形同虚设。因此,部署后应通过端口状态、RADIUS日志、EAP交互抓包三个层面交叉验证,确认认证路径与授权结果符合设计预期。