安装openldap,参考:


https://www.alibabacloud.com/blog/how-to-install-openldap-and-phpldapadmin-on-ubuntu-16-04_594318




安装phpldapadmin

1.首先卸载掉老的phpldapadmin


sudo apt remove --purge phpldapadmin


2.安装


sudo apt-get install phpldapadmin


如果出现报错


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


 Ubuntu16.04安装openldap和phpldapadmin_nginx


 然后访问页面,出现的是404


http://master/phpldapadmin


Ubuntu16.04安装openldap和phpldapadmin_nginx_02


那是phpldapadmin安装失败

有可能是apache2的80端口被nginx占用导致的,输出命令查看80端口的占用情况


sudo netstat -tulpn | grep :80


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

 Ubuntu16.04安装openldap和phpldapadmin_php_03


 查看apache2的状态


/etc/init.d/apache2 reload


 Ubuntu16.04安装openldap和phpldapadmin_apache_04


 所以apache2服务是有问题的

关闭nginx


sudo service nginx stop


打开apache2


sudo service apache2 start


 Ubuntu16.04安装openldap和phpldapadmin_apache_05

或者也可以修改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


 Ubuntu16.04安装openldap和phpldapadmin_apache_06

账号就是admin和刚刚安装ldap的时候设置的password

往ldap上导入os上的组织

可以选择自己新建ou,选择 Generic: Organisational Unit,新建Group和People两个ou

Ubuntu16.04安装openldap和phpldapadmin_nginx_07


也可以使用命令批量导入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";


 生成文件模板


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上查看

Ubuntu16.04安装openldap和phpldapadmin_apache_08

 导入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上查看

Ubuntu16.04安装openldap和phpldapadmin_apache_09

导入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


 成功

Ubuntu16.04安装openldap和phpldapadmin_php_10

 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


 Ubuntu16.04安装openldap和phpldapadmin_apache_11