这段时间需要做一个openLdap的需求,前期简单学习了一下Ldap记忆openLdap,下面是安装openLdap的过程
首先我是按照前辈留下的博文进行安装的,参考如下:
https://www.cnblogs.com/linuxws/p/9084455.html
https://blog.****.net/computer1024/article/details/78172785
感谢这两位前辈,但是在安装过程中也遇到了一些坑,这里做一个记录.
前期踩过的坑:
刚开始我是使用centos 7.5 64位进行安装的,前面安装都没有问题,但是最后安装完phpldapadmin服务后,访问不了,经过多次尝试,都没有成功,后来索性换了系统,我才用了 centos 6.5 64位
一.环境准备
1. 腾讯云环境 centos6.5 64位
2. 关闭防火墙
博文中用的是这个命令:
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管理员密码
slappasswd
然后根据提示输入密码:
New password: 123456
Re-enter new password: 123456
会返回加密的密码字符串,保存好这个字符串
{SSHA}f13zZnx/b4LQ/ErM+Rf9VSVEJqIE7yHM
---------------------
本文来自 Justin_Chia 的**** 博客 ,全文地址请点击:https://blog.****.net/computer1024/article/details/78172785?utm_source=copy
3、更改openldap配置
查看安装了哪些文件(如果熟悉目录结构可以略过)
rpm -ql openldap
rpm -ql openldap-servers
修改配置
博文中是这句:
vim /etc/openldap/slapd.d/cn\=config\/olcDatabase\={2}hdb.ldif
但是我执行的时候发现这个一个空的文件,说明路径应该有问题, vim 命令找不到该文件就会自动创建该文件(这是踩得第一个坑)
然后我是一级目录一级目录的进入的
[[email protected]_60_154_centos /]# cd /etc/openldap/slapd.d/
[[email protected]_60_154_centos slapd.d]# ll
total 8
drwxr-x--- 3 ldap ldap 4096 Sep 28 10:46 cn=config
-rw-r----- 1 ldap ldap 1281 Sep 28 10:41 cn=config.ldif
[[email protected]_60_154_centos slapd.d]# cd cn\=config
[[email protected]_60_154_centos cn=config]# ll
total 84
drwxr-x--- 2 ldap ldap 4096 Sep 28 10:49 cn=schema
-rw-r----- 1 ldap ldap 59398 Sep 28 10:41 cn=schema.ldif
-rw-r----- 1 ldap ldap 663 Sep 28 10:41 olcDatabase={0}config.ldif
-rw-r----- 1 ldap ldap 596 Sep 28 10:41 olcDatabase={-1}frontend.ldif
-rw-r----- 1 ldap ldap 692 Sep 28 10:46 olcDatabase={1}monitor.ldif
-rw-r----- 1 ldap ldap 1338 Sep 28 10:45 olcDatabase={2}bdb.ldif
[[email protected]_60_154_centos cn=config]# vim olcDatabase={2}bdb.ldif
这样就能避免是空文件的问题,接下来
找到olcSuffix,修改为你的dc,如:
dc=mypaas,dc=com
下一行olcRootDN, 修改为你的用户名,如:
cn=Manager,dc=mypaas,dc=com
在文件末尾添加一行,设置刚才的密码:
olcRootPW: {SSHA}f13zZnx/b4LQ/ErM+Rf9VSVEJqIE7yHM
---------------------
本文来自 Justin_Chia 的**** 博客 ,全文地址请点击:https://blog.****.net/computer1024/article/details/78172785?utm_source=copy
4、更改监控认证配置
vim /etc/openldap/slapd.d/cn\=config\/olcDatabase\={1}monitor.ldif
修改 olcAccess 中的dn.base=”cn=xxxxxxx”这行为刚才设置的用户名,如:
dn.base=”cn=Manager,dc=mypaas,dc=com”
---------------------
本文来自 Justin_Chia 的**** 博客 ,全文地址请点击:https://blog.****.net/computer1024/article/details/78172785?utm_source=copy
这一条按照博文中的直接修改就可以了
5、设置DB Cache
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown -R ldap:ldap /var/lib/ldap/
6、测试配置文件
slaptest -u
末尾出现configfile testing successed 说明成功了
这里也没有出现问题,出现 configfile testing successed 说明成功了
7、启动OpenLDAP和开机启动
博文中是这样的命令:
systemctl start slapd.service
systemctl enable slapd.service
因为是centos6.5 系统 systemctl 命令用不了 修改为如下:
service slapd status 查看slapd 的状态
service slapd start 开启slapd 服务
service slapd enable 设置 slapd 服务开机自启动 这条命令应该有问题,但是对于我的安装没有多大影响,所以没有再查,感兴趣的可以自己查查
8、导入模板
ls /etc/openldap/schema/*.ldif | xargs -I {} sudo ldapadd -Y EXTERNAL -H ldapi:/// -f {}
这里导入模板也没有问题,执行完这句命令后,执行结果为:
导入模板:
[[email protected]_60_154_centos cn=config]# ls /etc/openldap/schema/*.ldif | xargs -I {} sudo ldapadd -Y EXTERNAL -H ldapi:/// -f {}
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=collective,cn=schema,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=corba,cn=schema,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=core,cn=schema,cn=config"
ldap_add: Other (e.g., implementation specific) error (80)
additional info: olcAttributeTypes: Duplicate attributeType: "2.5.4.2"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=cosine,cn=schema,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=duaconf,cn=schema,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=dyngroup,cn=schema,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=inetorgperson,cn=schema,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=java,cn=schema,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=misc,cn=schema,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=nis,cn=schema,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=openldap,cn=schema,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=pmi,cn=schema,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=ppolicy,cn=schema,cn=config"
这里面的内容我还没有研究过,感兴趣的人可以自己看看
三、安装Web管理服务
1、 安装httpd服务器
yum install httpd -y
按照以上命令进行 Yum安装,没有遇到问题 看到complete 即成功
2、修改配置文件httpd.conf
博文中是这样:
vim /etc/httpd/conf/httpd.conf
找到AllowOverride一行,修改none为all
如果想修改端口号,修改Listen 80一行
我的文件具体如下:
<Directory />
Options FollowSymLinks
AllowOverride none
</Directory>
将以上 none 改为 all
<Directory />
Options FollowSymLinks
AllowOverride all
</Directory>
修改端口,按照上面博文中的即可
3、启动服务,测试页面
博文中的命令如下:
systemctl start httpd.service
systemctl enable httpd.service
curl http://127.0.0.1/
同样,因为是centos 6.5 要换成如下命令
service httpd status 查看状态
service httpd start 开启服务
service httpd enable 设置开机自启动,这句命令可能有问题,因为对我没有影响,我就没管
curl http://127.0.0.1/ 看一下通不通
4、安装phpldapadmin
博文中如下:
yum install phpldapadmin
(如果找不到软件包,重新设置一下yum源)
yum localinstall http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
我直接执行 yum install phpldapadmin 需要询问的时候 y 即可
5、修改配置文件
按照博文中的进行修改没有毛病
先找到该文件
vim /etc/phpldapadmin/config.php
找到如下语句并取消下面几行的注释:(要仔细哦)
$servers->setValue(‘server’,’host’,’127.0.0.1’);
$servers->setValue(‘server’,’port’,389);
$servers->setValue(‘server’,’base’,array(‘dc=mypaas,dc=com’)); # array里加上openldap配置文件中设置的olcSuffix
$servers->setValue(‘login’,’auth_type’,’session’);
$servers->setValue(‘login’,’attr’,’dn’);
把这一行注释掉
#$servers->setValue(‘login’,’attr’,’uid’);
6、修改访问配置文件,允许任意ip访问
这里我直接贴我的吧
找到该配置文件:
vim /etc/httpd/conf.d/phpldapadmin.conf
我的文件如下:
<Directory /usr/share/phpldapadmin/htdocs>
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
Require ip 192.168.5
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
# Deny from all
# Allow from 127.0.0.1
Allow from all
Allow from ::1
</IfModule>
</Directory>
192.168.5 是我的ip网段
7、创建基础目录
在/etc/openldap目录下添加base.ldif文件
cd /etc/openldap/
vim base.ldif
dn: dc=mypaas,dc=com
o: ldap
objectclass: dcObject
objectclass: organization
dc: mypaas
1. 创建1个管理员账号
先到根目录下:
cd /
vim test.ldif
dn: dc=mypaas,dc=com
objectclass: dcObject
objectclass: organization
o: SYS.Inc
dc: mypaas
dn: cn=Manager,dc=mypaas,dc=com
objectclass: organizationalRole
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
dn: ou=it,dc=mypaas,dc=com
ou: it
objectClass: organizationalUnit
dn: cn=test1,ou=it,dc=mypaas,dc=com
ou: it
cn: test1
sn: t1
objectClass: inetOrgPerson
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管理端
访问 http://ip/phpldapadmin
我的ip是 139.199.30.176 端口也没改过 还是80
所以是:http://139.199.30.176/phpldapadmin
登陆用户名: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 (之前第二步中的第二小步设置的)
登陆成功后:
记录先做到这里,方便自己,也方便他人,如果有什么问题,可以多多交流
不积跬步,无以至千里
不积小流,无以成江海