Access-Reject 是什么
RADIUS 服务器对 Access-Request 有三种回应:Access-Accept 放行、Access-Reject 明确拒绝、以及不回包(由 NAS 重传后判为超时失败)。Reject 说明服务器确实收到并处理了请求,问题多半在账号、凭据或返回策略上;超时则更指向共享密钥不匹配、端口不通或服务不可达。两者方向完全不同,排查前先把它们分开。
三类回应对照
| Access-Accept | 认证通过,进入授权与计费流程 |
|---|---|
| Access-Reject | 明确拒绝,属账号、凭据或策略问题 |
| 无响应超时 | NAS 重传后失败,多为共享密钥、网络或服务进程问题 |
| 默认端口 | 认证 1812/udp,计费 1813/udp;老设备可能沿用 1645/1646 |
拒绝原因与日志线索
| 服务器日志线索 | 含义 | 排查方向 |
|---|---|---|
| unknown user / user not found | 账号不存在或域后缀不对 | 核对 域\用户 与 用户@域 两种写法是否与服务器期望一致 |
| bad password / wrong password | 凭据错误 | 重输密码、清理缓存凭据、检查证书 |
| certificate / TLS alert | 证书校验失败 | 证书链、有效期、SAN,以及客户端是否信任自签 CA |
| Filter-ID / group policy | 返回属性不合法或被策略拒绝 | 检查策略配置与返回属性拼写 |
| simultaneous-use | 并发登录数超限 | 调整账号并发策略,清理残留会话 |
| Login incorrect(EAP 内层) | 隧道内层凭据错误 | 核对 AD 密码与账号是否锁定或过期 |
| no response | 不是拒绝而是超时 | 核对共享密钥与 1812/udp 可达性 |
服务器侧速查
服务器侧速查
# 按用户名聚合失败次数:一个人失败是账号问题,一个组失败是策略问题
grep -i "Login incorrect" /var/log/freeradius/radius.log | awk '{print $NF}' | sort | uniq -c | sort -rn
# 只看最近的拒绝记录
grep -i "reject" /var/log/freeradius/radius.log | tail -n 50
# 前台调试模式:完整打印一次认证的属性交换,最快定位手段
freeradius -X
# 注:日志路径随发行版与安装方式变化,以实际服务器为准分类排查顺序
- 单个用户失败:密码、账号是否锁定或过期、域后缀写法
- 同一部门或用户组集体失败:策略配置与返回属性,如 Filter-Id、VLAN 属性
- 全楼同时失败:RADIUS 服务状态、证书是否过期、AD 或 LDAP 查询超时
- 只有某型号终端失败:EAP 方法协商,如是否被限制到 TLS 1.2、是否要求校验服务器证书
- 白天失败夜里正常:并发数上限、目录服务高峰响应慢、备机配置不一致
客户端提示普遍笼统,Windows 的「无法连接到此网络」、手机上的「密码错误」都不能当结论用。以服务器日志与 AP、控制器的 AAA 记录为准,排查时把服务器与控制器的时间对齐,否则日志对不上现象。
测试时不要把服务器临时改成「总是接受」再留在生产环境:拒绝是策略生效的证据,一旦放行,失效账号与过期证书都能接入,问题会被拖到更晚才暴露。