为什么 freeradius 服务器说从 radtest 生成的消息验证器无效?

为什么 freeradius 服务器说从 radtest 生成的消息验证器无效?

我正在学习如何使用 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 有另一个定义。

尝试使用testing123localhost 客户端定义的默认设置。如果有效,则说明问题出在预先存在的定义上。

答案2

我写了一篇文章,解释共享秘密的工作原理及其含义。

“共享密钥不正确”和“警告:密码中不可打印的字符”的根本原因是相同的,并且明确无误:RADIUS 服务器和 NAS 上的共享密钥不一样。

但是,可能会存在一些混淆,因为根据 RADIUS 在数据包头中接收的信息,您将看到错误消息或警告。

在某些情况下,系统管理员可能会认为 RADIUS 服务器和 NAS 上的共享密钥相同,但事实上并非如此。

您必须检查服务器是否正在加载正确的 clients.conf。阅读调试输出以查看它正在加载哪个文件。它将打印出客户端和共享密钥。检查调试输出!

https://networkradius.com/articles/2021/07/26/what-does-shared-secret-error-mean.html

相关内容