安装openldap,参考:
1 | https://www.alibabacloud.com/blog/how-to-install-openldap-and-phpldapadmin-on-ubuntu-16-04_594318 |
先卸载干净
1 | sudo apt remove --purge slapd ldap-utils |
再安装
1 | sudo apt-get install slapd ldap-utils |
设置管理员密码,直接确定,后面配置admin的时候会再次配置
配置ldap admin账号密码
1 | sudo dpkg-reconfigure slapd |
配置dc
组织名
设置admin账号密码
database选择MDB
否
是
否
查看ldap状态
1 | sudo systemctl status slapd |
安装phpldapadmin
1.首先卸载掉老的phpldapadmin
1 | sudo apt remove --purge phpldapadmin |
2.安装
1 | sudo apt-get install phpldapadmin |
3.修改config.php
1 | sudo vim /etc/phpldapadmin/config.php |
如果出现报错
1 | Conf phpldapadmin disabled. |
然后访问页面,出现的是404
1 | http://master/phpldapadmin |
那是phpldapadmin安装失败
有可能是apache2的80端口被nginx占用导致的,输出命令查看80端口的占用情况
1 | sudo netstat -tulpn | grep :80 |
可以看到nginx占用了apache2的80端口,但是ldap又需要使用apache2
查看apache2的状态
1 | /etc/init.d/apache2 reload |
所以apache2服务是有问题的
关闭nginx
1 | sudo service nginx stop |
打开apache2
1 | sudo service apache2 start |
或者也可以修改apache2的默认端口
1 | vim /etc/apache2/ports.conf |
修改80成其他的,然后
1 | vim /etc/apache2/sites-enabled/000-default.conf |
修改 <VirtualHost *:80>
然后重启apache2
1 | sudo service apache2 restart |
重新安装phpldapadmin,正常安装
1 | apt-get install phpldapadmin |
访问页面,成功
1 | http://master/phpldapadmin |
账号就是admin和刚刚安装ldap的时候设置的password
往ldap上导入os上的组织
可以选择自己新建ou,选择 Generic: Organisational Unit,新建Group和People两个ou
也可以使用命令批量导入os上的ou
首先安装迁移工具 migrationtools
1 | sudo apt-get install migrationtools |
修改配置
1 | vim /etc/migrationtools/migrate_common.ph |
将下面
1 | # Default DNS domain |
修改成
1 | # Default DNS domain |
参考了
1 | https://www.cnblogs.com/hzw97/p/11592244.html#_lab2_3_0 |
生成文件模板
1 | lintong@master:~/下载$ /usr/share/migrationtools/migrate_base.pl > ./linux_base.ldif |
将模板中将ldap上已有的entry去掉,否则会导入失败
1 | dn: dc=example,dc=com |
如下报错
1 | adding new entry "dc=example,dc=com" |
去掉后再次导入,XXXXXX是bind_password
1 | sudo ldapadd -x -D "cn=admin,dc=example,dc=com" -w XXXXXX -f ./linux_base.ldif |
导入成功
1 | adding new entry "ou=Protocols,dc=example,dc=com" |
去phpldapadmin上查看
导入os用户,/etc/passwd文件中记录了linux上所有的os用户
1 | cat /etc/passwd > ./people.txt |
迁移到ldap中
1 | sudo ldapadd -x -D "cn=admin,dc=example,dc=com" -w XXXXXX -f ./people.ldif |
去phpldapadmin上查看
导入os组
1 | cat /etc/group > ./group.txt |
迁移到ldap中
1 | sudo ldapadd -x -D "cn=admin,dc=example,dc=com" -w XXXXXX -f ./group.ldif |
成功
ldap查询entry,-W是交互式输入密码,-w “密码”
1 | 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