802.1X 认证技术指南
802.1X 认证技术指南
目录
- 概述
- 802.1X 基本概念
- 体系架构与角色
- EAP(可扩展认证协议)
- RADIUS 协议
- 常见认证方法详解
- 认证流程完整示例
- 部署实践
- 安全注意事项
- 故障排查
- 参考标准与资料
1. 概述
802.1X是 IEEE 标准定义的基于端口的网络访问控制(Port-Based Network Access Control)协议。它工作在 OSI 模型的数据链路层(Layer 2),为有线以太网和无线局域网(WLAN)提供身份认证和授权能力。
简而言之,802.1X 确保一个设备在通过认证之前,只能与认证系统通信;认证通过后,才被允许访问更广泛的网络资源。
为什么需要 802.1X?
| 场景 | 问题 | 802.1X 的解决方案 |
|---|---|---|
| 企业有线网络 | 任何人插上网线就能接入内网 | 端口认证,未认证前只允许 EAPoL 流量 |
| 企业 Wi-Fi(WPA2-Enterprise) | PSK 共享密码难以管理、泄露风险高 | 每个用户使用独立凭证认证 |
| 访客/合作伙伴网络 | 需要临时身份认证但不暴露内部凭据 | 支持多种 EAP 方法,可对接不同认证源 |
| 物联网设备接入 | 需要自动认证但无法交互输入密码 | 支持基于证书(EAP-TLS)的设备认证 |
2. 802.1X 基本概念
2.1 什么是基于端口的访问控制?
物理或逻辑"端口"(如交换机的一个接口、Wi-Fi 的关联关系)在认证通过之前处于unauthorized(未授权)状态,此时只允许EAPoL(EAP over LAN)流量通过。认证通过后,端口切换到authorized(已授权)状态,正常数据流量方可通行。
端口状态模型包含两个虚拟端口:
- 受控端口(Controlled Port):承载正常数据流量,默认关闭。
- 非受控端口(Uncontrolled Port):只允许 EAPoL 认证帧通过,始终开放。
2.2 关键术语
| 术语 | 全称 | 说明 |
|---|---|---|
| PAE | Port Access Entity | 端口中执行 802.1X 操作的实体 |
| EAPoL | EAP over LAN | 在以太网帧中封装 EAP 消息的协议 |
| Supplicant | 请求者 | 请求接入网络的客户端(用户设备) |
| Authenticator | 认证器 | 控制端口状态的网络设备(交换机/AP) |
| Authentication Server | 认证服务器 | 验证凭据的后端服务器(通常为 RADIUS 服务器) |
| MAB | MAC Authentication Bypass | 对于不支持 802.1X 的设备(如打印机),使用 MAC 地址绕过认证 |
3. 体系架构与角色
802.1X 采用客户端-认证器-认证服务器三层架构:
┌─────────────────┐ EAPoL ┌──────────────────┐ RADIUS ┌──────────────────┐ │ │ ◄──────────────► │ │ ◄─────────► │ │ │ Supplicant │ │ Authenticator │ │ Auth Server │ │ (客户端/请求者) │ │ (交换机/AP) │ │ (RADIUS 服务器) │ │ │ │ │ │ │ └─────────────────┘ └──────────────────┘ └──────────────────┘3.1 Supplicant(请求者/客户端)
- 安装在终端设备上的软件实体,负责发起认证请求、响应认证服务器的挑战。
- 常见实现:Windows
Wired AutoConfig/WLAN AutoConfig、wpa_supplicant(Linux)、maconfig(macOS)。 - 持有认证凭据(用户名/密码、证书、智能卡等)。
3.2 Authenticator(认证器)
- 位于 Supplicant 和 Authentication Server 之间,执行"关口"角色。
- 典型设备:支持 802.1X 的交换机(有线)或无线接入点(AP)/无线控制器(WLC)(无线)。
- 职责:
- 从 Supplicant 接收 EAPoL 帧,解封装后通过 RADIUS 发送给认证服务器。
- 根据认证服务器的授权结果(Accept/Reject)控制端口状态。
- 可选地发送计费(Accounting)信息。
3.3 Authentication Server(认证服务器)
- 后端验证服务,通常运行RADIUS协议。
- 典型产品:FreeRADIUS、Cisco ISE、Aruba ClearPass、Microsoft NPS。
- 职责:
- 验证 Supplicant 提供的凭证。
- 返回认证结果(Accept 携带授权属性 / Reject / Challenge)。
- 下发授权属性(VLAN、ACL、QoS 策略等)。
4. EAP(可扩展认证协议)
4.1 EAP 概述
EAP(Extensible Authentication Protocol)定义于 RFC 3748,是一个认证框架而非单一的认证方法。它允许使用多种认证机制(密码、证书、令牌等)在 Supplicant 和 Authentication Server 之间交换认证信息。
关键特性:
- Authenticator 无需了解具体认证方法,只需在 Supplicant 和 Auth Server 之间中继EAP 消息。
- 支持重传和分片,适配不同链路质量。
- EAP 本身不保证消息的完整性/机密性——这由下层协议或具体的 EAP 方法提供。
4.2 EAP 消息类型
| 类型码 | 名称 | 说明 |
|---|---|---|
| 1 | Request | 认证服务器发出,要求客户端提供信息 |
| 2 | Response | 客户端对 Request 的回复 |
| 3 | Success | 认证成功 |
| 4 | Failure | 认证失败 |
| 5 | Legacy Nak | 客户端拒绝所提议的 EAP 方法(已弃用) |
| 6… | Expanded Types | 扩展类型 |
4.3 EAPoL(EAP over LAN)
EAPoL 是以太网链路层上封装 EAP 帧的协议,定义于 802.1X 标准中。关键帧类型:
| EAPoL 类型 | 值 | 说明 |
|---|---|---|
| EAP-Packet | 0 | 承载 EAP 消息 |
| EAPoL-Start | 1 | Supplicant 主动发起认证 |
| EAPoL-Logoff | 2 | Supplicant 主动注销(端口回到未授权状态) |
| EAPoL-Key | 3 | 用于 WPA/WPA2 无线加密密钥派生 |
| EAPoL-Encapsulated-ASF-Alert | 4 | 告警消息 |
4.4 EAP 方法类型码
| EAP 方法 | 类型码 | RFC |
|---|---|---|
| MD5-Challenge | 4 | RFC 3748 |
| OTP | 5 | RFC 3748 |
| GTC (Generic Token Card) | 6 | RFC 3748 |
| TLS | 13 | RFC 5216 |
| TTLS (Tunneled TLS) | 21 | RFC 5281 |
| PEAP (Protected EAP) | 25 | RFC (draft) |
| FAST | 43 | RFC 4851 |
| PWD | 52 | RFC 5931 |
5. RADIUS 协议
5.1 概述
RADIUS(Remote Authentication Dial-In User Service)定义于 RFC 2865(认证与授权)和 RFC 2866(计费),是最广泛使用的 AAA(Authentication, Authorization, Accounting)协议。
5.2 RADIUS 消息类型
| 消息码 | 名称 | 方向 |
|---|---|---|
| 1 | Access-Request | Authenticator → Server |
| 2 | Access-Accept | Server → Authenticator |
| 3 | Access-Reject | Server → Authenticator |
| 4 | Accounting-Request | Authenticator → Server |
| 5 | Accounting-Response | Server → Authenticator |
| 11 | Access-Challenge | Server → Authenticator |
5.3 RADIUS 工作原理
Supplicant Authenticator RADIUS Server │ │ │ │ EAPoL-Start │ │ │────────────────────►│ │ │ │ │ │ EAP-Request/ID │ │ │◄────────────────────│ │ │ │ │ │ EAP-Response/ID │ │ │────────────────────►│ │ │ │ RADIUS Access-Request │ │ │ (EAP-Response/ID) │ │ │─────────────────────────►│ │ │ │ │ │ RADIUS Access-Challenge │ │ │ (EAP-Request/Method) │ │ │◄─────────────────────────│ │ EAP-Request/ │ │ │ (Method) │ │ │◄────────────────────│ │ │ │ │ │ (EAP 方法特定消息交换...) │ │ │ │ │ │ RADIUS Access-Request │ │ │ (EAP-Response/... ) │ │ │─────────────────────────►│ │ │ │ │ │ RADIUS Access-Accept │ │ │ (EAP-Success + Attrs) │ │ │◄─────────────────────────│ │ EAP-Success │ │ │◄────────────────────│ │ │ │ │ │ [端口打开,开始数据通信] │ │ │ │ │ EAPoL-Logoff │ │ │────────────────────►│ │ │ │ RADIUS Accounting- │ │ │ Request (Stop) │ │ │─────────────────────────►│ │ │ │5.4 RADIUS 的关键特征
- UDP 协议(认证/授权端口 1812,计费端口 1813;早期设备可能使用 1645/1646)。
- 共享密钥认证:Authenticator 和 Server 之间通过 pre-shared secret 保证消息完整性。
- 属性编码(AV Pairs):所有信息以 Type-Length-Value 格式传输。
- 代理功能:RADIUS 服务器可以代理请求到其他 RADIUS 服务器(Proxy RADIUS)。
- 相比 Diameter(RADIUS 的后继者),RADIUS 更加轻量且仍是最主流的 AAA 协议。
5.5 RADIUS 常见属性(Attribute)
| 属性号 | 名称 | 说明 |
|---|---|---|
| 1 | User-Name | 用户名 |
| 2 | User-Password | 用户密码(使用共享密钥加密) |
| 4 | NAS-IP-Address | 认证器的 IP 地址 |
| 5 | NAS-Port | 认证器端口号 |
| 6 | Service-Type | 服务类型(如 Framed, Login, Authenticate-Only) |
| 8 | Framed-IP-Address | 分配给客户端的 IP 地址 |
| 12 | Framed-MTU | 链路 MTU |
| 26 | Vendor-Specific | 厂商特定属性(VSA) |
| 27 | Session-Timeout | 会话超时时间 |
| 28 | Idle-Timeout | 空闲超时时间 |
| 30 | Called-Station-Id | 被叫站 ID(如 AP 的 MAC/BSSID) |
| 31 | Calling-Station-Id | 主叫站 ID(客户端的 MAC 地址) |
| 61 | NAS-Port-Type | 端口类型(Ethernet, Wireless, Virtual 等) |
| 64 | Tunnel-Type | 隧道类型(用于 VLAN 分配) |
| 65 | Tunnel-Medium-Type | 隧道介质类型 |
| 81 | Tunnel-Private-Group-ID | 隧道组 ID(通常用于指定 VLAN ID) |
| 87 | NAS-Port-Id | 端口标识字符串 |
| 95 | NAS-IPv6-Address | 认证器的 IPv6 地址 |
6. 常见认证方法详解
6.1 EAP-MD5(不推荐)
- 安全性:低。仅发送密码的 MD5 哈希值,易受字典攻击和中间人攻击。
- 不提供服务器身份验证——客户端无法确认是否连接到了合法服务器。
- 不适用于无线网络(WPA/WPA2-Enterprise 要求使用提供密钥派生能力的 EAP 方法)。
6.2 EAP-TLS
- 安全性:极高。基于双向 X.509 证书认证(服务器和客户端都需要证书)。
- 工作流程:
- 服务器向客户端发送服务器证书。
- 客户端验证服务器证书(CA 签名验证、证书吊销检查)。
- 客户端向服务器发送客户端证书。
- 服务器验证客户端证书。
- TLS 会话建立,派生主密钥(MSK, Master Session Key)。
- 优点:安全性最高;支持证书吊销;密钥自动派生。
- 缺点:部署复杂度高,需要 PKI(公钥基础设施)管理大规模客户端证书。
- 适用场景:政府、金融、大型企业等安全要求极高的环境。
6.3 PEAP(Protected EAP)
- 安全性:高。在 TLS 隧道内进行二次认证。
- 工作流程:
- 建立外层 TLS 隧道(服务器证书认证客户端,客户端验证服务器证书)。
- 在加密隧道内进行内层认证(通常为 EAP-MSCHAPv2 或 EAP-GTC)。
- TLS 会话派生 MSK。
- 版本:
- PEAPv0(Microsoft):内层用 EAP-MSCHAPv2,最广泛使用。
- PEAPv1(Cisco):内层用 EAP-GTC。
- 优点:
- 仅服务器需要证书,客户端证书可选。
- 与 Windows Active Directory 深度集成,支持域凭据认证。
- 缺点:如果服务器证书验证配置不当,易受中间人攻击。
6.4 EAP-TTLS(Tunneled TLS)
- 安全性:高。与 PEAP 类似,使用 TLS 隧道封装内层认证。
- 区别:TTLS 比 PEAP 更灵活——内层认证可以使用非 EAP 协议(如 PAP, CHAP, MS-CHAP, MS-CHAPv2 甚至 LDAP)。
- 支持两种内层认证方式:
- EAP inside TTLS:内层使用 EAP 方法。
- PAP/CHAP inside TTLS:内层使用传统 PPP 认证协议。
- 优点:兼容性最强,可与遗留认证系统对接。
- 缺点:不像 PEAP 那样被广泛原生支持(尤其在移动设备上)。
6.5 EAP-FAST(Flexible Authentication via Secure Tunneling)
- 由 Cisco 开发,用于替代 LEAP(轻量级 EAP,已废弃)。
- 使用 PAC(Protected Access Credential)在客户端和服务器之间建立 TLS 隧道。
- 支持三种认证模式:
- PAC 手动分发:提前将 PAC 部署到客户端。
- PAC 自动分发:首次使用匿名 Diffie-Hellman 建立隧道,不安全。
- 带服务器认证的自动分发:添加服务器证书验证。
- 优点:不需要管理证书。
6.6 EAP-PWD
- 安全性:中~高。使用共享密码进行认证,不需要证书。
- 基于PAKE(Password Authenticated Key Exchange)——使用 Dragonfly 算法抵抗离线字典攻击。
- 优点:部署简单(只需密码),不会泄露密码哈希。
- 缺点:密码策略(强度、轮换)需要严格控制;支持度中等。
6.7 方法对比总结
| 方法 | 服务器证书 | 客户端证书 | 密码 | 安全性 | 部署复杂度 | 常用场景 |
|---|---|---|---|---|---|---|
| EAP-MD5 | ❌ | ❌ | ✅ | 极低 | 低 | ❌ 已废弃 |
| EAP-TLS | ✅ | ✅ | ❌ | 极高 | 高 | 金融、政务、高安全 |
| PEAP | ✅ | ❌ | ✅ | 高 | 中 | 企业最广泛 |
| EAP-TTLS | ✅ | ❌ | ✅ | 高 | 中 | 遗留系统对接 |
| EAP-FAST | ❌ | ❌ | ✅ | 中~高 | 中 | Cisco 环境 |
| EAP-PWD | ❌ | ❌ | ✅ | 中~高 | 低 | 简单密码场景 |
7. 认证流程完整示例
以下以PEAPv0/EAP-MSCHAPv2(企业中最常见组合)为例,展示完整消息交换:
Supplicant Authenticator RADIUS Server (PC/Phone) (Switch/AP) (FreeRADIUS/ISE) │ │ │ │ EAPoL-Start │ │ │─────────────────────────►│ │ │ │ │ │ EAP-Request/Identity │ │ │◄─────────────────────────│ │ │ │ │ │ EAP-Response/Identity │ │ │ (user@domain) │ │ │─────────────────────────►│ │ │ │ RADIUS Access-Request │ │ │ (EAP-Response/Identity) │ │ │─────────────────────────────►│ │ │ │ │ │ RADIUS Access-Challenge │ │ │ (EAP-Request/PEAP Start) │ │ │◄─────────────────────────────│ │ │ │ │ EAP-Request/PEAP │ │ │ (Start TLS) │ │ │◄─────────────────────────│ │ │ │ │ │ [TLS 握手开始] │ │ │ Server Certificate │ │ │ ClientHello/Change-Cipher │ │ [TLS 隧道建立完成] │ │ │ │ │ │ [加密隧道内] │ │ │ EAP-Response/ │ │ │ Identity (再次) │ │ │─────────────────────────►│ │ │ │ RADIUS Access-Request │ │ │ (加密后的EAP包) │ │ │─────────────────────────────►│ │ │ │ │ │ RADIUS Access-Challenge │ │ │ (EAP-Request/ │ │ │ MSCHAPv2 Challenge) │ │ │◄─────────────────────────────│ │ │ │ │ [隧道内] │ │ │ EAP-Request/ │ │ │ MSCHAPv2 Challenge │ │ │◄─────────────────────────│ │ │ │ │ │ [客户端计算 NT Hash │ │ │ + Challenge Response] │ │ │ │ │ │ [隧道内] │ │ │ EAP-Response/ │ │ │ MSCHAPv2 Response │ │ │─────────────────────────►│ │ │ │ RADIUS Access-Request │ │ │ (加密后的 Response) │ │ │─────────────────────────────►│ │ │ │ │ │ [服务器验证成功] │ │ │ │ │ │ RADIUS Access-Accept │ │ │ (EAP-Success + MSK + │ │ │ Tunnel-Private-Group-ID ) │ │ │◄─────────────────────────────│ │ │ │ │ EAP-Success │ │ │◄─────────────────────────│ │ │ │ │ │ [端口打开, 数据通行] │ │ │ │ │ │ [WPA 4-Way Handshake] │ (仅无线: 派生 PTK) │ │ │ │ │ [正常数据传输] │ │ │ │ │ │ EAPoL-Logoff │ │ │─────────────────────────►│ │ │ │ RADIUS Accounting-Request │ │ │ (Acct-Status-Type=Stop) │ │ │─────────────────────────────►│ │ │ RADIUS Accounting-Response │ │ │◄─────────────────────────────│ │ │ │认证中的密钥派生
对于无线网络,认证过程结束后会派生以下密钥:
- MSK(Master Session Key):RADIUS 服务器和客户端同时派生,长度为 64 字节。
- PMK(Pairwise Master Key):Authenticator 从 MSK 的前 32 字节派生(WPA/WPA2)。
- PTK(Pairwise Transient Key):通过四次握手(4-Way Handshake)从 PMK 派生,用于加密单播流量。
- GTK(Group Temporal Key):由 AP 生成,用于加密广播/组播流量。
8. 部署实践
8.1 部署前规划
| 步骤 | 要点 |
|---|---|
| 1. 确定认证方法 | PEAP-MSCHAPv2(通用)、EAP-TLS(高安全)、EAP-TTLS(兼容旧系统) |
| 2. 选择 RADIUS 服务器 | FreeRADIUS(开源)、Cisco ISE、Aruba ClearPass、Microsoft NPS |
| 3. 准备 PKI(如需证书) | 搭建 CA 服务器,申请服务器证书,配置客户端信任链 |
| 4. 规划用户/设备身份源 | Active Directory、LDAP、本地数据库 |
| 5. 定义授权策略 | VLAN 映射、ACL 策略、会话超时、ACL 过滤 |
| 6. 网络设备配置 | 交换机/AP 上启用 802.1X,配置 RADIUS 服务器 IP 和共享密钥 |
| 7. 客户端配置与分发 | GPO(组策略)或 MDM 推送 802.1X 配置 |
| 8. 分阶段上线 | Monitor → Low-Impact → High-Impact → Full |
8.2 FreeRADIUS 基本配置示例
/etc/freeradius/3.0/clients.conf:
client switch-1 { ipaddr = 192.168.1.10 secret = shared_secret_123 shortname = switch-1 nastype = cisco } client ap-1 { ipaddr = 10.0.100.20 secret = another_secret shortname = ap-1 nastype = aruba }/etc/freeradius/3.0/users(本地用户):
alice Cleartext-Password := "P@ssw0rd" Service-Type = Framed-User, Tunnel-Type = VLAN, Tunnel-Medium-Type = IEEE-802, Tunnel-Private-Group-ID = "100" bob Cleartext-Password := "Str0ng!Pass" Service-Type = Framed-User, Tunnel-Type = VLAN, Tunnel-Medium-Type = IEEE-802, Tunnel-Private-Group-ID = "200"AD 集成片段(/etc/freeradius/3.0/mods-enabled/ntlm_auth):
ntlm_auth { program = "/usr/bin/ntlm_auth --request-nt-key \ --username=%{mschap:User-Name} \ --challenge=%{mschap:Challenge:-00} \ --nt-response=%{mschap:NT-Response:-00}" }8.3 Cisco 交换机基本配置
! 全局启用 AAA aaa new-model aaa authentication dot1x default group radius aaa authorization network default group radius aaa accounting dot1x default start-stop group radius ! 配置 RADIUS 服务器 radius server RAD-FREERADIUS address ipv4 192.168.1.100 auth-port 1812 acct-port 1813 key shared_secret_123 ! 接口配置 802.1X interface GigabitEthernet1/0/1 switchport mode access authentication port-control auto ! auto = 802.1X 启用 authentication host-mode multi-domain ! 支持电话+PC多设备 authentication violation restrict dot1x pae authenticator spanning-tree portfast8.4 无线网络配置要点
- SSID 配置为WPA2-Enterprise(或 WPA3-Enterprise / 802.1X-2020)。
- 认证密钥管理(AKM)选择 802.1X/SHA-1 或 802.1X/SHA-256。
- RADIUS 服务器配置在 WLC/AP 上,指向企业 RADIUS 集群。
- 无线 802.1X 使用EAPoL over Wireless(封装在 802.11 管理帧中)。
- 建议使用WPA3-Enterprise 192-bit mode满足高安全(如政府/金融)环境。
8.5 客户端配置
Windows(GPO 方式):
<!-- Wireless Profile 示例 (WLAN-Profile.xml) --><WLANProfilexmlns="http://www.microsoft.com/networking/WLAN/profile/v1"><name>Company-WiFi</name><SSIDConfig><SSID><name>Company-WiFi</name></SSID></SSIDConfig><connectionType>ESS</connectionType><connectionMode>auto</connectionMode><MSM><security><authEncryption><authentication>WPA2</authentication><encryption>AES</encryption><useOneX>true</useOneX></authEncryption><OneXxmlns="http://www.microsoft.com/networking/OneX/v1"><cacheUserData>true</cacheUserData><authMode>user</authMode><EAPConfig><EapHostConfig><EapMethod><Type>25</Type><!-- PEAP --><SubType>26</SubType><!-- MSCHAPv2 --></EapMethod></EapHostConfig></EAPConfig></OneX></security></MSM></WLANProfile>Linux(wpa_supplicant):
# /etc/wpa_supplicant/wpa_supplicant.conf network={ ssid="Company-WiFi" key_mgmt=WPA-EAP eap=PEAP identity="alice@company.com" password="P@ssw0rd" phase2="auth=MSCHAPV2" ca_cert="/etc/ssl/certs/company-ca.pem" domain_suffix_match="radius.company.com" }9. 安全注意事项
9.1 常见威胁
| 威胁 | 描述 | 防范措施 |
|---|---|---|
| 中间人攻击 | 攻击者伪装成合法 AP/交换机 | 严格验证服务器证书(检查 CN/SAN);使用 EAP-TLS |
| 恶意 AP/交换机 | 攻击者放置虚假网络设备 | 启用 802.1X 双向认证;NAD 设备验证 |
| 凭证窃取 | 密码被截获或破解 | 使用 EAP-TLS(证书认证);限制失败重试次数 |
| 会话劫持 | 攻击者劫持已认证会话 | 启用动态 VLAN 和会话超时;周期重新认证 |
| 证书伪造 | 攻击者使用伪造 CA 签发证书 | 严格信任链管理;使用 CRL/OCSP 检查吊销状态 |
9.2 最佳实践
- 证书验证不可跳过:客户端必须验证 RADIUS 服务器证书的完整性和合法性。
- 使用强 EAP 方法:首选 EAP-TLS,其次是 PEAP/EAP-TTLS。不要使用 EAP-MD5 或 LEAP。
- 密码策略:使用复杂密码或与 AD 集成;考虑 MFA(多因素认证)。
- 网络分段:不同角色用户/设备分配到不同 VLAN,配合 ACL 限制访问范围。
- RADIUS 安全:
- 使用强共享密钥(建议 32+ 字符随机字符串)。
- 限制 RADIUS 服务器的来源 IP。
- 考虑 RADIUS over TLS(RADSEC, RFC 6614)加密传输。
- 日志与监控:集中采集 RADIUS 日志,设置认证失败告警阈值。
- 定期证书轮换:不要在配置中硬编码证书密码。
- 分阶段上线:使用 Monitor 模式(先观察不阻断)降低风险。
9.3 补充安全机制
- DACL(动态 ACL):RADIUS 下发动态 ACL,将用户权限收窄到最小必要。
- CoA(Change of Authorization):RFC 5176 定义的 RADIUS 动态授权变更,可在认证后动态调整策略。
- MACsec(802.1AE):配合 802.1X 使用,提供 L2 数据加密,防范旁路监听。
- MAB 风险:MAC 地址可伪造,MAB 仅适用于打印机等非交互设备,且应结合接入交换机端口安全。
10. 故障排查
10.1 常见问题与排查步骤
| 问题 | 可能原因 | 排查方法 |
|---|---|---|
| 客户端始终无法认证 | 交换机/AP 上未启用 802.1X | 检查show authentication sessions(交换机) |
| 认证超时 | RADIUS 服务器不可达或端口被防火墙拦截 | ping+telnet <RADIUS-IP> 1812检查连通性 |
| 证书错误 | 客户端不信任服务器证书 | 检查 CA 证书是否安装到客户端受信任根目录;验证证书 CN/SAN |
| MSCHAPv2 错误 691 | 用户名/密码错误 | 在 RADIUS 服务器上检查认证日志 |
| MSCHAPv2 错误 734 | PPP 链路控制协议错误 | 通常是 AD 账号限制或密码过期;检查 AD 账户状态 |
| 认证通过但无法上网 | VLAN 分配错误或 DHCP 故障 | 检查 RADIUS 下发的 Filter-ID / Tunnel-Private-Group-ID;检查 DHCP scope |
| 无线频繁断线重连 | 会话超时设置过短 | 检查 RADIUS 下发的 Session-Timeout 和 Idle-Timeout |
| PEAP 隧道建立失败 | TLS 版本不匹配或密码套件不支持 | 检查 RADIUS 服务器的 TLS 配置(推荐 TLS 1.2+) |
10.2 调试命令
RADIUS 服务器端(FreeRADIUS):
# 前台调试模式(强烈推荐)freeradius-X# 查看认证日志tail-f/var/log/freeradius/radius.log# 测试认证(radtest 命令)radtest alice P@ssw0rd localhost0testing123Cisco 交换机端:
show authentication sessions show authentication sessions interface gi1/0/1 details show dot1x all detail debug dot1x all debug radius authentication无线控制器端:
show wireless client summary show wireless client mac-address <MAC> detail客户端(Linux wpa_supplicant):
# 前台调试wpa_supplicant-iwlan0-c/etc/wpa_supplicant.conf-ddt# 查看认证状态wpa_cli status10.3 抓包分析
推荐抓包过滤条件(Wireshark / tcpdump):
# 有线 EAPoL ether proto 0x888e # RADIUS udp port 1812 or udp port 1813 # 无线 EAPoL(在 AP 的 uplink 口或 WLC 侧抓包) ether proto 0x888e and host <RADIUS-IP>关键观察点:
- EAP-Request Identity 是否正常发出?
- 客户端 EAP-Response Identity 是否正确?
- RADIUS Access-Challenge 是否携带了预期的 EAP 方法类型?
- TLS 握手是否完成?Server Hello 中的证书是否完整?
- 如果看到
TLS Alert,检查版本和密码套件兼容性。 - MSCHAPv2 Challenge/Response 交换是否正常?
- 最终收到 Access-Accept 还是 Access-Reject?
11. 参考标准与资料
标准文档(IEEE & IETF RFC)
| 标准 | 标题 | 链接 |
|---|---|---|
| IEEE 802.1X-2020 | Port-Based Network Access Control | IEEE |
| RFC 2865 | RADIUS (Authentication & Authorization) | RFC 2865 |
| RFC 2866 | RADIUS Accounting | RFC 2866 |
| RFC 2868 | RADIUS Attributes for Tunnel Protocol Support | RFC 2868 |
| RFC 3579 | RADIUS Support for EAP | RFC 3579 |
| RFC 3580 | IEEE 802.1X RADIUS Usage Guidelines | RFC 3580 |
| RFC 3748 | Extensible Authentication Protocol (EAP) | RFC 3748 |
| RFC 5080 | Common RADIUS Implementation Issues | RFC 5080 |
| RFC 5176 | Dynamic Authorization Extensions to RADIUS | RFC 5176 |
| RFC 5216 | EAP-TLS | RFC 5216 |
| RFC 5281 | EAP-TTLS | RFC 5281 |
| RFC 6614 | Transport Layer Security for RADIUS | RFC 6614 |
推荐阅读/开源项目
- FreeRADIUS 官方文档
- wpa_supplicant 官方文档
- Wireshark EAPoL 分析指南
- IETF EAP Method Registry
- NIST SP 800-97: Guide to IEEE 802.11i Security
本文档基于 IEEE 802.1X-2020 及 IETF 相关标准撰写。建议读者根据具体网络环境(厂商设备型号、软件版本)查阅对应设备文档。
