2007-07-23 11:42:00| 分類: Linux學(xué)習(xí) | 標(biāo)簽: |字號大中小 訂閱
博主原創(chuàng),歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明出處!
在企業(yè)內(nèi)部網(wǎng)絡(luò)環(huán)境應(yīng)用中,使用ldap目錄服務(wù)架設(shè)通訊錄服務(wù)器與郵件收發(fā)用戶端軟件(outlook express、microsoft outlook 200x等)整合,可實(shí)現(xiàn)企業(yè)內(nèi)部通訊錄共享,同步更新、集中式管理與維護(hù)等功能。此文不涉及l(fā)dap工作原理及數(shù)據(jù)存儲結(jié)構(gòu)等高深內(nèi)容,只是一篇簡單實(shí)用的操作手冊,以便于網(wǎng)絡(luò)管理員快速架設(shè)服務(wù)于所屬公司的通訊錄服務(wù)器。本文以下設(shè)置全部基于linux fedora 3操作系統(tǒng)。
一、Open ldap軟件的安裝
查看系統(tǒng)中是否已經(jīng)安裝了ldap軟件包(四個(gè))
[root@mailtest ~]# rpm -qa |grep openldap
openldap-2.2.29-1.FC3
openldap-servers-2.2.29-1.FC3
openldap-devel-2.2.29-1.FC3
openldap-clients-2.2.29-1.FC3
如果沒有顯示以上所顯示的四個(gè)軟件包,可使用yum工具進(jìn)行以上軟件包的安裝,運(yùn)行yum工具之前,請連通網(wǎng)絡(luò),保證此臺服務(wù)器可以訪問Internet,第一次使用yum會提示注冊GPG Keys的錯(cuò)誤信息,可運(yùn)行以下命令解決。
[root@mailtest ~]#rpm --imp
使用yum工具安裝openldap軟件包,可運(yùn)行以下命令逐個(gè)安裝。
[root@mailtest ~]#yum install openldap
[root@mailtest ~]#yum install openldap-devel
[root@mailtest ~]#yum install openldap-servers
[root@mailtest ~]#yum install openldap-clients
另外如果覺得使用yum安裝不習(xí)慣,也可以至網(wǎng)上下載以上四個(gè)rpm軟件包進(jìn)行安裝,這里就不在詳述。
二、Open ldap配置檔設(shè)定
Open ldap 主要配置檔文件為:/etc/openldap/slapd.conf。
[root@mailtest ~]# vi /etc/openldap/slapd.conf
將第69行:suffix "dc=my-domain,dc=com"
修改為: suffix "dc=ldap,dc=chenbro,dc=com,dc=dg"
將第70行:rootdn "cn=Manager,dc=my-domain,dc=com"
修改為: rootdn "cn=root,dc=ldap,dc=chenbro,dc=com,dc=dg"
將第76行:rootpw secret
修改為: rootpw 123456
設(shè)置完成后如下圖所示
以上設(shè)置說明:
suffix "dc=ldap,dc=chenbro,dc=com,dc=dg"其中dc=ldap,dc=chenbro,dc=com,dc=dg為目錄后綴
rootdn "cn=root,dc=ldap,dc=chenbro,dc=com,dc=dg"設(shè)置l目錄管理員為root
rootpw 123456設(shè)置目錄管理員root的明文密碼為123456
當(dāng)然,明文密碼是不安全的,我們可以以用slappasswd命令來生成加密密碼,提高系統(tǒng)的安全性
[root@mailtest openldap]# slappasswd -h {crypt}
New password:
Re-enter new password:
{CRYPT}DiWqVR0PCWOOo
以上命令說明,運(yùn)行slappasswd –h {crypt}后,在New password:處輸入123456,然后在Re-enter new password:處再次輸入123456確認(rèn),命令生成123456明文密碼的加密密碼{CRYPT}DiWqVR0PCWOOo,將其復(fù)制后粘貼入slapd.conf配置文件中rootpw后,如下圖所示
以上只是完成了ldap目錄的設(shè)置,ldap目錄內(nèi)不會有任何數(shù)據(jù),下面將逐步建立。
三、Open ldap數(shù)據(jù)的建立
1、基礎(chǔ)配置
首先我們在/etc/openldap目錄下建立一個(gè)root.ldif的文件,內(nèi)容如下:
[root@mailtest openldap]# cat root.ldif
# extended LDIF
#
# LDAPv3
# base <dc=ldap,dc=chenbro,dc=com,dc=dg> with scope sub
# filter: (objectclass=*)
# requesting: ALL
#
# ldap.chenbro.com.dg
dn: dc=ldap,dc=chenbro,dc=com,dc=dg
dc: ldap
objectClass: dcObject
objectClass: organizationalUnit
ou: ldap Dot chenbro Dot com Dot dg
以上root.ldif文件中橙色字部分與根尾碼相關(guān)的單詞必須與/etc/openldap/slapd.conf配置檔中的設(shè)置一致。
然后執(zhí)行如下命令將root.ldif文件的內(nèi)容導(dǎo)入openldap系統(tǒng)
[root@mailtest openldap]#slapadd –v –l root.ldif
added: "dc=ldap,dc=chenbro,dc=com,dc=dg" (00000001)
根尾碼相關(guān)數(shù)據(jù)導(dǎo)入后,可啟openldap測試
[root@mailtest openldap]# service ldap start
/var/lib/ldap/objectClass.bdb is not owned by "ldap" [警告]
/var/lib/ldap/ou.bdb is not owned by "ldap" [警告]
/var/lib/ldap/id2entry.bdb is not owned by "ldap" [警告]
/var/lib/ldap/dn2id.bdb is not owned by "ldap" [警告]
為 slapd 檢查設(shè)定檔: [ 確定 ]
啟動(dòng) slapd: [ 確定 ]
以上警告信息的意思為:
/var/lib/ldap/objectClass.bdb
/var/lib/ldap/ou.bdb
/var/lib/ldap/id2entry.bdb
/var/lib/ldap/dn2id.bdb
四個(gè)數(shù)據(jù)庫文件的所屬群組與人員不是ldap可通過以下命令修改
[root@mailtest openldap]# chown ldap:ldap /var/lib/ldap/*
再次重啟ldap,檢查其正確性
[root@mailtest openldap]# service ldap start
為 slapd 檢查設(shè)定檔: [ 確定 ]
啟動(dòng) slapd: [ 確定 ]
沒有提示任何錯(cuò)誤信息,測試通過。
2、phpldapadmin設(shè)置與數(shù)據(jù)輸入
1)服務(wù)器端設(shè)置
命令行方式的ldap數(shù)據(jù)輸入與維護(hù)比較繁瑣,中間還涉及到文字的編碼轉(zhuǎn)換等問題,現(xiàn)在有很多圖形界面的軟件可供我們選擇,phpldapadmin工具就是其中的一款,由于筆者本人使用這一軟件,故以此軟件為例進(jìn)行講解。由于phpldapadmin是基本于web界面,所以此服務(wù)器需安裝apache與php4.x軟件包,通常情況下linux系統(tǒng)安裝完成后,系統(tǒng)已默認(rèn)安裝了以上兩款軟件,如果你的系統(tǒng)中沒有以上軟件,可按以上安裝open ldap軟件的方法進(jìn)行安裝。以下我們選用phpldapadmin-0.9.8.3.tar.gz這個(gè)版本為例進(jìn)行配置示范。
首先解壓縮
[root@mailtest openldap]# tar -zxvf phpldapadmin-0.9.8.3.tar.gz
[root@mailtest openldap]# mv phpldapadmin-0.9.8.3 phpldapadmin
[root@mailtest openldap]# cp –r phpldapadmin /var/www/html
[root@mailtest openldap]# cd /var/www/html/
[root@mailtest html]# cd phpldapadmin
[root@mailtest phpldapadmin]# cd config/
[root@mailtest config]# cp config.php.example config.php
[root@mailtest config]# vi config.php
將第67行
$ldapservers->SetValue($i,'server','name','My LDAP Server');
注釋掉,更改為
// $ldapservers->SetValue($i,'server','name','My LDAP Server');
將230行的注釋符號“/*”刪除,在237行后新增一空行,將注釋符號“/*”移至第238行,并修改235與237行內(nèi)容如下圖所示
以上修改完成后退出打開IE在地址欄中輸入http://192.168.8.4/phpldapadmin/
輸入后無法進(jìn)入phpldapadmin界面,則進(jìn)入系統(tǒng)啟動(dòng)httpd服務(wù)。
[root@mailtest config]#service httpd start
[root@mailtest config]#chkconfig httpd on 設(shè)置系統(tǒng)以后啟動(dòng)時(shí)自動(dòng)加載apache服務(wù)
點(diǎn)擊Login后
在Login DN后面輸入cn=root,dc=ldap,dc=chenbro,dc=com,dc=dg
在Password后面輸入slapd.conf中設(shè)置的123456
點(diǎn)擊Authenticate進(jìn)入
點(diǎn)擊Create new entry here建立組織與人員名單
建立組織點(diǎn)擊Organisational Unit
建立人員點(diǎn)擊Address Book Entry (mozillaOrgPerson)
后面的操作一目了然。
2)用戶端Outlook express設(shè)置
點(diǎn)擊工具à帳戶à新增à目錄服務(wù)à輸入ldap服務(wù)器為192.168.8.4,點(diǎn)擊確定后退出,然后再次進(jìn)入選擇目錄服務(wù)中的192.168.8.4進(jìn)入相關(guān)設(shè)置,設(shè)置如下:
四、Open ldap數(shù)據(jù)備份
為預(yù)防ldap通訊錄服務(wù)器數(shù)據(jù)庫發(fā)生錯(cuò)誤可使用如下命令對數(shù)庫進(jìn)行備份,備份檔為filename.txt
[root@mailtest openldap]# ldapsearch -x -b "dc=ldap,dc=chenbro,dc=com,dc=dg" >filename.txt
[root@mailtest openldap]#cat filename.txt
# extended LDIF
#
# LDAPv3
# base <dc=ldap,dc=chenbro,dc=com,dc=dg> with scope sub
# filter: (objectclass=*)
# requesting: ALL
#
# ldap.chenbro.com.dg
dn: dc=ldap,dc=chenbro,dc=com,dc=dg
dc: ldap
objectClass: dcObject
objectClass: organizationalUnit
ou: ldap Dot chenbro Dot com Dot dg
# \E8\94\A1\E6\9F\90\E6\9F\90, ldap.chenbro.com.dg
dn:: Y2496JSh5p+Q5p+QLGRjPWxkYXAsZGM9Y2hlbmJybyxkYz1jb20sZGM9ZGc=
sn:: 6JSh5p+Q5p+Q
cn:: 6JSh5p+Q5p+Q
mail: c0242@chenbro.com.dg
telephoneNumber: 882
homePhone: 51289788
facsimileTelephoneNumber: 51289766
mobile: 13951136877
objectClass: inetOrgPerson
objectClass: top
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2
因以上命令為ldap數(shù)庫查詢命令,故執(zhí)行后會導(dǎo)出數(shù)庫中dc=ldap,dc=chenbro,dc-=com,dc=dg的所有數(shù)據(jù),以下幾行橙色字部份請從filename.txt中手工刪除.
也可使用如下指令自動(dòng)刪除
[root@mailtest openldap]#seq -e 10 1 |sed -n '1{N;N;N;N;N;N;};:a;N;P;D;t a' filename.txt
說明:第一個(gè)N代表倒數(shù)2行,第二個(gè)N代表倒數(shù)第三行,依此類推到倒數(shù)七行,故需放置6個(gè)N以上操作結(jié)束后,代表數(shù)據(jù)庫已經(jīng)備份成功
五、Open ldap數(shù)據(jù)恢復(fù)
首先刪除/var/lib/ldap/目錄下的所以數(shù)庫文件然后執(zhí)行下面的指令
[root@mailtest openldap]# rm -rf /var/lib/ldap/*
將備份的數(shù)據(jù)導(dǎo)入
[root@mailtest openldap]#slapadd -v -l /etc/openldap/filename.txt
指令下達(dá)后,將會很快的顯示數(shù)據(jù)庫中的所有內(nèi)容
執(zhí)行下面的指令,否則當(dāng)我們重啟ldap時(shí)會出現(xiàn)用戶與群組錯(cuò)誤
[root@mailtest openldap]#chown -R ldap:ldap /var/lib/ldap
重啟ldap服務(wù),恢復(fù)完成
[root@mailtest openldap]#service ldap restart