我正在学习如何使用 freeradius,版本是 v2.1.12。当我运行 radtest 时,服务器没有响应,我看到服务器端调试消息有以下内容:
Received packet from 127.0.0.1 with invalid Message-Authenticator! (Shared secret is incorrect.) Dropping packet without response.
这是 radtest 命令:radtest -x selftest password 127.0.0.1 0 secret
这是我对 /etc/freeradius/clients.conf 的编辑:
client selftest {
ipaddr = 127.0.0.1
secret = secret
}
这是我对 /etc/freeradius/users 的编辑:
selftest Cleartext-Password := "password"
以下是 radtest 的完整输出:
radtest -x selftest password 127.0.0.1 0 secret
Sending Access-Request of id 238 to 127.0.0.1 port 1812
User-Name = "selftest"
User-Password = "password"
NAS-IP-Address = 127.0.0.1
NAS-Port = 0
Message-Authenticator = 0x00000000000000000000000000000000
您看出什么问题了吗?
[更新] 谢谢 arran-cudbard-bell,我改成“testing123”,这样更好,它被拒绝了,但这样更好。
确实,我在 /etc/hosts 中做了一些更改,这可能是原因,它是这样的:
127.0.0.1 localhost <== pre-existed
127.0.0.1 selftest <== my edit
我添加该行的原因是,如果没有它,我甚至无法运行 radtest,我会收到此错误:
# radtest -x -t pap localhost password 127.0.0.1 0 testing123
radclient:: Failed to find IP address for test-server
radclient: Nothing to send.
你知道怎样解决它吗?
答案1
它可能没有加载正确的 clients.conf 或者您对 127.0.0.1 有另一个定义。
尝试使用testing123
localhost 客户端定义的默认设置。如果有效,则说明问题出在预先存在的定义上。
答案2
我写了一篇文章,解释共享秘密的工作原理及其含义。
“共享密钥不正确”和“警告:密码中不可打印的字符”的根本原因是相同的,并且明确无误:RADIUS 服务器和 NAS 上的共享密钥不一样。
但是,可能会存在一些混淆,因为根据 RADIUS 在数据包头中接收的信息,您将看到错误消息或警告。
在某些情况下,系统管理员可能会认为 RADIUS 服务器和 NAS 上的共享密钥相同,但事实上并非如此。
您必须检查服务器是否正在加载正确的 clients.conf。阅读调试输出以查看它正在加载哪个文件。它将打印出客户端和共享密钥。检查调试输出!
https://networkradius.com/articles/2021/07/26/what-does-shared-secret-error-mean.html