免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6842 | 回复: 1
打印 上一主题 下一主题

[ldap] [转贴]FreeRadius +LDAP 结合验证 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-15 21:13 |只看该作者 |倒序浏览
看到一启蒙好文章,不敢独享.
*******************************
作者: 日京三子 http://www.24online.cjb.net

最近在網路上找了很多關於 FreeRadius 的文章,部份有提到如何跟 LDAP 系統做結合認證的資訊;小弟整理一下,並加上自己實作的部份。

------ LDAP 的部份 ---------
首先,當然是要一個完整、可以提供服務的LDAP系統,怎麼建置請參考小弟的筆記,在此就不多提了。

以小弟的環境為例,我的使用者 ldif 長得像下面這樣:代碼:
# 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  

在這邊要特別注意的是,我之前裡面有多定義一個 objectClass ,反而造成系統無法認證,該 objectClass 如下:代碼:
objectClass: shadowAccount
有這個就會引發下面這個錯誤,可以在/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 上面安裝,結果發現少了一個重要的lib,rlm_ldap.so,所以最好在你安裝 FreeRadius 之後檢查一下:代碼:
find / -name rlm_ldap.so


在確認以上該有的環境與函式庫都具備之後,我們接著修改下面的幾個部份:

在 radiusd.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
}
上面各個設定應該很清楚,小弟就不多說明了。

在 authorize 區塊裡面,記得開啟 LDAP 認證:代碼:
authorize {
ldap
}

代碼:
authenticate {
        Auth-Type LDAP {
                ldap
        }
}
注意,以上這兩個區塊裡面,LDAP功能預設都是關閉的,必須自己開啟!





clients.conf引言回覆:
再來,在 clients.conf 裡面的設定,找個地方新增認證子機的設定(以下內容,為原始的設定範例,此地僅用來說明與講解):代碼:
client 192.168.0.0/16 {
       secret          = testing123-2
       shortname       = private-network-2
}
這個區塊裡面,我們定義了,在 192.168.x.x 這整個網段裡面,子機驗證用的密碼為testing123-2,還有用來形容的稱呼為private-network-2。其中,密碼很重要,因為等等會用到。




proxy.conf[quote]此外,還需要設定 proxy.conf ,用來對應「網域」帳號的部份:代碼:
realm NULL {
       type        = radius
       authhost    = LOCAL
       accthost    = LOCAL
       nostrip
}

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

在這裡,我設定了兩個部份。一個是帳號名稱不帶「網域」的,也就是例如 radiususer 這樣的帳號;另外一個,study-area.org 的部份,就是讓使用者所輸入的帳號,看起來像這樣子 radius@study-area.org





等這些設定完成之後,我們啟動 FreeRadius 服務,然後用下面的指令來檢查一下是否可以透過 ldap 來完成帳號驗證功能:代碼:
radtest username  userPassword Radius-Server_IP 0  secret-password
要特別注意的是,在Radius-Server_IP 後面那個 0,是數字;在其後的 secret-password 是我們在 clients.conf 裡面設定的,子機驗證用的密碼。我先前在網路上找到的文章,很多在這部份都有錯誤的範例。



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



如果是子機驗證用的密碼錯誤,則會輸出以下的資訊:代碼:
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.)

基本上,這樣子就可以執行簡易的帳號驗證功能。

[ 本帖最后由 windychan 于 2007-6-20 13:45 编辑 ]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2007-06-16 16:32 |只看该作者
呵呵,是日京三子的文章啊,加精了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP