LDAP-openldap服務部署和測試(YUM安裝)
2. 服務端部署過程
2.1 軟體包說明
2.2 部署過程
2.3 配置過程
3. 測試
4. 生成LDIF格式檔案
4.1 安裝migrationtools工具
4.2 用migrationtools生成ldif檔案
4.3 新增ldif到ldap資料庫
5. 日誌配置
5.1 openldap的日誌級別
5.2 配置日誌功能
6. 客戶端配置
6.1 基礎環境準備
6.2 配置nslcd客戶端
7. 新增系統使用者
7.1 新增使用者
7.2 產生ldif檔案
7.3 新增ldif檔案至LDAP資料庫中
7.4 驗證
1. 概述
本篇部落格主要記錄如何部署一臺LDAP伺服器,用於在內網叢集節點中,進行全域性使用者認證。
注:有關LDAP的理論部分,參見部落格《LDAP協議詳解.md》
本篇部落格主要的部署環境為:CentOS6.5_x86_64部署openldap,通過YUM安裝相關環境。
2. 服務端部署過程
2.1 軟體包說明
軟體包 | 軟體包說明 |
openldap | 服務端和客戶端必須用的庫檔案 |
openldap-clients | 在LDAP服務端使用,使用者增刪改查的命令列環境 |
openldap-servers | 用於啟動服務和配置,包括單獨的LDAP後臺守護程序 |
openldap-servers-sql | 支援SQL模組 |
compat-openldap | openldap相容性庫環境 |
2.2 部署過程
虛擬機器console,通過執行命令:rpm -qa | grep openldap
,檢視是否已經安裝openldap的軟體包:
openldap-clients-2.4.23-32.el6_4.1.x86_64 openldap-2.4.23-32.el6_4.1.x86_64 openldap-servers-2.4.23-32.el6_4.1.x86_64
若沒有上述軟體包,執行命令:yum -y install openldap openldap-clients openldap-servers
。
此過程會同時安裝依賴軟體包:libtool-ltdl,portserver軟體包
2.3 配置過程
- 複製配置檔案模板,到系統配置目錄下
cp -a /usr/share/openldap-servers/sldap.conf.obsolete /etc/openldap/slapd.conf
- 刪除舊的動態配置檔案
rm -rf /etc/openldap/sladp.d/*
- 複製資料庫配置檔案模板,到系統配置目錄下
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
- 修改資料庫配置檔案所在目錄屬主
chown -R ldap.ldap /var/lib/ldap
- 生成加密金鑰
虛擬機器console執行命令:slappasswd
提示New password:輸入liwanliang
提示Re-enter new password,輸入liwanliang
將生成的內容:{SSHA}SdorCU0SF/bBERBdPtkSVdWv94Hc826r,複製儲存下來 修改主配置檔案,修改內容如下:
有關openldap的配置詳解,參見部落格《LDAP-openldap配置檔案詳解.md》database config access to * by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by * none database monitor access to * by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.exact="cn=Manager,dc=liwanliang,dc=com" read by * none database bdb suffix "dc=liwanliang,dc=com" checkpoint 1024 15 rootdn "cn=Manager,dc=liwanliang,dc=com" rootpw {SSHA}SdorCU0SF/bBERBdPtkSVdWv94Hc826r
修改相關目錄屬性
虛擬機器console執行命令:chown -R ldap.ldap /etc/openldap
;chown -R ldap.ldap /var/lib/ldap
- 刪除舊的動態配置檔案
虛擬機器console執行命令:rm -rf /etc/openldap/slapd.d/*
- 啟動服務並設定開機啟動
虛擬機器console執行命令:service slapd start && chkconfilg slpad on
檢視是否啟動服務:service slapd status
;netstat -tupln|grep slapd
- 動態配置檔案
openldap的動態配置檔案位於/etc/openldap/slapd.d/下,每次修改了主配置檔案/etc/openldap/slapd.conf之後,都需要重新生成動態配置檔案,即:
刪除動態配置檔案:rm -rf /etc/openldap/slapd.d/*
重新生成動態配置檔案:slaptest -f /etc/openldap/slapd.conf -f /etc/openldap/slapd.d
修改動態配置目錄屬性:chown -R ldap.ldap /etc/openldap/slapd.d/
3. 測試
上述過程已經部署好了openldap並啟動了服務,這僅是第一步,openldap有沒有工作,還需要進一步驗證和測試。
虛擬機器console執行命令:ldapsearch -x -LLL
;如果這個命令報錯:【No suce object(32)】,則需要修改配置檔案/etc/openldap/ldap.conf
修改內容如下:
BASE dc=liwanliang,dc=com
URI ldap://192.168.80.8
TLS_CACERTDIR /etc/openldap/certs
上過過程說明已經基本完成了openldap的部署和測試,可以投入使用
4. 生成LDIF格式檔案
往openldap資料庫存放資料,有多種方式:1. 手動編輯;2. 用工具生成
手動編輯這裡不介紹。工具生成指的是用migrationtools指令碼來產生ldif檔案
4.1 安裝migrationtools工具
虛擬機器console執行命令:rpm -qa | grep migrationtools
,檢視系統是否已經安裝migrationtools
若沒有安裝,執行命令:yum -y installl migrationtools
,進行工具安裝
安裝完成之後,進入目錄/usr/share/migrationtools
,修改檔案migrate_common.ph,將以下兩行修改為:
4.2 用migrationtools生成ldif檔案
這裡是希望用openldap來實現使用者認證,因此需要把系統中存在的user和group產生ldif,新增到ldap的資料庫中。
虛擬機器console執行命令:
/usr/share/migrationtools /migrate_base.pl > base.ldif
/usr/share/migrationtools/migrate_passwd.pl /etc/passwd > passwd.ldif
/usr/share/migrationtools/migrate_group.pl /etc/group > group.ldif
4.3 新增ldif到ldap資料庫
上面過程,已經將使用者認證時需要的檔案/etc/passwd和/etc/group生成ldif檔案。
改用ldap驗證時,就需要將這幾個檔案新增到ldap資料庫中。
虛擬機器console執行命令:
ldapadd -x -D "cn=Manager,dc=liwanliang,dc=com' -c -W -f base.ldif
ldapadd -x -D "cn=Manager,dc=liwanliang,dc=com" -c -W -f passwd.ldif
ldapadd -x -D "cn=Manager,dc=liwanliang,dc=com" -c -W -f group.ldif
提示輸入密碼時,輸入liwanliang,回車
5. 日誌配置
5.1 openldap的日誌級別
虛擬機器console執行命令:slapd -d ?
,能夠看到以下內容:
各引數說明如下:
Any | 開啟所有的函式呼叫 |
Trace | 跟蹤Trace函式呼叫 |
Rackets | 與函式包處理相關的資訊 |
Args | 全面的debug資訊 |
Conns | 連結數管理的相關資訊 |
BER | 記錄包傳送和接收的資訊 |
Filter | 記錄過濾處理的過程 |
Config | 記錄配置檔案的相關資訊 |
ACL | 記錄訪問控制列表的相關資訊 |
Stats | 記錄連結,作業系統以及統計資訊 |
Stats2 | 記錄向客戶端響應的統計資訊 |
Shell | 記錄與shell後端通訊資訊 |
Parse | 記錄條目的分析結果資訊 |
Sync | 記錄資料同步資源消耗資訊 |
None | 不記錄資訊 |
5.2 配置日誌功能
- 修改主配置檔案/etc/openldap/slapd.conf,最後一行新增:loglever -1
- 虛擬機器console執行命令:
mkdir -p /var/log/slapd && chown -R ldap.ldap /var/log/sladp
- 修改系統日誌配置檔案,使其重定向日誌到ldap日誌目錄,
vim /etc/rsyslog.conf
,最後一行新增以下內容:
local4. * /var/log/slapd/slapd.log 利用Logrotate自動切割日誌
進入目錄/etc/logrotate.d,建立檔案ldap,新增以下內容:/var/log/slapd/slapd.log { prerotate /usr/bin/chattr -a /var/log/slapd/slapd.log endscript compress delaycompress notifempty rotate 100 size 10M postroatte /usr/bin/chattr +a /var/log/slapd/slapd.log endsript }
重啟日誌服務並觀察
虛擬機器console執行命令:service rsyslogd restart
觀察日誌檔案是否更新:tail -f /var/log/slapd/slapd.log
6. 客戶端配置
這裡的客戶端端不是指ldap命令列客戶端,而是需要通過LDAP伺服器驗證的客戶端節點。
本篇部落格已經部署了KVM虛擬機器node11,在node11上配置採用使用者採用LDAP驗證。
6.1 基礎環境準備
關閉sssd程序,並安裝nslcd程序
注:有關NSS,NSCD,NSLCD,SSSD服務的區別,參見包括《》
虛擬機器console執行命令:rpm -qa | grep nss-pam-ldapd
,檢視系統是否已經安裝客戶端
若未安裝,執行命令:yum -y install nss-pam-ldapd
進行安裝
6.2 配置nslcd客戶端
修改nslcd.conf配置檔案,vim /etc/nslcd.conf,文末新增內容如下:
uri ldap://192.168.80.8/ base dc=liwanliang,dc=com ssl no tls_cacertdir /etc/openldap/certs
修改pam_ldap.conf配置檔案,vim /etc/pam_ldap.conf,文末新增內容如下:
uri ldap://192.168.80.8 ssl no tls_cacertdir /etc/openldap/certs bind_policy soft
修改系統認證的PAM配置,vim /etc/pam.d/system-auth,修改內容如下:
修改名字服務NSS配置檔案,vim /etc/nssiwch.conf,修改部分如下:
passwd: files ldap shadow: files ldap group: files ldap
修改系統認證方式配置檔案,vim /etc/sysconfig/authconfig,修改部分內容如下:
USESHADOW=yes //啟用密碼驗證 USELDAPAUTH=yes //啟用openldap驗證 USELOCAUTHORIZE=yes //啟用本地驗證 USELDAP=yes //啟用LDAP認證協議
- 啟動nslcd服務程序
虛擬機器console執行命令:service iptables stop && setenforce 0
,即關閉防火牆和selinux
啟動服務,並設定開機啟動:service nslcd start && chkconfig nslcd on
- 客戶端驗證
在虛擬機器node11上,執行命令:id liwl01
,如果獲取到liwl01的使用者資訊,則說明配置成功
7. 新增系統使用者
在今後的實踐過程中,會存在新增系統程序使用者的需求,比如部署Nagios時,需要新增nagios和nagioscmd使用者;
部署slurm任務排程系統時,需要新增munge和slurmadmim使用者等。
這裡就需要利用migrationtools來實現往LDAP伺服器中新增使用者,然後實現全域性認證即可。具體過程如下:
7.1 新增使用者
這裡新增使用者liwl02
在虛擬機器console中執行命令:useradd -u 501 liwl02
給liwl02新增密碼:passwd liwl02
,輸入密碼兩次完成密碼新增
7.2 產生ldif檔案
因為已經生成了base.ldif檔案,此次新增使用者,不再需要生成base.ldif檔案
虛擬機器console執行命令:
migrate_passwd.pl /etc/passwd > passwd.ldif
,該命令建立passwd.ldif
migrate_group.pl /etc/group > group.ldif
,該命令建立group.ldif
編輯passwd.ldif,只保留以下部分內容,其餘刪除:
dn: uid=liwl02,ou=People,dc=liwanliang,dc=com
uid: liwl02
cn: liwl02
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}$6$VKwyR9xY$GmXIUT9zJqE5/foaPKwgoDPfXS8XnkG1WcqjHoNBmLcMUvbyrOV6BVLXEmc6K140BM9r4fHAL33ZxSzWiZ8c//
shadowLastChange: 17699
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 501
gidNumber: 501
編輯group.ldif,只保留以下部分,其餘刪除:
dn: cn=liwl02,ou=Group,dc=liwanliang,dc=com
objectClass: posixGroup
objectClass: top
cn: liwl02
userPassword: {crypt}x
gidNumber: 501
7.3 新增ldif檔案至LDAP資料庫中
虛擬機器console執行命令, 新增兩個檔案中新加的內容:
ldapadd -x -D "cn=Manager,dc=liwanliang,dc=com" -c -W -f passwd.ldif
ldapadd -x -D "cn=Manager,dc=liwanliang,dc=com" -c -W -f group.ldif
輸入密碼liwanliang即可新增進入
7.4 驗證
在虛擬機器node11上,通過執行命令id liwl02
驗證是否新增成功