LDAP安裝、LDAP數據遷移、LDAP卸載指南及PHPldapAdmin管理軟件安裝


LDAP安裝、LDAP數據遷移、LDAP卸載指南及PHPldapAdmin管理軟件安裝

第一節 LDAP安裝篇

第一步 yum安裝ldap

yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtools

第二步 查看是否安裝成功

slapd -VV

安裝成功會顯示如下信息:

[root@localhost ~]# slapd -VV
@(#) $OpenLDAP: slapd 2.4.44 (Sep 30 2020 17:16:39) $
	mockbuild@x86-02.bsys.centos.org:/builddir/build/BUILD/openldap-2.4.44/openldap-2.4.44/servers/slapd

第三步 設置管理員密碼

輸入如下命令設置密碼,注意需要輸入兩次, 將加密后的SSHA保存,下面配置文件中會用到

[root@localhost ~]# slappasswd

成功后會輸入如下信息:

[root@localhost openldap]# slappasswd
New password: 
Re-enter new password: 
{SSHA}D7hX37v1NxCcBWeC26C8nO3VvF0GlohX

第四步 修改配置文件

1、輸入一下命令使用vim 修改配置文件, 需要修改三個地方

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

修改信息不多,請局部復制,不要全局復制如下輸出信息。只需要修改cn dc dc的信息,另外添加一行密碼配置,其他保持不變。

修改信息如下:

# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 073e2f66
dn: olcDatabase={2}hdb
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=test,dc=com    #這里修改了,主要是修改dc dc的信息
olcRootDN: cn=root,dc=test,dc=com #這里修改了,主要就是修改cn dc dc的信息
olcRootPW: {SSHA}RE7si/p5dzFbzWjVR8MB1H5XOxUDvBKP #新加一行,密碼為上面生成的密碼字符串,注意空格
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
structuralObjectClass: olcHdbConfig
entryUUID: 0f68f392-fe05-103a-8f4d-053fce3f128a
creatorsName: cn=config
createTimestamp: 20210208025701Z
entryCSN: 20210208025701.104594Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20210208025701Z

修改完cat一下看一下文件是否修改成功了

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

2、修改第二個配置文件

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

只需要修改cn dc dc的信息,其他保持不變。

修改信息如下:

# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 008df9d0
dn: olcDatabase={1}monitor
objectClass: olcDatabaseConfig
olcDatabase: {1}monitor
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
 al,cn=auth" read by dn.base="cn=root,dc=test,dc=com" read by * none #修改cn dc dc的信息
structuralObjectClass: olcDatabaseConfig
entryUUID: 0f68eafa-fe05-103a-8f4c-053fce3f128a
creatorsName: cn=config
createTimestamp: 20210208025701Z
entryCSN: 20210208025701.104375Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20210208025701Z                             

修改完cat一下看一下文件是否修改成功了。

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

第五步 測試一下配置文件修改是否正確

命令行輸入如下命令:

slaptest -u

成功會輸入如下命令:

60222a02 ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif"
60222a02 ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif"
config file testing succeeded

前面兩行error不用管,它的意思是我們修改了這兩個文件,這一步檢查失敗請檢查配置文件。

第六步 啟動Ladp服務

systemctl start slapd
systemctl enable slapd

查看是否啟動成功

netstat -tunlp | egrep "389|636"

輸出如下:

[root@localhost openldap]# netstat -tunlp | egrep "389|636"
tcp        0      0 0.0.0.0:389             0.0.0.0:*               LISTEN      26161/slapd         
tcp6       0      0 :::389                  :::*                    LISTEN      26161/slapd   

如果起不來百度無法解決的話,就參考第三章卸載篇,程序安裝LDAP吧。

第七步運行基礎的schema文件

依次執行以下文件(可以寫個腳本執行)

cd /etc/openldap/schema/
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f collective.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f corba.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f core.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f duaconf.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f dyngroup.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f java.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f misc.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f openldap.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f pmi.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f ppolicy.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f core.ldif

第七步如果不執行后面也不會報錯。但是遷移數據的時候肯定會出問題!!!

第八步 查看LDAP數據庫信息

輸入如下命令

ldapsearch -LLL -W -x -D "cn=root,dc=test,dc=com" 

該命令要輸入我們在第三步設置的管理員密碼。"cn=root,dc=test,dc=com" 相當於我們的賬號。也可以輸出以下指定密碼命令,該命令可以不輸入密碼。

ldapsearch -LLL -w "你的密碼" -x -D "cn=root,dc=test,dc=com" 

正常執行后輸出如下:

[root@localhost openldap]# ldapsearch -LLL -W -x -D "cn=root,dc=test,dc=com" 
Enter LDAP Password: 
No such object (32)

No such object (32)這個輸出就是正常的,因為我們沒有網LDAP里面添加過任何數據,所以查詢出來是空的。到這里為止LDAP就已經成功安裝了。

若出現以下錯誤:

[root@localhost openldap]# ldapsearch -LLL -W -x -D "cn=root,dc=test,dc=com" 
Enter LDAP Password: 
ldap_bind: Invalid credentials (49)

提示信息很明顯,要么是你密碼輸錯了,要么就是你在第四步配置的密碼字符串配置錯了。檢查一下配置文件,或者從第三步重新再來。

第二篇 安裝PHPldapAdmin管理軟件

第一步 安裝Apache和PHP:

[root@localhost ~]# yum -y install httpd php php-ldap php-gd php-mbstring php-pear php-bcmath php-xml

第二步 然后安裝phpldapadmin:

[root@localhost ~]# yum -y install epel-release
[root@localhost ~]# yum --enablerepo=epel -y install phpldapadmin

第三步 修改配置文件

[root@localhost ~]# vim /etc/phpldapadmin/config.php
#397行取消注釋,398行添加注釋
$servers->setValue('login','attr','dn');
// $servers->setValue('login','attr','uid');

[root@localhost ~]# vim /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>

第四步 修改Apache的端口

一般來說80端口會被占用,所以需要改一下端口,如果不需要的可以跳過此步驟。

vim /etc/httpd/conf/httpd.conf 

將配置文件中的Listen 80 改成Listen 8081

第五步 設置開機自啟並啟動Apache:

[root@localhost ~]# systemctl enable httpd
[root@localhost ~]# systemctl start httpd

第六步 瀏覽器訪問phpldapadmin:

IP地址:8081/phpldapadmin

如果運行報錯:

Forbidden
You don't have permission to access /phpldapadmin/ on this server.

修改Apache主配置文件httpd.conf

注釋掉102-105添加107-110

[root@cdh-server1 ~]# vi /etc/httpd/conf/httpd.conf
	102 #<Directory />
    103 #    AllowOverride none
    104 #    Require all denied
    105 #</Directory>
    106
<Directory />
    Options Indexes FollowSymLinks
    AllowOverride None
</Directory>

第七步 登錄phpldapadmin:

登錄的賬號是 "cn=root,dc=test,dc=com" 別傻乎乎就填的root 這是登錄不進去的。
"cn=root,dc=test,dc=com"
密碼是你設置的密碼。

第三篇 數據遷移篇

第一步 獲取數據

在原始服務器上執行以下命令

ldapsearch -LLL -W -x -D "cn=root,dc=test,dc=com" -b "dc=test,dc=com" > ldap_data_2021.ldif

以上命令是查詢 dc=test,dc=com 域下的所有信息。將這些信息重定向到ldap_data_2021.ldif這個文件中.

使用cat 查看一下是否數據是否已經備份到ldap_data_2021.ldif文件。如果公司有多個域,請將命令執行多次,修改命令中-b 后面的域名就行。

cat ldap_data_2021.ldif

注意: 以上命令只適合數據量小的時候,數據量在10000以內可以這么做,如果超過了請就選擇其他方法。

第二步 插入數據

將第一步生成的文件上傳到新服務器上。然后執行以下命令:

為了節約時間就用-w指定密碼,這樣子就不用輸密碼了

ldapadd -x -D "cn=root,dc=test,dc=com" -w "你的密碼" -f ldap_data_2021.ldif

輸出信息如下:

adding new entry "uid=ldapuser1,ou=People,dc=test,dc=com"

adding new entry "uid=ldapuser2,ou=People,dc=test,dc=com"

adding new entry "uid=ldapuser3,ou=People,dc=test,dc=com"

adding new entry "uid=ldapuser4,ou=People,dc=test,dc=com"

adding new entry "uid=ldapuser5,ou=People,dc=test,dc=com"

adding new entry "uid=ldapuser6,ou=People,dc=test,dc=com"

.....

插入數據常見錯誤如下:

adding new entry "dc=test,dc=com"
ldap_add: Already exists (68)

這個錯誤表示你的數據庫里面已經有了這個記錄,去ldap_data_2021.ldif吧這條數據刪了,然后繼續執行腳本。直到最后一個人插入結束。

第四篇 LDAP卸載篇

停止openldap

systemctl stop slapd
systemctl disable slapd

卸載

yum -y remove openldap-servers openldap-clients

刪除殘留文件

rm -rf /var/lib/ldap

刪除ldap用戶

userdel ldap

刪除openldap目錄

rm -rf /etc/openldap


免責聲明!

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



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