如何配置freeradius服务器以要求NAS-IP-Address属性?

时间:2014-02-21 20:49:15

标签: freeradius radius-protocol

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

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

1 个答案:

答案 0 :(得分:4)

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

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)(>超集)。

if (!(<ipv4prefix>NAS-IP-Address < 192.168.0.0/16)) {
    reject
}

NAS-IP-Address = 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-Address = 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