ldap服務器OpenLDAP安裝使用


OpenLDAP 是 LDAP 協議的一個開源實現。LDAP 服務器本質上是一個為只讀訪問而優化的非關系型數據庫。它主要用做地址簿查詢(如 email 客戶端)或對各種服務訪問做后台認證以及用戶數據權限管控。(例如,訪問 Samba 時,LDAP 可以起到域控制器的作用;或者 Linux 系統認證 時代替 /etc/passwd 的作用。)

 

一、安裝,環境:CentOS release 6.6 (Final)

使用yum安裝:yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtools

軟件包 軟件包說明
openldap 服務端和客戶端必須用的庫文件
openldap-clients 在LDAP服務端使用,用戶增刪改查的命令行環境
openldap-servers 用於啟動服務和配置,包括單獨的LDAP后台守護進程
openldap-servers-sql 支持SQL模塊
compat-openldap openldap兼容性庫環境

查看安裝情況:rpm -qa | grep openldap

安裝成功后會產生兩類命令行:客戶端命令、服務端命令;ldap開始的命令都是客戶端命令,slapd開始的命令都是openldap服務器命令

注意: 以 ldap 開頭的命令(如: ldapsearch)是客戶端工具,以 slap 開頭的命令(如: slapcat slapcat)是服務端工具。

查看OpenLDAP版本,使用如下命令:slapd -VV

 

安裝完會創建用戶ldap和用戶組ldap,這個用戶是不能登錄的/sbin/nologin。所以有關操作需要到root用戶下執行,使用命令sudo su切換到root用戶下

 

二、配置OpenLDAP

注意:從OpenLDAP2.4.23版本開始所有配置數據都保存在/etc/openldap/slapd.d/中,建議不再使用slapd.conf作為配置文件。 

設置OpenLDAP的管理員密碼,下圖加密后的字段保存下,等會我們在配置文件中會使用到。

slappasswd -s 123456

修改olcDatabase={2}hdb.ldif文件:

修改olcDatabase={2}hdb.ldif文件,對於該文件增加一行 olcRootPW: {SSHA}MFjmDOKFAVigfQ2Iok+GuVFUEZtE69ym,然后修改域信息:

olcSuffix: dc=test,dc=com

olcRootDN: cn=root,dc=test,dc=com

注意:其中cn=root中的root表示OpenLDAP管理員的用戶名,而olcRootPW表示OpenLDAP管理員加密后的密碼,明文密碼是test。

實際修改如下:進入root賬號進行修改

vim /etc/openldap/slapd.d/cn=config/olcDatabase\=\{2\}hdb.ldif

olcSuffix: dc=test,dc=com

olcRootDN: cn=root,dc=test,dc=com

olcRootPW: {SSHA}MFjmDOKFAVigfQ2Iok+GuVFUEZtE69ym

修改olcDatabase={1}monitor.ldif文件

修改olcDatabase={1}monitor.ldif文件,如下:

vim /etc/openldap/slapd.d/cn=config/olcDatabase\=\{1\}monitor.ldif

olcAccess: {0}to * by dn.base=”gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth” read by dn.base=”cn=root,dc=test,dc=com” read by * none

注意:該修改中的dn.base是修改OpenLDAP的管理員的相關信息的。

 

驗證OpenLDAP的基本配置,使用如下命令,有些錯誤,可以不用管,因為提示信息config file testing succeeded表示基本配置是OK的

slaptest -u

配置OpenLDAP數據庫

OpenLDAP默認使用的數據庫是BerkeleyDB,現在來開始配置OpenLDAP數據庫,使用如下命令:

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

chown ldap:ldap -R /var/lib/ldap

chmod 700 -R /var/lib/ldap

注意:/var/lib/ldap/就是BerkeleyDB數據庫默認存儲的路徑。

 

其他配置:

復制配置文件模板,到系統配置目錄下:
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:輸入test
提示Re-enter new password,輸入test
將生成的內容:{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=root,dc=test,dc=com" read
    by * none
database bdb
suffix "dc=test,dc=com"
checkpoint 1024 15
rootdn "cn=root,dc=test,dc=com"
rootpw {SSHA}SdorCU0SF/bBERBdPtkSVdWv94Hc826r

修改相關目錄屬性 
虛擬機console執行命令:chown -R ldap.ldap /etc/openldapchown -R ldap.ldap /var/lib/ldap

刪除舊的動態配置文件 
虛擬機console執行命令:rm -rf /etc/openldap/slapd.d/*

啟動服務並設置開機啟動 
虛擬機console執行命令:service slapd start && chkconfilg slapd on ,此時若有報錯可忽略。
查看是否啟動服務:service slapd statusnetstat -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/

修改配置文件/etc/openldap/ldap.conf 
修改內容如下:

BASE dc=test,dc=com
URI ldap://ip   # 大網ip方便遠程訪問
TLS_CACERTDIR /etc/openldap/certs

 

 

三、啟動服務:service slapd start | stop | status | restart

如圖可見,對於錯誤信息並不影響啟動

檢查啟動情況:默認端口是389

使用命令:ldapsearch -x -LLL查看服務啟動情況,如圖所示,說明OK

 

 

OpenLDAP默認使用的數據庫是BerkeleyDB,yum安裝的時候,自動完成了數據庫的安裝

四、在ldap服務器里添加用戶和用戶組等

首先手動編輯或使用工具migrationtools生成LDIF格式文件,注意文件格式,每個冒號后面都有一個空格,每行結尾不能有空格,多組信息直接使用行分割

 firstelement.ldif:

dn: cn=root,dc=test,dc=com
cn: user1
sn: user1
objectclass: person
dn: cn=root,dc=test,dc=com
cn: Manager
sn: Manager
objectclass: person
 
ldapadd -D "cn=root,dc=test,dc=com" -W -f ~/firstelement.ldif

如圖,因為已經成功添加過,所以報已經存在的錯誤

通過如下命令把ldif文件里的內容導入ldap服務器中

ldapadd -x -D "cn=root,dc=test,dc=com' -c -W -f firstelement.ldif 
ldapadd -x -D "cn=root,dc=test,dc=com" -c -W -f passwd.ldif 
提示輸入密碼時,輸入test,回車

 
openldap默認使用的是BerkeleyDB數據庫,yum安裝的時候貌似已經自帶安裝,所以無需再安裝

五、使用客戶端工具使用ldap服務:mac下使用ldap admin tool,免費版和收費版都會經常無故的死掉,殺死重啟就好。而且發現這個工具在添加用戶和用戶組等的時候,會經常執行失敗,這時候只能使用命令行導入ldif的方式添加用戶等。

 

ldapv3協議比較穩定,中文支持也比較好。但是不知道為什么,每次重啟ldap admin tool后,又恢復到了ldapv2,搞得我每次都要設置一次

 密碼:test

 

 

 

參考:

1、https://www.ilanni.com/?p=13775

2、https://www.cnblogs.com/liwanliangblog/p/9193916.html

3、https://wiki.archlinux.org/index.php/OpenLDAP_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

4、http://www.brennan.id.au/20-Shared_Address_Book_LDAP.html

5、http://xstarcd.github.io/wiki/sysadmin/OpenLDAPconfig.html

6、https://czmmiao.iteye.com/blog/1561703


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM