「linux学习」之CentOS下ldap服务器搭建 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搭建

yum install openldap openldap-* -y
安装成功后执行: slapd -VV

@(#) $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

「linux学习」之CentOS下ldap服务器搭建
1. 安装OpenLDAP

启动正常, 输入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的包, 所以需要手动更新

 
安装php:
yum install 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 />

  Options FollowSymLinks
  AllowOverride None
  Order deny,allow
  allow from all

  </Directory> 

2. 修改监听端口:  为了防止端口冲突建议修改端口

  semanage port -a -t http_port_t -p tcp 888
  Listen 888
  ServerName localhost:888

修改php配置文件: vim /etc/phpldapadmin/config.php

 1. 找到并注释:// $servers->setValue('login','attr','uid');

 2. 空白部分加入:

「linux学习」之CentOS下ldap服务器搭建
1. 安装OpenLDAP

 重启httpd服务:systemctl restart httpd

「linux学习」之CentOS下ldap服务器搭建
1. 安装OpenLDAP

访问: http://ip:888/phpldapadmin/

登录LDAP
DN填写:cn=Manager,dc=root,dc=local
密码:root123

 「linux学习」之CentOS下ldap服务器搭建
1. 安装OpenLDAP

注意几个问题: 有可能密码错误的问题:

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 ,看数据库中配置文件用户名是否还是系统初始分配的,是,直接修改数据库配置

「linux学习」之CentOS下ldap服务器搭建
1. 安装OpenLDAP

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"

   「linux学习」之CentOS下ldap服务器搭建
1. 安装OpenLDAP

      或者用户名密码错误, 检查 1/2hdb.ldif,DB_CONFIG.example 这三个文件中配置的用户名密码是否一致

      或者只能匿名登录 ---- >>检查 1/2hdb.ldif,DB_CONFIG.example 这三个文件中配置的用户名密码是否一致

systemctl restart httpd  完成

「linux学习」之CentOS下ldap服务器搭建
1. 安装OpenLDAP