「linux学习」之CentOS下ldap服务器搭建

2021-05-17 15:34:40 浏览数 (1)

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

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

yum localinstall http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

安装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. 空白部分加入:

重启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  完成

0 人点赞