我正在使用Freeradius通过外部脚本验证用户,如here所示,在传递用户名和密码对时返回Accept或Reject。
authorize{
update control {
Auth-Type := `/usr/bin/php -f /etc/raddb/yourscript.php '%{User-Name}' '%{User-Password}' '%{Client-IP-Address}'`
}
当客户端使用PAP时,这可以正常工作。密码以%{User-Password}
发送。
但是,当使用CHAP或MS-CHAP时,它不起作用,因为%{User-Password}
仍为空。
如何获取要发送到我脚本的明文密码?或者,有没有其他方法来支持CHAP / MS-CHAP?
答案 0 :(得分:1)
%{CHAP-Password}
字段包含密码和质询的哈希值,这是一个神奇的数字。
%{CHAP-Challenge}
字段包含该会话中使用的质询。
虽然您无法以直接的实时方式从中获取纯文本密码,但如果您有明文密码,则可以使用md5使用CHAP-Challenge对其进行散列,如here所示。这应该等于您的CHAP密码值。