Freeradius没有找到身份验证方法

时间:2015-05-25 00:10:44

标签: asterisk freeradius

我在同一台计算机上安装了带有Freeradius服务器的Asterisk服务器,并尝试使用Radius进行身份验证,如果用户可以拨打电话,但我在调用时遇到错误:

ERROR: No authenticate method (Auth-Type) found for the request: Rejecting the user
Failed to authenticate the user.

我必须添加一个Radius文件中缺少的东西吗?

2 个答案:

答案 0 :(得分:1)

问题是虚拟服务器的授权部分中没有模块负责处理请求。

您应该删除授权部分的内容,并列出以下模块:

authorize {
    pap
    chap
    mschap
    digest
    eap
}

然后,您应该以调试模式radiusd -X运行服务器,以查看哪个模块对请求负责(您将看到其中一个返回okupdated其他模块返回noop)。我们称之为auth module

一旦您确定哪个模块将对该请求负责,您就需要提供适当的哈希密码。

以下是可与不同模块配合使用的密码哈希值。

  • pap - 任何
  • chap - Cleartext-PasswordCHAP-Password
  • mschap - Cleartext-PasswordNT-Password
  • 摘要 - Cleartext-PasswordDigest-HA1
  • eap - 取决于内部方法(回答这个答案,我可以提供进一步的指导)。

对于测试,您可以将密码放在服务器本地的平面文件中。处理这些平面文件的模块是files模块。

要向用户文件添加条目,请先截断/etc/raddb/users(对您的安装进行更改)。

然后将以下条目添加到顶部:

<username>  <password attr> := <password>

<>中的值替换为实际值。

删除授权中未使用的模块,并在顶部添加files模块。

authorize {
    files
    <auth module>
}

然后从身份验证中删除所有模块并添加<auth module>

authenticate {
    <auth module>
}

这应该会让你起步并运行。如果没有模块对请求负责,请从调试输出顶部发布请求中的属性列表,我将帮助您识别它。

答案 1 :(得分:0)

您需要配置半径以添加缺少的标题

您可以在radius服务器上启用完全调试,它将显示服务器获取的所有数据包。

Freeradius允许在任何舞台上将任何标题添加到数据包中,请参阅doc。