我在 Ubuntu v14.04 上使用 freeradius v2.1.12。这是 /etc/freeradius/users:
test SMD5-Password := "{SMD5}xbYqJDY4gqVyE8Vhty//QnRlc3RpbmcxMjM="
我使用 perl 脚本获取此值http://www.openldap.org/faq/data/cache/418.html,我通过将“secret”替换为“test”并将“salt”替换为“testing123”来更改该脚本,因为“test”是我的密码,“testing123”是共享密钥。
这是 /etc/freeradius/clients.conf:
client test {
ipaddr = 127.0.0.1
secret = testing123
}
我还更改了 /etc/freeradius/modules/pap,将“auto_header”设置为“yes”:
pap {
auto_header = yes
}
我在同一台机器上使用 radtest:
radtest -x -t pap test test localhost 0 testing123
Radius 服务器密码匹配失败:
#> freeradius -X
......
[pap] login attempt with password "test"
[pap] Using SMD5 encryption.
[pap] Passwords don't match
++[pap] returns reject
您看出什么问题了吗?
谢谢!
[更新] 谢谢温普斯-Q-温布利,就是这样。删除“[SMD5]”即可。
答案1
您已配置 rlm_pap 来搜索标头,但将哈希放置在未检查标头的属性中。
您应该将 SMD5 密码放在Password-With-Header
属性中,然后 rlm_pap 将剥离标题并将密码放在正确的属性中。
test Password-With-Header := "{SMD5}xbYqJDY4gqVyE8Vhty//QnRlc3RpbmcxMjM="
或者,您可以按照之前的操作删除前缀{SMD5}
。