2014-02-21 2 views
1

NAS-IP-Address 속성이 비어 있지 않고 특정 IP (물론 사용자 이름과 암호 일치)와 같을 경우에만 인증이 성공하는 방식으로 freeradius 서버를 구성하려고합니다.NAS-IP-Address 속성이 필요하도록 freeradius 서버를 구성하는 방법은 무엇입니까?

어떻게해야합니까? 나는 성공없이 문서를 읽을 시도 : http://freeradius.org/rfc/attributes.html http://freeradius.org/rfc/rfc2865.html#NAS-IP-Address

답변

4

물론,이 일을 여러 가지 방법이 있습니다. <>가 집합 연산자 (<의 서브 세트()의> 상위)을 의미하도록 재 할당되는 경우 v3.0.x 서브넷 매칭

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 
    } 
} 

는 또한 지원된다.

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 
+0

빠른 답변을 주셔서 감사합니다! – Michael

+0

문제 없음 :) 대부분의 모듈에는 임의의 쿼리를 허용하는 xlat 메서드가 있습니다. 위의''% {sql :}''예제는''% {ldap :}''과''% {redis :}''로 확장 할 수 있습니다. –

관련 문제