1. 程式人生 > >LDAP-openldap服務部署和測試(YUM安裝)

LDAP-openldap服務部署和測試(YUM安裝)

1. 概述
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 配置過程

  1. 複製配置檔案模板,到系統配置目錄下
    cp -a /usr/share/openldap-servers/sldap.conf.obsolete /etc/openldap/slapd.conf
  2. 刪除舊的動態配置檔案
    rm -rf /etc/openldap/sladp.d/*
  3. 複製資料庫配置檔案模板,到系統配置目錄下
    cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
  4. 修改資料庫配置檔案所在目錄屬主
    chown -R ldap.ldap /var/lib/ldap
  5. 生成加密金鑰
    虛擬機器console執行命令:slappasswd
    提示New password:輸入liwanliang
    提示Re-enter new password,輸入liwanliang
    將生成的內容:{SSHA}SdorCU0SF/bBERBdPtkSVdWv94Hc826r,複製儲存下來
  6. 修改主配置檔案,修改內容如下:
    有關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
  7. 修改相關目錄屬性
    虛擬機器console執行命令:chown -R ldap.ldap /etc/openldapchown -R ldap.ldap /var/lib/ldap

  8. 刪除舊的動態配置檔案
    虛擬機器console執行命令:rm -rf /etc/openldap/slapd.d/*
  9. 啟動服務並設定開機啟動
    虛擬機器console執行命令:service slapd start && chkconfilg slpad on
    檢視是否啟動服務:service slapd statusnetstat -tupln|grep slapd
  10. 動態配置檔案
    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 配置日誌功能

  1. 修改主配置檔案/etc/openldap/slapd.conf,最後一行新增:loglever -1
  2. 虛擬機器console執行命令:mkdir -p /var/log/slapd && chown -R ldap.ldap /var/log/sladp
  3. 修改系統日誌配置檔案,使其重定向日誌到ldap日誌目錄,vim /etc/rsyslog.conf,最後一行新增以下內容:
    local4. * /var/log/slapd/slapd.log
  4. 利用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
    }
  5. 重啟日誌服務並觀察
    虛擬機器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客戶端

  1. 修改nslcd.conf配置檔案,vim /etc/nslcd.conf,文末新增內容如下:

    uri ldap://192.168.80.8/
    base dc=liwanliang,dc=com
    ssl no
    tls_cacertdir /etc/openldap/certs
  2. 修改pam_ldap.conf配置檔案,vim /etc/pam_ldap.conf,文末新增內容如下:

    uri ldap://192.168.80.8
    ssl no
    tls_cacertdir /etc/openldap/certs
    bind_policy soft
  3. 修改系統認證的PAM配置,vim /etc/pam.d/system-auth,修改內容如下:

  4. 修改名字服務NSS配置檔案,vim /etc/nssiwch.conf,修改部分如下:

    passwd:      files     ldap
    shadow:     files     ldap
    group:      files     ldap
  5. 修改系統認證方式配置檔案,vim /etc/sysconfig/authconfig,修改部分內容如下:

    USESHADOW=yes    //啟用密碼驗證
    USELDAPAUTH=yes    //啟用openldap驗證
    USELOCAUTHORIZE=yes    //啟用本地驗證
    USELDAP=yes        //啟用LDAP認證協議
  6. 啟動nslcd服務程序
    虛擬機器console執行命令:service iptables stop && setenforce 0,即關閉防火牆和selinux
    啟動服務,並設定開機啟動:service nslcd start && chkconfig nslcd on
  7. 客戶端驗證
    在虛擬機器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驗證是否新增成功