1. 安裝OpenLDAP
1.1 環境准備
lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.5.1804 (Core)
Release: 7.5.1804
下載 openldap, 默認yum已搭建好,yum未搭建成功可以查看我的yum搭建
@(#) $OpenLDAP: slapd 2.4.44 (May 16 2018 09:55:53) $
mockbuild@c1bm.rdu2.centos.org:/builddir/build/BUILD/openldap-2.4.44/openldap-2.4.44/servers/slapd
設置管理員密碼, 會返回一串加密字符串,保存好
slappasswd -s l root123
{SSHA}y9iku13lm4jikn8uTwqxry0juyetrjh1
開始配置文件:
vim /etc/openldap/slapd.d/cn=config/olcDatabase\=\{2\}hdb.ldif
olcSuffix: dc=root,dc=local
olcRootDN: cn=Manager,dc=root,dc=local
olcRootPW: {SSHA}hWP0W7XKBLTSfDgrG0FxZ5DaEr5lkZov
注: dc中可以設置你想要的用戶名即可
修改監控配置文件:
vim /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=Manager,dc=root,dc=local" read by * none
使配置生效:slaptest -u
返回 config file testing succeeded 算成功
修改數據庫配置: cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
修改權限:chown ldap:ldap -R /var/lib/ldap
生效配置: slaptest -u
啟動ldap服務: systemctl start slapd
設置開機自啟動: systemctl enable slapd
service httpd status
啟動正常, 輸入ldapsearch -x,檢查輸出
# extended LDIF
#
# LDAPv3
# base <> (default) with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# search result
search: 2
result: 32 No such object
# numResponses: 1
安裝phpldapadmin
更新本地yum源, 本地yum源沒有phpldapadmin的包, 所以需要手動更新
配置文件 vi /etc/httpd/conf.d/phpldapadmin.conf
注釋其他,留下以下部分:
Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
Alias /ldapadmin /usr/share/phpldapadmin/htdocs
<Directory /usr/share/phpldapadmin/htdocs>
Order Deny,Allow
Allow from all
</Directory>
修改http配置文件:
vi /etc/httpd/conf/httpd.conf
1.按下esc, 輸入: set nu
注釋102-106, 尾隨加入107-110
102 #<Directory />
103 # AllowOverride none
104 # Require all denied
105 #</Directory>
106
<Directory />
</Directory>
2. 修改監聽端口: 為了防止端口沖突建議修改端口
修改php配置文件: vim /etc/phpldapadmin/config.php
1. 找到並注釋:// $servers->setValue('login','attr','uid');
2. 空白部分加入:
重啟httpd服務:systemctl restart httpd
訪問: http://ip:888/phpldapadmin/
登錄LDAP
DN填寫:cn=Manager,dc=root,dc=local
密碼:root123
注意幾個問題: 有可能密碼錯誤的問題:
1. ldif相關問題在修改配置中不允許有多余空格, 最好原文修改,或者注釋以后不要留下多余空行或空格, 會直接導致httpd server faild !!!
/etc/openldap/slapd.d/cn=config/olcDatabase\=\{2\}hdb.ldif
/etc/openldap/slapd.d/cn=config/olcDatabase\=\{1\}monitor.ldif
2. cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG ---- >> 這條語句執行完不一定數據庫就會生效
發現自己用戶名或者密碼錯誤的時候, 不要在懷疑了, 直接查看數據庫配置
cat slapd.ldif ,看數據庫中配置文件用戶名是否還是系統初始分配的,是,直接修改數據庫配置
vim DB_CONFIG.example --- >> 吧紅圈部分修改成自己的用戶名
dc=root,dc=local
cn=Manager,dc=root,dc=local
重啟服務:
systemctl restart httpd
導入schema:
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
重啟服務:
systemctl restart httpd 完成
如果出現: This base cannot be created with PLA --- >> cd /etc/openldap/base.ldif --- >>寫入如下四行
dn: dc=root,dc=local o: ldap objectclass: dcobject objectclass: organization
創建根節點: ldapadd -f base.ldif -x -D cn=Manager,dc=root,dc=local -W
Enter LDAP Password: root123 adding new entry "dc=root,dc=local"
或者用戶名密碼錯誤, 檢查 1/2hdb.ldif,DB_CONFIG.example 這三個文件中配置的用戶名密碼是否一致
或者只能匿名登錄 ---- >>檢查 1/2hdb.ldif,DB_CONFIG.example 這三個文件中配置的用戶名密碼是否一致
systemctl restart httpd 完成