我跟着此指令强制 freeradius 使用 mysql 数据库。
并在调试模式下运行 freeradius。但它拒绝所有身份验证。
mysql 数据库:
mysql>从 radcheck 中选择*; +----+----------+-----------+----+---------+ | ID | 用户名 | 属性 | 操作 | 值 | +----+----------+-----------+----+---------+ | 1 | 测试 | 密码 | == | test123 | | 2 | 测试 | Auth-Type | == | 本地| +----+----------+-----------+----+---------+ 2 行一组(0.02 秒)
radtest 命令:
# radtest 测试 test123 localhost 0 testing123 正在向 127.0.0.1 端口 1812 发送 ID 为 235 的访问请求 用户名 =“测试” 用户密码 = “test123” NAS-IP 地址 = 127.0.0.1 NAS 端口 = 0 消息验证器 = 0x0000000000000000000000000000000000000 rad_recv:来自主机 127.0.0.1 端口 1812 的访问拒绝数据包,id=235,长度=20
radiusd 调试模式日志:
rad_recv:来自主机 127.0.0.1 端口 51034 的访问请求数据包,id=235,长度=74 用户名 =“测试” 用户密码 = “test123” NAS-IP 地址 = 127.0.0.1 NAS 端口 = 0 消息验证器 = 0xbf111cbbae24fb0f0a558bfa26f53476 # 从文件 /usr/local/etc/raddb/sites-enabled/default 执行授权部分 +- 进入群组授权 {...} ++[预处理] 返回 ok ++[chap] 返回 noop ++[mschap] 返回 noop ++[digest] 返回 noop [后缀] 用户名 =“test”中没有“@”,查找领域为 NULL [后缀] 没有这样的领域“NULL” ++[后缀] 返回 noop [eap] 无 EAP 消息,不执行 EAP ++[eap] 返回 noop ++[files] 返回 noop ++[expiration] 返回 noop ++[logintime] 返回 noop [pap] 警告!未找到该用户的“已知有效”密码。因此,身份验证可能会失败。 ++[pap] 返回 noop 错误:未找到该请求的身份验证方法(Auth-Type):拒绝用户 无法验证用户身份。 使用 Post-Auth-Type Reject # 从文件 /usr/local/etc/raddb/sites-enabled/default 执行组 +- 进入群组 REJECT {...} [attr_filter.access_reject] 展开:%{User-Name} -> 测试 attr_filter:第 11 行匹配的条目 DEFAULT ++[attr_filter.access_reject] 返回更新 延迟 1 秒拒绝第 20 个请求 转到下一个请求 0.9秒醒来。 发送延迟拒绝请求 20 向 127.0.0.1 端口 51034 发送 ID 为 235 的访问拒绝 4.9秒醒来。 清理请求 20 ID 235,时间戳为 +4325 准备好处理请求。
问题出在哪里?我该如何解决?
答案1
我总是看到Cleartext-Password
属性设置不是Password
,并使用:=
运算符不是==
。此外,我认为设置Auth-Type
几乎总是错误的,所以我建议您删除它。在数据库表中尝试以下内容:
username="test", attribute="Cleartext-Password", op=":=", value="test123"
答案2
这可能是一个愚蠢的问题,但你有没有取消注释该行
$INCLUDE sql.conf
?