溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用FreeRadius +LDAP實(shí)現(xiàn)驗(yàn)證功能

發(fā)布時(shí)間:2021-12-22 15:24:42 來(lái)源:億速云 閱讀:681 作者:小新 欄目:編程語(yǔ)言

這篇文章將為大家詳細(xì)講解有關(guān)如何使用FreeRadius +LDAP實(shí)現(xiàn)驗(yàn)證功能,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

------ LDAP 的部份 ---------  
首先,當(dāng)然是要一個(gè)完整、可以提供服務(wù)的LDAP系統(tǒng),怎麼建置請(qǐng)參考小弟的筆記,在此就不多提了。  

以小弟的環(huán)境為例,我的使用者 ldif 長(zhǎng)得像下面這樣:代碼:  
# extended LDIF  
#  
# LDAPv3  
# base

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  

在這邊要特別注意的是,我之前裡面有多定義一個(gè) objectClass ,反而造成系統(tǒng)無(wú)法認(rèn)證,該 objectClass 如下:代碼:  
objectClass: shadowAccount  
有這個(gè)就會(huì)引發(fā)下面這個(gè)錯(cuò)誤,可以在/var/log/radius/radius.log :代碼:  
Fri Sep  1 09:03:16 2006 : Auth: rlm_unix: [radiususer]: invalid password  



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

基本上,如果你在 CentOS 4.3 裡面,只要用以下命令安裝即可:代碼:  
yum install freeradius  
,我之前有在 Fedora Core 4 上面安裝,結(jié)果發(fā)現(xiàn)少了一個(gè)重要的lib,rlm_ldap.so,所以最好在你安裝 FreeRadius 之後檢查一下:代碼:  
find / -name rlm_ldap.so  


在確認(rèn)以上該有的環(huán)境與函式庫(kù)都具備之後,我們接著修改下面的幾個(gè)部份:  

在 radius.conf 部份引言回覆:  
代碼:  
       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  
}  
上面各個(gè)設(shè)定應(yīng)該很清楚,小弟就不多說(shuō)明了。  

在 authorize 區(qū)塊裡面,記得開(kāi)啟 LDAP 認(rèn)證:代碼:  
authorize {  
ldap  
}  

代碼:  
authenticate {  
       Auth-Type LDAP {  
               ldap  
       }  
}  
注意,以上這兩個(gè)區(qū)塊裡面,LDAP功能預(yù)設(shè)都是關(guān)閉的,必須自己開(kāi)啟!  





clients.conf引言回覆:  
再來(lái),在 clients.conf 裡面的設(shè)定,找個(gè)地方新增認(rèn)證子機(jī)的設(shè)定(以下內(nèi)容,為原始的設(shè)定範(fàn)例,此地僅用來(lái)說(shuō)明與講解):代碼:  
client 192.168.0.0/16 {  
      secret          = testing123-2  
      shortname       = private-network-2  
}  
這個(gè)區(qū)塊裡面,我們定義了,在 192.168.x.x 這整個(gè)網(wǎng)段裡面,子機(jī)驗(yàn)證用的密碼為testing123-2,還有用來(lái)形容的稱呼為private-network-2。其中,密碼很重要,因?yàn)榈鹊葧?huì)用到。  
 



proxy.conf引用:此外,還需要設(shè)定 proxy.conf ,用來(lái)對(duì)應(yīng)「網(wǎng)域」帳號(hào)的部份:代碼:  
realm NULL {  
      type        = radius  
      authhost    = LOCAL  
      accthost    = LOCAL  
      nostrip  
}  

realm study-area.org {  
       type    = radius  
       authhost = LOCAL  
       accthost = LOCAL  
}  
 
在這裡,我設(shè)定了兩個(gè)部份。一個(gè)是帳號(hào)名稱不帶「網(wǎng)域」的,也就是例如 radiususer 這樣的帳號(hào);另外一個(gè),study-area.org 的部份,就是讓使用者所輸入的帳號(hào),看起來(lái)像這樣子 [email]radius@study-area.org[/email]。  





等這些設(shè)定完成之後,我們啟動(dòng) FreeRadius 服務(wù),然後用下面的指令來(lái)檢查一下是否可以透過(guò) ldap 來(lái)完成帳號(hào)驗(yàn)證功能:代碼:  
radtest username  userPassword Radius-Server_IP 0  secret-password  
要特別注意的是,在Radius-Server_IP 後面那個(gè) 0,是數(shù)字;在其後的 secret-password 是我們?cè)?clients.conf 裡面設(shè)定的,子機(jī)驗(yàn)證用的密碼。我先前在網(wǎng)路上找到的文章,很多在這部份都有錯(cuò)誤的範(fàn)例。  



如果一切順利,就會(huì)輸出這樣的畫(huà)面:代碼:  
# 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  
 


如果是子機(jī)驗(yàn)證用的密碼錯(cuò)誤,則會(huì)輸出以下的資訊:代碼:  
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 = "200px27347315pz222Y314U026434333"  
       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.)  

關(guān)于“如何使用FreeRadius +LDAP實(shí)現(xiàn)驗(yàn)證功能”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI