由于未知原因,Freeradius 身份验证失败

由于未知原因,Freeradius 身份验证失败

我跟着此指令强制 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

相关内容