FreeRadius +LDAP 结合验证

最近在�W路上找了很多�P於 FreeRadius 的文章,部份有提到如何跟 LDAP 系�y做�Y合�J�C的�Y�;小弟整理一下,�K加上自己��作的部份。  

------ LDAP 的部份 ---------  
首先,��然是要一��完整、可以提供服�盏�LDAP系�y,怎�N建置��⒖夹〉艿墓P�,在此就不多提了。  

以小弟的�h境�槔�,我的使用者 ldif �L得像下面�@�樱捍��a:  
# extended LDIF  
#  
# LDAPv3  
# base <o=Study-area.org> with scope sub  
# filter: uid=radiususer  
# requesting: ALL  
#  

# radiususer, People, Study-area.org  
dn: uid=radiususer,ou=People,o=Study-area.org  
uid: radiususer  
cn: radiususer  
objectClass: account  
objectClass: posixAccount  
objectClass: top  
userPassword:: e2NyeXB0fU1EdTdVYlVZalVGQ0k=  
uidNumber: 10070  
gidNumber: 10002  
homeDirectory: /home/radiususer  
loginShell: /bin/bash  

在�@�要特�e注意的是,我之前�e面有多定�x一�� objectClass ,反而造成系�y�o法�J�C,� objectClass 如下:代�a:  
objectClass: shadowAccount  
有�@��就��引�l下面�@���e�`,可以在/var/log/radius/radius.log :代�a:  
Fri Sep  1 09:03:16 2006 : Auth: rlm_unix: [radiususer]: invalid password  



--------- radius server 部份 ----------  

基本上,如果你在 CentOS 4.3 �e面,只要用以下命令安�b即可:代�a:  
yum install freeradius  
,我之前有在 Fedora Core 4 上面安�b,�Y果�l�F少了一��重要的lib,rlm_ldap.so,所以最好在你安�b FreeRadius 之後�z查一下:代�a:  
find / -name rlm_ldap.so  


在�_�J以上�有的�h境�c函式�於季�渲�後,我��接著修改下面的���部份:  

在 radiusd.conf 部份引言回覆:  
代�a:  
       ldap {  
               server = "127.0.0.1"  
               identity = "cn=admin,o=My Org,c=UA"  
               password = mypass  
               basedn = "o=People,o=Study-area.org"  
               filter = "(uid=%{Stripped-User-Name:-%{User-Name}})"  
               access_attr = "people"  
               dictionary_mapping = ${raddbdir}/ldap.attrmap  
               ldap_connections_number = 5  
               password_attribute = userPassword  
}  
上面各���O定���很清楚,小弟就不多�f明了。  

在 authorize �^�K�e面,�得�_�� LDAP �J�C:代�a:  
authorize {  
ldap  
}  

代�a:  
authenticate {  
       Auth-Type LDAP {  
               ldap  
       }  
}  
注意,以上�@����^�K�e面,LDAP功能�A�O都是�P�]的,必�自己�_��!  





clients.conf引言回覆:  
再�恚�在 clients.conf �e面的�O定,找��地方新增�J�C子�C的�O定(以下�热荩��樵�始的�O定�例,此地�H用�碚f明�c�v解):代�a:  
client 192.168.0.0/16 {  
      secret          = testing123-2  
      shortname       = private-network-2  
}  
�@���^�K�e面,我��定�x了,在 192.168.x.x �@整���W段�e面,子�C��C用的密�a��testing123-2,�有用�硇稳莸姆Q呼��private-network-2。其中,密�a很重要,因�榈鹊��用到。  




proxy.conf引用:此外,�需要�O定 proxy.conf ,用����「�W域」�ぬ�的部份:代�a:  
realm NULL {  
      type        = radius  
      authhost    = LOCAL  
      accthost    = LOCAL  
      nostrip  
}  

realm study-area.org {  
       type    = radius  
       authhost = LOCAL  
       accthost = LOCAL  
}  

在 �@�e,我�O定了���部份。一��是�ぬ�名�Q不�А妇W域」的,也就是例如 radiususer �@�拥�ぬ�;另外一��,study-area.org 的部 份,就是�使用者所�入的�ぬ�,看起�硐襁@�幼� [email protected]。  





等�@些�O定完成之後,我����� FreeRadius 服�眨�然後用下面的指令��z查一下是否可以透�^ ldap �硗瓿�ぬ���C功能:代�a:  
radtest username  userPassword Radius-Server_IP 0  secret-password  
要特�e注意的是,在Radius-Server_IP 後面那�� 0,是�底郑辉谄溽岬� secret-password 是我��在 clients.conf �e面�O定的,子�C��C用的密�a。我先前在�W路上找到的文章,很多在�@部份都有�e�`的�例。  



如果一切�利,就���出�@�拥漠�面:代�a:  
# radtest radiususer radius-password localhost 0 testing123-2  
Sending Access-Request of id 53 to 127.0.0.1:1812  
       User-Name = "radiususer"  
       User-Password = "radius-password"  
       NAS-IP-Address = machine-name  
       NAS-Port = 0  
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=53, length=20  



如果是子�C��C用的密�a�e�`,�t���出以下的�Y�:代�a:  
radtest radiususer radius-password localhost 0 testing123-2  
Sending Access-Request of id 6 to 127.0.0.1:1812  
       User-Name = "radiususer"  
       User-Password = "radius-password"  
       NAS-IP-Address = machine-name  
       NAS-Port = 0  
Re-sending Access-Request of id 6 to 127.0.0.1:1812  
       User-Name = "radiususer"  
       User-Password = "\200px\027\347\315pz\222Y\314U0\264\343\033"  
       NAS-IP-Address = machine-name  
       NAS-Port = 0  
rad_recv: Access-Reject packet from host 127.0.0.1:1812, id=6, length=20  
rad_decode: Received Access-Reject packet from 127.0.0.1:1812 with invalid signature (err=2)!  (Shared secret is incorrect.)

基本上,�@�幼泳涂梢�绦泻�易的�ぬ���C功能。

你可能感兴趣的:(filter,文章,如何,account,requesting)