如何配置Freeradius3对接OpenLDAP实现WiFi客户端身份认证?
FreeRADIUS + OpenLDAP WiFi认证Windows客户端失败排查方案
优先排查EAP配置问题
radtest走的是PAP认证,而Windows WiFi默认采用EAP认证,这是radtest正常但WiFi接入失败最常见的原因:
- 检查
/etc/raddb/mods-available/eap配置- 确认默认EAP类型优先配置为
peap,内层认证启用mschapv2,Windows原生WiFi默认仅支持PEAP+MSCHAPv2或TLS认证,不支持直接PAP over EAP - 生成合规EAP证书:Freeradius默认自带的测试证书多数Windows系统会直接拦截,执行
cd /etc/raddb/certs && ./bootstrap生成新的证书,确保证书的common name和你的RADIUS服务器域名/IP一致
- 确认默认EAP类型优先配置为
- 检查LDAP模块的MSCHAP支持
- 确认
/etc/raddb/mods-available/ldap配置中开启了mschap { }配置块,且设置allow_cleartext = yes,MSCHAPv2认证需要从LDAP获取用户明文密码;如果你的LDAP存储的是NTLM hash,对应配置ntlm_auth = "/usr/bin/ntlm_auth --request-nt-key --domain=你的域 --username=%{mschap:User-Name}"
- 确认
Windows客户端配置修正
- 打开WiFi属性的安全选项卡,选择网络认证方法为
Microsoft: 受保护的EAP (PEAP),点击设置- 测试阶段可先取消勾选
验证服务器证书,生产环境建议配置信任根证书 - 内部认证方法选择
Secured password (EAP-MSCHAP v2),点击配置,取消勾选自动使用Windows登录名和密码(如果你的LDAP账号和Windows本地账号不一致)
- 测试阶段可先取消勾选
- 工作组环境的Windows需要修改组策略允许PEAP使用非域账号:运行
gpedit.msc,依次进入计算机配置 > 管理模板 > Windows组件 > 无线网络设置 > IEEE 802.11 策略,新建策略设置首选EAP类型为PEAP,允许使用用户凭证认证
日志排查步骤
- 停止后台radiusd服务:
systemctl stop radiusd - 前台启动调试模式:
radiusd -X - 用Windows客户端发起连接,根据控制台输出定位问题:
- 提示
No EAP Start, rejecting:检查WiFi AP是否配置了正确的RADIUS服务器地址、共享密钥,确认AP已开启WPA2-Enterprise模式 - 提示
LDAP attribute not found:检查LDAP用户属性是否包含MSCHAP需要的密码字段,确认LDAP绑定账号有读取用户密码属性的权限 - 提示
MSCHAP authentication failed:确认用户密码输入正确,或LDAP存储的密码格式兼容MSCHAPv2
- 提示
配置验证
调试通过后重启radiusd后台服务:systemctl start radiusd,重新用Windows客户端发起连接,输入LDAP的用户名和密码即可完成认证
内容的提问来源于stack exchange,提问作者Bruno KR
相关产品推荐
相关产品推荐

