Freeradius:在特定条件下对用户进行身份验证

Freeradius: Authenticate users on certain condition

有一个网络,用户正在使用 PPPoE 建立到访问服务器的连接。我们丢失了计费系统和用户的数据库。我们知道的唯一条件是 'Valid credential should be credential where username and password are the same value. (i.e. username: johnsmith, password: johnsmith)'.

我们希望尽快恢复对 Internet 的访问。

我们现在的设置:Ubuntu 2004,accel-ppp,freeradius3。一切正常,但我们必须为每个用户添加一条记录到 raddb/mods-config/files/authorize 文件。

user1 Cleartext-Password := "user1"
user2 Cleartext-Password := "user2"
userN Cleartext-Password := "userN"

更新:是否可以避免手动添加用户?假定用户名和有效密码的值相同,脚本应验证凭据。

这在 FreeRADIUS 的配置语言 unlang 中很容易做到。

必须在 Cleartext-Password 属性中提供要在 FreeRADIUS 中匹配的“已知”明文密码。这是在成功查找数据库后通常放置的位置。

如您所知 User-Name,您可以更新密码以匹配它。在 sites-enabled/default 中您可以添加:

update control {
    &Cleartext-Password = &request:User-Name
}

authorize{} 部分的底部添加这个,并在上面使用 =(而不是 :=)意味着 Cleartext-Password 属性只会被更改如果之前未通过其他方法设置,请确保当您将条目添加回数据库时,它们将优先。

然后身份验证会将 User-NameCleartext-Password 进行比较;它们当然会匹配,因此将允许访问。