Ubuntu16.04安裝openldap和phpldapadmin


安裝openldap,參考:

https://www.alibabacloud.com/blog/how-to-install-openldap-and-phpldapadmin-on-ubuntu-16-04_594318
https://www.cnblogs.com/hzw97/p/11592244.html#_lab2_3_0

先卸載干凈

sudo apt remove --purge slapd ldap-utils

再安裝

sudo apt-get install slapd ldap-utils

設置管理員密碼,直接確定,后面配置admin的時候會再次配置

配置ldap admin賬號密碼

sudo dpkg-reconfigure slapd

配置dc

組織名

設置admin賬號密碼

database選擇MDB

查看ldap狀態

sudo systemctl status slapd

 

安裝phpldapadmin

1.首先卸載掉老的phpldapadmin

sudo apt remove --purge phpldapadmin

2.安裝

sudo apt-get install phpldapadmin

3.修改config.php

sudo vim /etc/phpldapadmin/config.php

$servers->setValue('server','base',array('dc=hadoop,dc=com'));
$servers->setValue('login','bind_id','cn=admin,dc=hadoop,dc=com');

 

如果出現報錯

Conf phpldapadmin disabled.
apache2_invoke postrm: Disable configuration phpldapadmin.conf
apache2.service is not active, cannot reload.
invoke-rc.d: initscript apache2, action "reload" failed

 

然后訪問頁面,出現的是404

http://master/phpldapadmin

那是phpldapadmin安裝失敗

有可能是apache2的80端口被nginx占用導致的,輸出命令查看80端口的占用情況

sudo netstat -tulpn | grep :80

 可以看到nginx占用了apache2的80端口,但是ldap又需要使用apache2

 

 

 查看apache2的狀態

/etc/init.d/apache2 reload

 

所以apache2服務是有問題的

關閉nginx

sudo service nginx stop

打開apache2

sudo service apache2 start

 

或者也可以修改apache2的默認端口

vim /etc/apache2/ports.conf

修改80成其他的,然后

vim /etc/apache2/sites-enabled/000-default.conf

修改 <VirtualHost *:80>

然后重啟apache2

sudo service apache2 restart

重新安裝phpldapadmin,正常安裝

apt-get install phpldapadmin
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關系樹
正在讀取狀態信息... 完成
下列軟件包是自動安裝的並且現在不需要了:
  gimp-data gimp-help-common gimp-help-en lame libamd2.4.1 libbabl-0.1-0 libcamd2.4.1 libccolamd2.9.1 libcholmod3.0.6
  libgegl-0.3-0 libgimp2.0 libjavascriptcoregtk-1.0-0 libqgsttools-p1 libqt4-svg libqt5multimedia5-plugins
  libqt5multimediawidgets5 libumfpack5.7.1 libwebkitgtk-1.0-0 libwebkitgtk-1.0-common
使用'sudo apt autoremove'來卸載它(它們)。
下列【新】軟件包將被安裝:
  phpldapadmin
升級了 0 個軟件包,新安裝了 1 個軟件包,要卸載 0 個軟件包,有 0 個軟件包未被升級。
需要下載 0 B/727 kB 的歸檔。
解壓縮后會消耗 5,104 kB 的額外空間。
正在預設定軟件包 ...
正在選中未選擇的軟件包 phpldapadmin。
(正在讀取數據庫 ... 系統當前共安裝有 288553 個文件和目錄。)
正准備解包 .../phpldapadmin_1.2.2-5.2ubuntu2.1_all.deb  ...
正在解包 phpldapadmin (1.2.2-5.2ubuntu2.1) ...
正在設置 phpldapadmin (1.2.2-5.2ubuntu2.1) ...

Creating config file /etc/phpldapadmin/config.php with new version
apache2_invoke: Enable configuration phpldapadmin.conf

訪問頁面,成功

http://master/phpldapadmin

 

賬號就是admin和剛剛安裝ldap的時候設置的password

往ldap上導入os上的組織

可以選擇自己新建ou,選擇 Generic: Organisational Unit,新建Group和People兩個ou

 

也可以使用命令批量導入os上的ou

首先安裝遷移工具 migrationtools

sudo apt-get install migrationtools

修改配置

vim /etc/migrationtools/migrate_common.ph

將下面

# Default DNS domain
$DEFAULT_MAIL_DOMAIN =  "padl.com";

# Default base 
$DEFAULT_BASE =  "dc=padl,dc=com";

修改成

# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "example.com";

# Default base
$DEFAULT_BASE = "dc=example,dc=com";

參考了

https://www.cnblogs.com/hzw97/p/11592244.html#_lab2_3_0

 生成文件模板

lintong@master:~/下載$ /usr/share/migrationtools/migrate_base.pl > ./linux_base.ldif

將模板中將ldap上已有的entry去掉,否則會導入失敗

dn: dc=example,dc=com
dc: example
objectClass: top
objectClass: domain

如下報錯

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

去掉后再次導入,XXXXXX是bind_password

sudo ldapadd -x -D "cn=admin,dc=example,dc=com" -w XXXXXX -f ./linux_base.ldif

 導入成功

adding new entry "ou=Protocols,dc=example,dc=com"

adding new entry "nisMapName=netgroup.byuser,dc=example,dc=com"

adding new entry "ou=Services,dc=example,dc=com"

adding new entry "ou=Networks,dc=example,dc=com"

adding new entry "ou=People,dc=example,dc=com"

adding new entry "nisMapName=netgroup.byhost,dc=example,dc=com"

adding new entry "ou=Rpc,dc=example,dc=com"

adding new entry "ou=Netgroup,dc=example,dc=com"

adding new entry "ou=Group,dc=example,dc=com"

adding new entry "ou=Mounts,dc=example,dc=com"

adding new entry "ou=Aliases,dc=example,dc=com"

adding new entry "ou=Hosts,dc=example,dc=com"

 去phpldapadmin上查看

 導入os用戶,/etc/passwd文件中記錄了linux上所有的os用戶

cat /etc/passwd > ./people.txt
/usr/share/migrationtools/migrate_passwd.pl ./people.txt ./people.ldif

遷移到ldap中

sudo ldapadd -x -D "cn=admin,dc=example,dc=com" -w XXXXXX -f ./people.ldif

 去phpldapadmin上查看

導入os組

cat /etc/group > ./group.txt
/usr/share/migrationtools/migrate_group.pl ./group.txt ./group.ldif

 遷移到ldap中

sudo ldapadd -x -D "cn=admin,dc=example,dc=com" -w XXXXXX -f ./group.ldif

 成功

 ldap查詢entry,-W是交互式輸入密碼,-w "密碼"

ldapsearch -x -LLL -H ldap://master:389 -D "cn=admin,dc=example,dc=com" -W -b "dc=example,dc=com"  -s base

 

 

ldap的備份和遷移參考:How To Backup and Restore OpenLDAP


免責聲明!

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



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