1

我想以仅当 NAS-IP-Address 属性不为空且等于某个特定 IP(当然是用户名和密码匹配)时身份验证成功的方式配置 freeradius 服务器。

我该怎么做?我试图阅读文档但没有成功: http : //freeradius.org/rfc/attributes.html http://freeradius.org/rfc/rfc2865.html#NAS-IP-Address

4

1 回答 1

5

当然,有很多方法可以做到这一点。

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
于 2014-02-22T01:02:03.920 回答