用企业已有Windows AD实现802.1X认证是提升内网安全最务实路径,需FreeRADIUS通过LDAPS或Global Catalog连接AD实时校验凭证,交换机/AP仅中继EAP请求,客户端适配密码生命周期,并通过radtest和日志闭环验证控制实效。
直接用企业已有的windows ad做802.1x认证,是提升内网接入安全最务实的路径。它不依赖额外账号体系,也不需要重置密码策略,关键在于让freeradius真正“读懂”ad,并让网络设备(交换机/ap)准确中转认证请求。
AD与RADIUS之间必须建立可信通道
FreeRADIUS本身不存用户密码,它靠ntlm_auth或ldap模块向AD发起实时校验。这要求:
- FreeRADIUS服务器必须能通过LDAPS(端口636)或Global Catalog(端口3269)连接AD域控制器,普通LDAP(389)不推荐——明文传输密码哈希有风险
- 用于查询AD的账号(如CN=radius-svc,CN=Users,DC=corp,DC=local)需具备读取用户对象、验证凭据权限,但不能是Domain Admin
- 在/etc/raddb/mods-enabled/ldap中明确指定base_dn(如dc=corp,dc=local)、identity(服务账号DN)和password(服务账号密码)
- 务必启用start_tls = yes或直接使用ldaps://协议,避免证书报错可临时加tls_require_cert = never(上线前换成demand)
交换机或AP要正确扮演“中继角色”
它们不是认证决策者,而是把客户端EAP消息打包成RADIUS属性转发出去。常见配置要点:
- 在接入设备上配置RADIUS服务器地址和共享密钥,该密钥必须与FreeRADIUS中/etc/raddb/clients.conf里定义的一致
- 启用802.1X时,必须指定认证域(authentication domain),例如dot1x,并绑定到物理接口或WLAN VAP
- 华为设备需确认eap-method设为peap或tls,Windows客户端默认走PEAP-MSCHAPv2;若用证书认证,则选eap-tls
- 开启reauthentication(如每3600秒),防止长期在线会话被劫持;同时配置quiet-period(如60秒)避免频繁失败锁账号
客户端侧要适配AD密码生命周期
Windows终端通常无感,但信创系统或老旧客户端容易因密码过期导致反复失败锁定账号:
- 确保FreeRADIUS返回的RADIUS属性包含Password-Expiration和Password-Retry,让客户端能触发密码更新弹窗
- AD组策略中启用“在下次登录时更改密码”后,客户端必须支持MS-CHAPv2的Change Password扩展字段,否则会持续用旧密码重试
- 对统信UOS、麒麟等信创终端,建议改用EAP-TLS证书认证,绕过密码管理兼容性问题;证书由AD CS签发,通过GPO自动部署到域内Windows,信创端则用第三方客户端(如宁盾)统一管理
验证与日志必须闭环
配置完成后不能只看“连得上”,要确认安全控制真正生效:
- 在FreeRADIUS服务器执行radtest user@domain pass ip radius_secret 0 testing123,观察/var/log/radius/radius.log是否出现Access-Accept及下发的VLAN/ACL信息
- 在交换机用display dot1x statistics检查失败原因:是no response from radius server(网络不通),还是invalid password(AD查不到),或是user locked out(账号被锁)
- 禁用一个测试账号,在AD中确认其msDS-User-Account-Control-Computed含ACCOUNTDISABLE位,再尝试连接——应立刻收到Access-Reject,且交换机端口保持unauthorized状态

















