1. 安装OpenLDAP
1.1 环境准备
lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.5.1804 (Core)
Release: 7.5.1804
下载 openldap, 默认yum已搭建好,yum未搭建成功可以查看我的yum搭建
@(#) $OpenLDAP: slapd 2.4.44 (May 16 2018 09:55:53) $
mockbuild@c1bm.rdu2.centos.org:/builddir/build/BUILD/openldap-2.4.44/openldap-2.4.44/servers/slapd
设置管理员密码, 会返回一串加密字符串,保存好
slappasswd -s l root123
{SSHA}y9iku13lm4jikn8uTwqxry0juyetrjh1
开始配置文件:
vim /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif
olcSuffix: dc=root,dc=local
olcRootDN: cn=Manager,dc=root,dc=local
olcRootPW: {SSHA}hWP0W7XKBLTSfDgrG0FxZ5DaEr5lkZov
注: dc中可以设置你想要的用户名即可
修改监控配置文件:
vim /etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
al,cn=auth" read by dn.base="cn=Manager,dc=root,dc=local" read by * none
使配置生效:slaptest -u
返回 config file testing succeeded 算成功
修改数据库配置: cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
修改权限:chown ldap:ldap -R /var/lib/ldap
生效配置: slaptest -u
启动ldap服务: systemctl start slapd
设置开机自启动: systemctl enable slapd
service httpd status
启动正常, 输入ldapsearch -x,检查输出
# extended LDIF
#
# LDAPv3
# base <> (default) with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# search result
search: 2
result: 32 No such object
# numResponses: 1
安装phpldapadmin
更新本地yum源, 本地yum源没有phpldapadmin的包, 所以需要手动更新
配置文件 vi /etc/httpd/conf.d/phpldapadmin.conf
注释其他,留下以下部分:
Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
Alias /ldapadmin /usr/share/phpldapadmin/htdocs
<Directory /usr/share/phpldapadmin/htdocs>
Order Deny,Allow
Allow from all
</Directory>
修改http配置文件:
vi /etc/httpd/conf/httpd.conf
1.按下esc, 输入: set nu
注释102-106, 尾随加入107-110
102 #<Directory />
103 # AllowOverride none
104 # Require all denied
105 #</Directory>
106
<Directory />
</Directory>
2. 修改监听端口: 为了防止端口冲突建议修改端口
修改php配置文件: vim /etc/phpldapadmin/config.php
1. 找到并注释:// $servers->setValue('login','attr','uid');
2. 空白部分加入:
重启httpd服务:systemctl restart httpd
访问: http://ip:888/phpldapadmin/
登录LDAP
DN填写:cn=Manager,dc=root,dc=local
密码:root123
注意几个问题: 有可能密码错误的问题:
1. ldif相关问题在修改配置中不允许有多余空格, 最好原文修改,或者注释以后不要留下多余空行或空格, 会直接导致httpd server faild !!!
/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif
/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif
2. cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG ---- >> 这条语句执行完不一定数据库就会生效
发现自己用户名或者密码错误的时候, 不要在怀疑了, 直接查看数据库配置
cat slapd.ldif ,看数据库中配置文件用户名是否还是系统初始分配的,是,直接修改数据库配置
vim DB_CONFIG.example --- >> 吧红圈部分修改成自己的用户名
dc=root,dc=local
cn=Manager,dc=root,dc=local
重启服务:
systemctl restart httpd
导入schema:
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
重启服务:
systemctl restart httpd 完成
如果出现: This base cannot be created with PLA --- >> cd /etc/openldap/base.ldif --- >>写入如下四行
dn: dc=root,dc=local o: ldap objectclass: dcobject objectclass: organization
创建根节点: ldapadd -f base.ldif -x -D cn=Manager,dc=root,dc=local -W
Enter LDAP Password: root123 adding new entry "dc=root,dc=local"
或者用户名密码错误, 检查 1/2hdb.ldif,DB_CONFIG.example 这三个文件中配置的用户名密码是否一致
或者只能匿名登录 ---- >>检查 1/2hdb.ldif,DB_CONFIG.example 这三个文件中配置的用户名密码是否一致
systemctl restart httpd 完成