OpenLDAP安裝教程2019?。?!

網(wǎng)上OpenLDAP的安裝教程基本上都是停留在零幾年的,要么抄來(lái)抄去,它們會(huì)告訴你要去修改一個(gè)叫做slapd.conf的文件,基本上看到這里,你就不用往下看了,根本就沒(méi)有這個(gè)文件?。?!取而代之的是slapd.d的文件夾,然后另一部分教程會(huì)告訴你,讓你修改這個(gè)文件夾下的某一個(gè)ldif文件,看到這里,你也不用往下看了,你又看到了偽教程,因?yàn)檫@個(gè)文件夾下的所有文件的第一行都明確地寫(xiě)著:這是一個(gè)自動(dòng)生成的文件,不要修改它!你修改了它之后,它的md5校驗(yàn)值會(huì)匹配不上,造成更多的問(wèn)題。你應(yīng)該用ldapmodify來(lái)修改這個(gè)文件,而關(guān)于ldapmodify的教程,可以說(shuō)幾乎就沒(méi)有!如果前面安裝一切都順利,遇到各種問(wèn)題也沒(méi)有具體的解決辦法,這里我就把我安裝及遇到的問(wèn)題詳細(xì)的寫(xiě)一下吧。

先確保沒(méi)有安裝過(guò)openLdap,或者安裝失敗又或者改亂后,通常卸載步驟:
systemctl stop slapd
yum remove compat-openldap openldap-clients openldap-servers
rm -rf /var/lib/ldap/*
rm -rf /etc/openldap/slapd.d/*

安裝前系統(tǒng)設(shè)置,我也不知道為什么反正大多教程踩過(guò)坑的都這么做
1、防火墻設(shè)置
centos7.0默認(rèn)防火墻為firewalld
停止firewall
systemctl stop firewalld.service

禁止firewall開(kāi)機(jī)啟動(dòng)
systemctl disable firewalld.service

查看默認(rèn)防火墻狀態(tài):
firewall-cmd --state

2、修改selinux
vi /etc/selinux/config
將SELINUX=enforcing改為:SELINUX=disabled
setenforce 0 或者重啟,注意敲黑板重點(diǎn)。

一、安裝OpenLDAP

1、安裝
yum install -y openldap openldap-clients openldap-servers migrationtools

2、設(shè)置OpenLDAP管理密碼。
slappasswd
New password: 123456
Re-enter new password: 123456
{SSHA}r2fcL6Exxgr8oKkaWROUQDCZKqXrH7bE

3、修改根DN與添加密碼,上面說(shuō)過(guò)手動(dòng)改文件是不可取,但是我是這么走過(guò)來(lái)的沒(méi)問(wèn)題,畢竟ldapmodify相關(guān)操作少之又少且麻煩?。?!
vi /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif

修改內(nèi)容:
olcSuffix: dc=cpsino,dc=com
olcRootDN: cn=admin,dc=cpsino,dc=com
新增一行:
olcRootPW: {SSHA}r2fcL6Exxgr8oKkaWROUQDCZKqXrH7bE
注:.ldif文件內(nèi)容冒號(hào)后面都是有空格的,結(jié)尾無(wú)空格。

4、修改驗(yàn)證
vi /etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif

olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
al,cn=auth" read by dn.base="cn=admin,dc=cpsino,dc=com" read by * none

5、配置DB數(shù)據(jù)庫(kù)
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

6、驗(yàn)證
slaptest -u
看見(jiàn):config file testing succeeded #驗(yàn)證成功,否則失敗。

7、授權(quán),若不授權(quán)啟動(dòng)時(shí)或報(bào)錯(cuò),權(quán)限不足
chown ldap:ldap -R /var/run/openldap
chown -R ldap:ldap /etc/openldap/

8、啟動(dòng)
systemctl start slapd //啟動(dòng) stop停止
systemctl enable slapd //開(kāi)機(jī)運(yùn)行
systemctl status slapd //查看運(yùn)行狀態(tài)及相關(guān)輸出日志


image.png

9、執(zhí)行l(wèi)dapsearch -x檢查是否有如下輸出
ldapsearch -x -b '' -s base'(objectclass=*)'

image.png

如顯示上面信息,表示服務(wù)已經(jīng)啟動(dòng)成功。

二、創(chuàng)建管理員賬號(hào)

1、手動(dòng)添加個(gè)ldif文件,劃重點(diǎn)!??!教程上但凡有這個(gè)objectClass: dcObject也可以不用看了,這個(gè)根本就不能往下添加uid!?。。。。。。。。。。。?!
vi base.ldif

dn: dc=cpsino,dc=com
dc: cpsino
objectClass: top
objectClass: domain
objectClass: domainRelatedObject
associatedDomain: cpsino.com

dn: cn=admin,dc=cpsino,dc=com
objectclass: organizationalRole
cn: admin

2、導(dǎo)入數(shù)據(jù)庫(kù)
ldapadd -x -D "cn=admin,dc=cpsino,dc=com" -W -f base.ldif

這里要求輸入管理員密碼,輸入密碼后就會(huì)看到日志 插入成功。

三、OpenLDAP管理工具(LDAPAdmin windows桌面版)個(gè)人覺(jué)得很好用,也寫(xiě)了個(gè)web服務(wù),用于公司添加員工賬號(hào)的一個(gè)統(tǒng)一的入口。


image.png
image.png
image.png

四 遇到過(guò)的問(wèn)題
1、ldap_bind: Invalid credentials (49)
這個(gè)問(wèn)題一般都是設(shè)置完管理員密碼之后,需要重啟一下openldap服務(wù),才會(huì)生效,或者你的用戶名和密碼輸入錯(cuò)誤。
2、ldap_add: Invalid syntax (21)
additional info: objectClass: value #0 invalid per syntax
這個(gè)問(wèn)題網(wǎng)上大多說(shuō)的是導(dǎo)入的語(yǔ)法有問(wèn)題,比如:后要有空格,每一個(gè)節(jié)點(diǎn)要有空行,結(jié)尾不能有空格。按照所述改完依舊有問(wèn)題,后來(lái)查資料
原來(lái)創(chuàng)建的初始節(jié)點(diǎn)的objectClass有問(wèn)題,網(wǎng)上教程上千篇一律的objectClass:dcObject,這個(gè)屬性他子節(jié)點(diǎn)根本add不進(jìn)去。
參考https://www.dazhuanlan.com/2019/10/24/5db0ea2223951/ objectClass的使用。

如果有問(wèn)題可以一起討論:qq277736477

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容