Ldap phpldapadmin.conf
rpm -ql openldap
vim /etc/httpd/conf.d/phpldapadmin.conf
Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
Alias /ldapadmin /usr/share/phpldapadmin/htdocs
<Directory /usr/share/phpldapadmin/htdocs>
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
#Allow from 192.168.0.0/16
#Deny from all
#Allow from 127.0.0.1
Allow from all
Allow from ::1
</IfModule>
</Directory>
openLdap(linux 版本)安装及总结
转载
[涛小涛](https://me.csdn.net/liuying1802028915)
发布于2018-09-28 12:52:44
阅读数 3283
[
收藏
]()<br />[展开]()<br />这段时间需要做一个openLdap的需求,前期简单学习了一下Ldap以及openLdap,下面是安装openLdap的过程<br />首先我是按照前辈留下的博文进行安装的,参考如下:<br />[https://www.cnblogs.com/linuxws/p/9084455.html](https://www.cnblogs.com/linuxws/p/9084455.html)<br />https://blog.csdn.net/computer1024/article/details/78172785<br />感谢这两位前辈,但是在安装过程中也遇到了一些坑,这里做一个记录.<br />前期踩过的坑:<br />刚开始我是使用centos 7.5 64位进行安装的,前面安装都没有问题,但是最后安装完phpldapadmin服务后,访问不了,经过多次尝试,都没有成功,后来索性换了系统,我才用了 centos 6.5 64位<br /> <br />一.环境准备<br />1. 腾讯云环境 centos6.5 64位<br />2. 关闭防火墙<br />博文中用的是这个命令:
systemctl stop firewalld.service systemctl disable firewalld.service 但是如果是centos 7以下的系统 systemctl 命令不好使了,所以使用下面的命令
servcie iptables stop ``--临时关闭防火墙
| chkconfig iptables ``off
--永久关闭防火墙
|
| —- |
二.OPENLDAP服务搭建
1、安装LDAP服务器和客户端,migrationtools工具包
yum install -y openldap-servers openldap-clients migrationtools
2、设置openldap管理员密码
1. slappasswd
2.
3. 然后根据提示输入密码:
4. New password: 123456
5. Re-enter new password: 123456
6.
7. 会返回加密的密码字符串,保存好这个字符串
8. {SSHA}f13zZnx/b4LQ/ErM+Rf9VSVEJqIE7yHM
9.
10. ---------------------
11.
12. 本文来自 Justin_Chia 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/computer1024/article/details/78172785?utm_source=copy
3、更改openldap配置
查看安装了哪些文件(如果熟悉目录结构可以略过)
1. rpm -ql openldap
2. rpm -ql openldap-servers
修改配置
博文中是这句:
vim /etc/openldap/slapd.d/cn\=config\/olcDatabase\={2}hdb.ldif
但是我执行的时候发现这个一个空的文件,说明路径应该有问题, vim 命令找不到该文件就会自动创建该文件(这是踩得第一个坑)
然后我是一级目录一级目录的进入的
1. [root@VM_60_154_centos /]# cd /etc/openldap/slapd.d/
2. [root@VM_60_154_centos slapd.d]# ll
3. total 8
4. drwxr-x--- 3 ldap ldap 4096 Sep 28 10:46 cn=config
5. -rw-r----- 1 ldap ldap 1281 Sep 28 10:41 cn=config.ldif
6. [root@VM_60_154_centos slapd.d]# cd cn\=config
7. [root@VM_60_154_centos cn=config]# ll
8. total 84
9. drwxr-x--- 2 ldap ldap 4096 Sep 28 10:49 cn=schema
10. -rw-r----- 1 ldap ldap 59398 Sep 28 10:41 cn=schema.ldif
11. -rw-r----- 1 ldap ldap 663 Sep 28 10:41 olcDatabase={0}config.ldif
12. -rw-r----- 1 ldap ldap 596 Sep 28 10:41 olcDatabase={-1}frontend.ldif
13. -rw-r----- 1 ldap ldap 692 Sep 28 10:46 olcDatabase={1}monitor.ldif
14. -rw-r----- 1 ldap ldap 1338 Sep 28 10:45 olcDatabase={2}bdb.ldif
15. [root@VM_60_154_centos cn=config]# vim olcDatabase={2}bdb.ldif
这样就能避免是空文件的问题,接下来
1. 找到olcSuffix,修改为你的dc,如:
2. dc=mypaas,dc=com
3.
4. 下一行olcRootDN, 修改为你的用户名,如:
5. cn=Manager,dc=mypaas,dc=com
6.
7. 在文件末尾添加一行,设置刚才的密码:
8. olcRootPW: {SSHA}f13zZnx/b4LQ/ErM+Rf9VSVEJqIE7yHM
9.
10. ---------------------
11.
12. 本文来自 Justin_Chia 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/computer1024/article/details/78172785?utm_source=copy
4、更改监控认证配置
1. vim /etc/openldap/slapd.d/cn\=config\/olcDatabase\={1}monitor.ldif
2.
3. 修改 olcAccess 中的dn.base=”cn=xxxxxxx”这行为刚才设置的用户名,如:
4. dn.base=”cn=Manager,dc=mypaas,dc=com”
5.
6. ---------------------
7.
8. 本文来自 Justin_Chia 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/computer1024/article/details/78172785?utm_source=copy
这一条按照博文中的直接修改就可以了
5、设置DB Cache
1. cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
2. chown -R ldap:ldap /var/lib/ldap/
6、测试配置文件
1. slaptest -u
2. 末尾出现configfile testing successed 说明成功了
这里也没有出现问题,出现 configfile testing successed 说明成功了
7、启动OpenLDAP和开机启动
博文中是这样的命令:
1. systemctl start slapd.service
2. systemctl enable slapd.service
因为是centos6.5 系统 systemctl 命令用不了 修改为如下:
1. service slapd status 查看slapd 的状态
2. service slapd start 开启slapd 服务
3. service slapd enable 设置 slapd 服务开机自启动 这条命令应该有问题,但是对于我的安装没有多大影响,所以没有再查,感兴趣的可以自己查查
8、导入模板
ls /etc/openldap/schema/*.ldif | xargs -I {} sudo ldapadd -Y EXTERNAL -H ldapi:/// -f {}
这里导入模板也没有问题,执行完这句命令后,执行结果为:
1. 导入模板:
2.
3. [root@VM_60_154_centos cn=config]# ls /etc/openldap/schema/*.ldif | xargs -I {} sudo ldapadd -Y EXTERNAL -H ldapi:/// -f {}
4. SASL/EXTERNAL authentication started
5. SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
6. SASL SSF: 0
7. adding new entry "cn=collective,cn=schema,cn=config"
8.
9. SASL/EXTERNAL authentication started
10. SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
11. SASL SSF: 0
12. adding new entry "cn=corba,cn=schema,cn=config"
13.
14. SASL/EXTERNAL authentication started
15. SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
16. SASL SSF: 0
17. adding new entry "cn=core,cn=schema,cn=config"
18. ldap_add: Other (e.g., implementation specific) error (80)
19. additional info: olcAttributeTypes: Duplicate attributeType: "2.5.4.2"
20.
21. SASL/EXTERNAL authentication started
22. SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
23. SASL SSF: 0
24. adding new entry "cn=cosine,cn=schema,cn=config"
25.
26. SASL/EXTERNAL authentication started
27. SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
28. SASL SSF: 0
29. adding new entry "cn=duaconf,cn=schema,cn=config"
30.
31. SASL/EXTERNAL authentication started
32. SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
33. SASL SSF: 0
34. adding new entry "cn=dyngroup,cn=schema,cn=config"
35.
36. SASL/EXTERNAL authentication started
37. SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
38. SASL SSF: 0
39. adding new entry "cn=inetorgperson,cn=schema,cn=config"
40.
41. SASL/EXTERNAL authentication started
42. SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
43. SASL SSF: 0
44. adding new entry "cn=java,cn=schema,cn=config"
45.
46. SASL/EXTERNAL authentication started
47. SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
48. SASL SSF: 0
49. adding new entry "cn=misc,cn=schema,cn=config"
50.
51. SASL/EXTERNAL authentication started
52. SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
53. SASL SSF: 0
54. adding new entry "cn=nis,cn=schema,cn=config"
55.
56. SASL/EXTERNAL authentication started
57. SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
58. SASL SSF: 0
59. adding new entry "cn=openldap,cn=schema,cn=config"
60.
61. SASL/EXTERNAL authentication started
62. SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
63. SASL SSF: 0
64. adding new entry "cn=pmi,cn=schema,cn=config"
65.
66. SASL/EXTERNAL authentication started
67. SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
68. SASL SSF: 0
69. adding new entry "cn=ppolicy,cn=schema,cn=config"
三、安装Web管理服务
1、 安装httpd服务器
yum install httpd -y
按照以上命令进行 Yum安装,没有遇到问题 看到complete 即成功
2、修改配置文件httpd.conf
博文中是这样:
1. vim /etc/httpd/conf/httpd.conf
2. 找到AllowOverride一行,修改none为all
3. 如果想修改端口号,修改Listen 80一行
我的文件具体如下:
1. <Directory />
2. Options FollowSymLinks
3. AllowOverride none
4. </Directory>
5.
6. 将以上 none 改为 all
7.
8. <Directory />
9. Options FollowSymLinks
10. AllowOverride all
11. </Directory>
修改端口,按照上面博文中的即可
3、启动服务,测试页面
博文中的命令如下:
1. systemctl start httpd.service
2. systemctl enable httpd.service
3.
4. curl http://127.0.0.1/
同样,因为是centos 6.5 要换成如下命令
1. service httpd status 查看状态
2. service httpd start 开启服务
3. service httpd enable 设置开机自启动,这句命令可能有问题,因为对我没有影响,我就没管
4.
5.
6. curl http://127.0.0.1/ 看一下通不通
4、安装phpldapadmin
博文中如下:
1. yum install phpldapadmin
2.
3. (如果找不到软件包,重新设置一下yum源)
4. yum localinstall http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
我直接执行 yum install phpldapadmin 需要询问的时候 y 即可
5、修改配置文件
按照博文中的进行修改没有毛病
先找到该文件
vim /etc/phpldapadmin/config.php
找到如下语句并取消下面几行的注释:(要仔细哦)
1. $servers->setValue(‘server’,’host’,’127.0.0.1’);
2. $servers->setValue(‘server’,’port’,389);
3. $servers->setValue(‘server’,’base’,array(‘dc=mypaas,dc=com’)); # array里加上openldap配置文件中设置的olcSuffix
4. $servers->setValue(‘login’,’auth_type’,’session’);
5. $servers->setValue(‘login’,’attr’,’dn’);
把这一行注释掉
#$servers->setValue(‘login’,’attr’,’uid’);
6、修改访问配置文件,允许任意ip访问
这里我直接贴我的吧
找到该配置文件:
vim /etc/httpd/conf.d/phpldapadmin.conf
我的文件如下:
1. <Directory /usr/share/phpldapadmin/htdocs>
2. <IfModule mod_authz_core.c>
3. # Apache 2.4
4. Require local
5. Require ip 192.168.5
6. </IfModule>
7. <IfModule !mod_authz_core.c>
8. # Apache 2.2
9. Order Deny,Allow
10. # Deny from all
11. # Allow from 127.0.0.1
12. Allow from all
13. Allow from ::1
14. </IfModule>
15. </Directory>
192.168.5 是我的ip网段
7、创建基础目录
在/etc/openldap目录下添加base.ldif文件
cd /etc/openldap/
vim base.ldif
1. dn: dc=mypaas,dc=com
2. o: ldap
3. objectclass: dcObject
4. objectclass: organization
5. dc: mypaas
1. 创建1个管理员账号
先到根目录下:
cd /
vim test.ldif
1. dn: dc=mypaas,dc=com
2. objectclass: dcObject
3. objectclass: organization
4. o: SYS.Inc
5. dc: mypaas
6.
7. dn: cn=Manager,dc=mypaas,dc=com
8. objectclass: organizationalRole
9. cn: Manager
增加:
ldapadd -x -D "cn=Manager,dc=mypaas,dc=com" -W -f test.ldif
验证
ldapsearch -x -b 'dc=mypaas,dc=com' '(objectClass=*)'
2. 创建1个具有部门属性的员工
vim test2.ldif
1. dn: ou=it,dc=mypaas,dc=com
2. ou: it
3. objectClass: organizationalUnit
4.
5. dn: cn=test1,ou=it,dc=mypaas,dc=com
6. ou: it
7. cn: test1
8. sn: t1
9. objectClass: inetOrgPerson
10. objectClass: organizationalPerson
这里其实是先创建1个部门”it”,再在”it”部门创建了1个员工,实际上是两条命令。
插入数据库
ldapadd -x -D "cn=Manager,dc=mypaas,dc=com" -W -f test2.ldif
验证
ldapsearch -x -b 'dc=mypaas,dc=com' '(objectClass=*)'
8、重启httpd服务
service httpd restart
9、访问web管理端
1. 访问 http://ip/phpldapadmin
2. 我的ip是 139.199.30.176 端口也没改过 还是80
3. 所以是:http://139.199.30.176/phpldapadmin
4. 登陆用户名:cn=Manager,dc=mypaas,dc=com
之前用centos 7.5 64位安装的时候 访问 http://139.199.30.176/phpldapadmin 有问题 说我没有权限,那个截图我忘截了,换成centos6.4 可以了 勉强先这样吧
访问 http://139.199.30.176/phpldapadmin 后
用户名:cn=Manager,dc=mypaas,dc=com
密码:123456 (之前第二步中的第二小步设置的)
登陆成功后:
记录先做到这里,方便自己,也方便他人,如果有什么问题,可以多多交流
不积跬步,无以至千里
不积小流,无以成江海