實驗環境:
REDHAT6.3
LDAP server:172.24.30.20
LDAP clent: 172.24.30.25
准備工作:
配置前先關閉iptables和SELINUX,避免配置過程中報錯。
# service iptables stop
# setenforce 0
# vi /etc/sysconfig/selinux
---------------
SELINUX=disabled
---------------
1.LDAP server端配置:
安裝LDAP服務(使用YUM本地光盤安裝)
# yum install openldap-* -y
提示安裝以下4個包
openldap-devel-2.4.23-26.el6.x86_64
openldap-clients-2.4.23-26.el6.x86_64
openldap-2.4.23-26.el6.x86_64
openldap-servers-2.4.23-26.el6.x86_64
拷貝LDAP配置文件到LDAP目錄(redhat6.3):
# cd /etc/openldap/
# cp /usr/share/openldap-servers/slapd.conf.obsolete slapd.conf
redhat6.0或6.1版本配置文件在主目錄有備份:
# cd /etc/openldap/
# cp slapd.conf.bak slapd.conf
創建LDAP管理員密碼:
# slappasswd
這裡我輸入的密碼是redhat,輸入完密碼後,返回一串密文,先保存到剪貼板
{SSHA}pfAJm+JJa4ec2y8GjTc8uMEJpoR5YKLy
編譯配置文件
# vi /etc/openldap/slapd.conf
找到115行,默認如圖:
修改為:
高亮部分為剛才生成的密碼(加密後的)。
配置文件最後幾行的權限部分我們也要做相應的更改:
原內容:
更改為:
保存退出。
拷貝DB_CONFIG文件到指定目錄
# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
刪除默認/etc/openldap/slapd.d下面的所有內容,否則後面在使用ldapadd的時候會報錯:
# rm -rf /etc/openldap/slapd.d/*
啟動LDAP的slapd服務,並設置自啟動:
# service slapd restart
# chkconfig slapd on
賦予配置目錄相應權限:
# chown -R ldap:ldap /var/lib/ldap
# chown -R ldap:ldap /etc/openldap/
測試並生成配置文件:
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
返回config file testing succeeded,則配置成功。
賦予生成的配置文件予權限並重啟:
# chown -R ldap:ldap /etc/openldap/slapd.d
# service slapd restart
創建一個賬號,以備客戶端測試登陸
# useradd ldapuser1
# passwd ldapuser1
至此,這些用戶僅僅是系統上存在的用戶(存儲在/etc/passwd和/etc/shadow上),並沒有在LDAP數據庫裡,所以要把這些用戶導入到LDAP裡面去。但LDAP只能識別特定格式的文件 即後綴為ldif的文件(也是文本文件),所以不能直接使用/etc/passwd和/etc/shadow。 需要migrationtools這個工具把這兩個文件轉變成LDAP能識別的文件。
安裝配置migrationtools
# yum install migrationtools -y
進入migrationtool配置目錄
# cd /usr/share/migrationtools/
首先編輯migrate_common.ph
# vi migrate_common.ph
找到如下內容(大概在70行):
修改為:
下面利用pl腳本將/etc/passwd 和/etc/shadow生成LDAP能讀懂的文件格式,保存在/tmp/下
# ./migrate_base.pl > /tmp/base.ldif
# ./migrate_passwd.pl /etc/passwd > /tmp/passwd.ldif
# ./migrate_group.pl /etc/group > /tmp/group.ldif
下面就要把這三個文件導入到LDAP,這樣LDAP的數據庫裡就有了我們想要的用戶
# ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f /tmp/base.ldif
# ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f /tmp/passwd.ldif
# ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f /tmp/group.ldif
過程若無報錯,則LDAP服務端配置完畢
重啟slapd完成配置
# service slapd restart
現安裝NFS,並把ldapuser1的家目錄做NFS共享.
默認REDHAT已安裝
# yum install nfs* -y
配置NFS共享:
# vi /etc/exports
--------------
/home/ldapuser1 *(rw,no_root_squash)
--------------
重啟nfs服務:
# service rpcbind restart
# service nfs restart
2.LDAP 客戶端配置
打開客戶端圖形化界面命令行
 
輸入system-config-authentication,按照如圖配置:
配置結束點Apply保存退出,系統會自動重啟sssd服務
配置autofs,實現ldapuser1登錄成功後,能夠訪問本地家目錄/home/ldapuser1,該目錄掛載於網內LDAP服務器172.24.30.20:/home/ldapuser1下
# vi /etc/auto.master
添加一行:
--------------
/home /etc/auto.misc
--------------
# vi /etc/auto.master
添加一行:
--------------
* -fstype=nfs 172.24.30.20:/home/&
--------------
重啟autofs服務:
# service autofs reload
登陸ldapuser1賬戶:
若未返回系統未找到ldapuser1家目錄報錯信息,則LDAP客戶端配置成功。
注:這裡若仍無法登陸,請進入setup模式配置LDAP登陸
# id ldapuser1
uid=500(ldapuser1) gid=500(ldapuser1) groups=500(ldapuser1)
# su - ldapuser1
# pwd
/home/ldapuser1
至此大功告成。。。
注:LDAP服務需要服務器和客戶端的時間保持大致一致,否則在登陸ldapuser1賬戶時可能會報錯,這裡NTP服務搭建省略,可以手工修改兩台服務器的時間保持一致。