一、說明
LDAP(輕量級目錄訪問協議,Lightweight Directory Access Protocol)是實現提供被稱為目錄服務的信息服務。目錄服務是一種特殊的數據庫系統,其專門針對讀取,浏覽和搜索操作進行了特定的優化。
二、下載軟件
ftp://ftp.openldap.org/pub/OpenLDAP/openldap-stable/openldap-stable-20070831.tgz
三、解壓安裝
操作環境:RHEL AS4
#gunzip openldap-stable-20070831.tgz
#tar xvf openldap-stable-20070831.tar -C /tmp
#cd /tmp
#./configure --prefix=/usr/local/openldap
#make depend
#make
#make test
#make install
四、相關配置目錄
LDAP後台程序slapd目錄:/usr/local/openldap/libexec
配置文件目錄:/usr/local/openldap/etc
運行數據庫目錄:/usr/local/openldap/var/openldap-data
OpenLDAP工具目錄:/usr/local/openldap/bin
五、修改配置文件
1) 更改配置文件/usr/local/etc/openldap/slapd.conf
在include /usr/local/etc/openldap/schema/core.schema這行後面加上下面的行,包括所有的方案。
include /usr/local/etc/openldap/schema/corba.schema
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/inetorgperson.schema
include /usr/local/etc/openldap/schema/java.schema
include /usr/local/etc/openldap/schema/krb5-kdc.schema
include /usr/local/etc/openldap/schema/misc.schema
include /usr/local/etc/openldap/schema/nadf.schema
include /usr/local/etc/openldap/schema/nis.schema
include /usr/local/etc/openldap/schema/openldap.schema
2) 在文件slapd.conf的"dbm database definitions"部分更改相應的
suffix,rootdn行如下
database dbm
suffix "dc=example,dc=com"
rootdn "cn=root,dc=example,dc=com"
rootpw secret
directory /usr/local/openldap/var/openldap-data
rootdn的格式安裝後默認為cn=Manager,這裡改為root完全是自己的喜好,這樣符合
Unix/Linux中root具有最高權限的傳統。
3) 現在可以啟動slapd了,運行/usr/local/openldap/libexec/slapd
可以考慮把/usr/local/bin and /usr/local/libexec加到搜索路徑中,即加到/etc/profile 中的PATH行:
PATH="$PATH:/usr/X11R6/bin:/usr/local/bin:/usr/local/openldap/libexec"
這樣下次登錄後只需鍵入slapd
4)測試ldap server是否正常工作。
運行下面的命令檢查是否有相應的輸出。
#ldapsearch -x -b "dc=example,dc=com" "(objectclass=*)"
5) 下載個migration腳本來創建.ldif文件,鏈接地址:
http://www.padl.com/download/MigrationTools.tgz
#gunzip MigrationTools.tgz;tar xvf MigrationTools.tar -C /usr/local/openldap
#cd /usr/local/openldap/MigrationTools-47
先編輯migrate_common.ph 文件,將其中兩行改為下列形式
$DEFAULT_MAIL_DOMAIN = "example.com";
$DEFAULT_BASE = "dc=example,dc=com";
要注意修改的方法要和您/usr/local/openldap/etc/openldap/slapd.conf中的dc=example,dc=com 相對應
創建base.ldif文本文件
執行
#./migrate_base.pl > /root/base.ldif
#./migrate_group.pl /etc/group >> /root/base.ldif
#./migrate_passwd.pl /etc/passwd >> /root/base.ldif
用ldapadd添加記錄進入LDAP數據庫.
文件內容如下:
dn: dc=example,dc=com
dc: example
objectClass: top
objectClass: domain
dn: ou=Hosts,dc=example,dc=com
ou: Hosts
objectClass: top
objectClass: organizationalUnit
………………more……………………………………………………
依次類推,添加每個人的記錄進入該文件中
然後用下面的命令添加上面的.ldif文件進入LDAP數據庫
#ldapadd -x -D "cn=root,o=example,c=us" -w secret -f base.ldif
注:上面的文件的第一部分"dn: dc=example,dc=com"是必須的,否則不能添加數據。
6) 我們一經將所有用戶、組及其密碼導入了ldap服務器.
7) 客戶端配置用戶驗證方法
在客戶端執行authconfig,如附圖所示
圖片1
圖片2
對於客戶機器而言,應該將服務器地址寫為提供LDAP服務的機器上。
注意,客戶端需要每次啟動之後自動運行nscd服務,您可以通過執行ntsysv 命令來使nscd服務自動執行,也可以使用 chkconfig –level 35 nscd on 命令來做同樣的事情。
並且,服務器本身也可以使用自己的Openldap服務器來進行用戶驗證。
8) 服務器端配置NFS服務
配置NFS服務器。這很簡單。只需要在/etc/exports 寫一行:
/home (rw)
就可以了。並且使得portmap nfs 服務都能夠自動運行。
chkconfig --level 35 portmap on
chkconfig --level 35 nfslock on
chkconfig --level 35 nfs on
客戶端配置nfs
在/etc/fstab 中增加一行:
192.168.0.132:/home /home nfs defaults 1 1
並且使得portmap 和netfs服務能夠自動運行:
chkconfig –-level 35 portmap on
chkconfig –-level 35 netfs on
chkconfig -–level 35 nscd on
如果netfs服務沒有自動打開。則客戶機無法在啟動的時候成功mount nfs 卷。
配置完成後,不論用戶在那台機器上登陸,都會去服務器驗證密碼。登陸後所在的初始位置,表面上是客戶機/home/user ,但實質上是服務器上的/home/user,這樣一來,該用戶以前曾經保存的文檔資料,都會儲存在服務器中。不論用戶在何處登陸,文檔資料總是位於同樣的位置。而且,全部用戶的密碼資料,都在Openldap Server 中,便於同一維護,也可以有用戶使用passwd 命令來修改,只不過。這時的passwd 命令改變的不是/etc/shadow 和/etc/passwd 文件,而是OpenLdap Server中的資料。