我想以仅当 NAS-IP-Address 属性不为空且等于某个特定 IP(当然是用户名和密码匹配)时身份验证成功的方式配置 freeradius 服务器。
我该怎么做?我试图阅读文档但没有成功: http : //freeradius.org/rfc/attributes.html http://freeradius.org/rfc/rfc2865.html#NAS-IP-Address
我想以仅当 NAS-IP-Address 属性不为空且等于某个特定 IP(当然是用户名和密码匹配)时身份验证成功的方式配置 freeradius 服务器。
我该怎么做?我试图阅读文档但没有成功: http : //freeradius.org/rfc/attributes.html http://freeradius.org/rfc/rfc2865.html#NAS-IP-Address
当然,有很多方法可以做到这一点。
authorize {
if (!NAS-IP-Address) {
reject
}
if (NAS-IP-Address != 192.168.0.2) {
reject
}
if ("%{sql:SELECT count(*) FROM table WHERE User-Name = '%{User-Name}' AND IP-Address = '%{NAS-IP-Address}'" == 0) {
reject
}
}
在 v3.0.x 中还支持子网匹配,其中 < > 被重新分配为表示集合运算符 (<subset of) (> superset of)。
if (!(<ipv4prefix>NAS-IP-Address < 192.168.0.0/16)) {
reject
}
NAS-IP 地址 = 192.168.0.2
(0) ? if (<ipv4prefix>NAS-IP-Address < 192.168.0.0/16)
(0) ? if (<ipv4prefix>NAS-IP-Address < 192.168.0.0/16) -> TRUE
NAS-IP 地址 = 192.169.0.2
(0) ? if (<ipv4prefix>NAS-IP-Address < 192.168.0.0/16)
(0) ? if (<ipv4prefix>NAS-IP-Address < 192.168.0.0/16) -> FALSE