我有 freeradius 服务器,它使用 MySQL 来存储数据。
以下是我的数据库
radcheck table
+-----+----------+--------------------+----+--------------+
| id | username | attribute | op | value |
+-----+----------+--------------------+----+--------------+
| 474 | varun | Cleartext-Password | := | sunshine3003 |
+-----+----------+--------------------+----+--------------+
radreply table
+----+----------+--------------+----+-------+
| id | username | attribute | op | value |
+----+----------+--------------+----+-------+
| 1 | varun | Fall-Through | = | Yes |
+----+----------+--------------+----+-------+
radgroupcheck table
+----+-----------+-----------+----+-------+
| id | groupname | attribute | op | value |
+----+-----------+-----------+----+-------+
| 1 | group1 | Auth-Type | := | PAP |
| 2 | eapgroup | Auth-Type | := | EAP |
+----+-----------+-----------+----+-------+
radusergroup table
+----------+-----------+----------+
| username | groupname | priority |
+----------+-----------+----------+
| varun | eapgroup | 1 |
| varun | group1 | 2 |
+----------+-----------+----------+
我们有两个不同的客户端,它们使用两种不同的具有自由半径的身份验证类型,一个使用 PAP
并在 User-Password
属性中发送密码。
和另一个客户端用户EAP
并在EAP-Message
和Message-Authenticator
中发送密码
我想要的是,当 PAP 无法验证或当 User-Password
属性不存在时,它应该使用 EAP
作为 Auth-Type
> 如果 Radius 属性中不存在 EAP
和 Message-Authenticator
,则应回复访问拒绝或身份验证失败消息。
任何帮助将不胜感激
最佳答案
您不应该设置control:Auth-Type
手动。此属性的存在使得 authorize
中的模块部分可以与服务器的其余部分通信应在 authenticate
中运行的身份验证类型。部分。
依次设置Auth-Type
根据属性,您应该在授权部分依次列出 pap、eap 等模块,它们将检查请求中是否包含必需的属性并确定正确的 Auth-Type 值。
如果您想制定策略来限制某些用户使用某些类型的身份验证,请在回复列表(radgroupreply 表)中设置 Auth-Type,并检查在授权部分的末尾设置了哪个 Auth-Type。
authorize {
eap
pap
sql
if (control:Auth-Type != reply:Auth-Type) {
reject
}
}
关于mysql - 将两个身份验证类型 PAP 和 EAP 与 FreeRadius 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45606910/