Centos7 搭建openldap

2023-08-12 11:26:47 2429

Centos7 搭建openldap

什么是LDAP

轻型目录访问协议(Lightweight Directory Access Protocol,LDAP):是一个开放的、中立的、业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息,它是由目录数据库和一套访问协议组成的系统,详情请查看维基百科LDAP

为什么用LDAP

LDAP是开放的Internet标准,市场上或者开源社区的绝大多数软件都支持LDAP协议。简单来说,LDAP协议最大的好处就是能统一管理用户密码,新人报道创建一个用户就能登录公司的所有平台(gitlab、jumpserver、监控等等),离职一键删除即可。

OpenLDAP部署

部署环境:

CentOS 7

openldap2.4.44

phpldapadmin1.2.3

安装相关程序。

# yum -y install openldap openldap-clients openldap-servers

image.png 

以默认配置为基础生成配置文件,并授权启动。

# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

# chown -R ldap:ldap /var/lib/ldap/

# systemctl start slapd.service

# systemctl enable slapd.service

# 查看状态,正常启动则ok

systemctl status slapd.service

image.png

设置OpenLDAP管理员密码。

# 生成加密密码。

# slappasswd -s 123456

{SSHA}BGBbiPYSuAQ4gO9r3M1CrW75HmykIV5k

更改openldap配置

注意:从OpenLDAP 2.4.x下已废弃slapd.conf文件,而配置文件被目录slapd.d所取代 。slapd.d目录内包含的ldif文件中的内容,就是slapd.conf中的内容转化成ldif格式,以构成一棵根为cn=config的目录树,这棵树包含了许多结点,如:cn=include, cn=schema, olcBackend=hdb……。所有配置信息就是这些结点的属性。

# vi /etc/openldap/slapd.d/cn\\=config\\/olcDatabase\\={2}hdb.ldif

olcSuffix: dc=fyd,dc=com     #找到olcSuffix,修改为你的dc

olcRootDN: cn=admin,dc=fyd,dc=com  #找到olcRootDN, 修改为你的用户名

olcRootPW: {SSHA}BGBbiPYSuAQ4gO9r3M1CrW75HmykIV5k    #在文件末尾添加此行,设置是刚才的密码

更改监控认证配置

# vi /etc/openldap/slapd.d/cn\\=config/olcDatabase\\=\\{1\\}monitor.ldif

修改 olcAccess 行中的dn.base=”cn=xxxxxxx”这行为刚才设置的用户名,

如:dn.base=”cn=admin,dc=fyd,dc=com”

测试配置文件

# slaptest -u

image.png

config file testing succeeded   #说明成功了

启动OpenLDAP和开机启动

systemctl start slapd.service

ss -tanlp |grep 389

image.png 

部署LDAP管理工具PHPldapadmin

安装httpd服务器

# yum install httpd -y

修改配置文件httpd.conf

#102

# vi /etc/httpd/conf/httpd.conf

 <Directory /phpldapadmin>

     Options Indexes FollowSymLinks

     AllowOverride None

 </Directory>

安装phpldapadmin:

# yum -y install epel-release

# yum --enablerepo=epel -y install phpldapadmin

修改配置文件

# vi /etc/phpldapadmin/config.php

找到并取消下面几行的注释:

#298,301,305,323,397,398行

 $servers->setValue('server','host','127.0.0.1');

 $servers->setValue('server','port',389);

 $servers->setValue('server','base',array('dc=fyd,dc=com'));  #array里加上openldap配置文件中设置的olcSuffix

 $servers->setValue('login','auth_type','session');

 $servers->setValue('login','attr','dn');

 //$servers->setValue('login','attr','uid');  #把此行注释掉

修改phpldapadmin访问配置文件

# vi /etc/httpd/conf.d/phpldapadmin.conf

# 9行

   <IfModule mod_authz_core.c>

      # Apache 2.4

      # Require local

    </IfModule>

创建基础目录

/etc/openldap目录下新建base.ldif文件,并添加如下内容

# cat /etc/openldap/base.ldif

dn: dc=fyd,dc=com

o: ldap

objectclass: dcObject

objectclass: organization

dc: fyd

访问web管理端

systemctl start httpd.service

访问 http://www.landui.com/phpldapadmin
登陆用户名:cn=admin,dc=fyd,dc=com

image.png


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: