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

my_*_*ion 5 radius freeradius2 freeradius

我正在学习如何使用freeradius,版本是v2.1.12。当我运行 radtest 时,服务器没有响应,我看到服务器端调试消息如下:

Received packet from 127.0.0.1 with invalid Message-Authenticator!  (Shared secret is incorrect.) Dropping packet without response.
Run Code Online (Sandbox Code Playgroud)

这是 radtest 命令:radtest -x selftest password 127.0.0.1 0 secret

这是我对 /etc/freeradius/clients.conf 的编辑:

client selftest {
     ipaddr = 127.0.0.1
     secret = secret
}
Run Code Online (Sandbox Code Playgroud)

这是我对 /etc/freeradius/users 的编辑:

selftest Cleartext-Password := "password"
Run Code Online (Sandbox Code Playgroud)

以下是 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
Run Code Online (Sandbox Code Playgroud)

你看出什么问题了吗?

[更新]谢谢arran-cudbard-bell,我改为“testing123”,它更好,它被拒绝了,但这更好。

事实上,我对 /etc/hosts 做了一些更改,这可能是原因,如下所示:

127.0.0.1 localhost     <== pre-existed
127.0.0.1 selftest      <== my edit
Run Code Online (Sandbox Code Playgroud)

我添加该行的原因是,如果没有它,我什至无法运行 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.
Run Code Online (Sandbox Code Playgroud)

你知道怎么解决吗?

Arr*_*ell 2

它可能没有加载正确的clients.conf,或者您对127.0.0.1有另一个定义。

尝试使用testing123本地主机客户端定义的默认值。如果有效,您就知道问题出在预先存在的定义上。