千家信息网

OpenLDAP如何安装配置

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下OpenLDAP如何安装配置,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、OpenLDAP简介Ope
千家信息网最后更新 2026年11月02日OpenLDAP如何安装配置

小编给大家分享一下OpenLDAP如何安装配置,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

一、OpenLDAP简介

OpenLDAP是轻型目录访问协议(Lightweight Directory Access Protocol, LDAP)的自由和开源实现,在其OpenLDAP许可证下发行,并已经被包含在众多流行的Linux发行版中。

使用轻量级目录访问协议(LDAP)构建集中的身份验证系统可以减少管理成本,增强安全性,避免数据复制的问题,并提高数据的一致性。

通常,在实际工作环境中,都会通过LDAP来构建一个统一的账号管理、身份验证平台,实现SSO单点登录机制。

二、写在前面

LDAP这个东西,是公司准备实现统一用户身份认证所了解到的,之前完全没有概念, 网上搜索了一些基础,理论知识,简直蒙圈了,实在是太抽象了。后来一想, 理论的知识先大概有个了解, 先动手让ldap跑起来再说其他, 在动手做的时候,如果遇到问题在回头过去查阅资料,说不定慢慢就会理解了。

第一次搭建OpenLDAP的时候,查阅了很多论坛、博客的帖子,发现好多都是讲的不够完善,或者是点到即止,在安装和配置遇到问题的时候,总要浪费很大一部分时间来游走于各大搜索引擎去寻根问药,相当痛苦,下面就是结合网友以及自己尝试摸索的过程,总结成文,希望能够帮助到有需要的朋友。

配置环境:

服务器操作系统: CentOS 6.5 x86_64 , RHEL/Suse 应该都类似

OpenLDAP版本:OpenLDAP 2.4

其实如果不是对LDAP各种参数要求都十分严格的情况下,比较建议采用 yum 的方式安装。因为相关依赖环境,功能都十分全面,对于初学者,强烈建议第一次使用yum来安装。

准备环境:

确保SELinux关闭:

# getenforce1、临时关闭# setenforce 02、永久关闭# vi /etc/selinux/config将SELINUX=enforcing 改为 SELINUX=disabled重启机器即可

设定iptables防火墙规则:

# vim /etc/sysconfig/iptables*filter:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT-A INPUT -p icmp -j ACCEPT-A INPUT -i lo -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 389 -j ACCEPT -s 192.168.1.0/16-A INPUT -m state --state NEW -m tcp -p tcp --dport 636 -j ACCEPT -s 192.168.1.0/16-A INPUT -j REJECT --reject-with icmp-host-prohibited-A FORWARD -j REJECT --reject-with icmp-host-prohibitedCOMMIT重新加载后如下: # iptables -LACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:sshACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:httpACCEPT     tcp  --  192.168.1.0/16       anywhere            state NEW tcp dpt:ldapACCEPT     tcp  --  192.168.1.0/16       anywhere            state NEW tcp dpt:ldaps

同步系统时间:

# ntpdate time.nist.gov

三、安装OpenLDAP服务

1、yum 安装所需软件

# yum install -y openldap-*# yum install -y compat-openldap   # 这个包和主从配置有很大关系

2、安装完成后,准备配置文件

# cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf

OpenLDAP相关配置文件:

/etc/openldap/slapd.conf 主配置文件,管理员dn,密码,日志配置,权限等设置

3、创建LDAP管理员密码

LDAP可以支持明文密码,但是我们强烈建议使用加密密码。 通过 slappasswd 命令创建加密密码,返回一串密文,先复制保存一下,下一步需要在LDAP配置文件中使用。

ps. 这里我输入的密码是: ldap

# slappasswd New password: Re-enter new password: {SSHA}5EkFHScR0hN0r3oRhd0aP4tyJ0ByopCd

4、进入 /etc/openldap 目录下,编辑 slapd.conf 配置文件。

主要修改的地儿,suffix, rootdn, rootpw, rootdn 其实就是openldap的管理员。

优化:

checkpoint 2048 10 # 设置把内存中的数据写回数据文件的操作,此处的设置表示每达到 2048K 或者 10分钟执行一次 checkpoint, 即写入数据文件的操作。

cachesize 1000 # 设置LDAP可以缓存的记录数

# cp /etc/openldap/slapd.conf /etc/openldap/slapd.conf.ori# vi /etc/openldap/slapd.conf....# enable server status monitoring (cn=monitor)database monitoraccess to *        by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read        by dn.exact="cn=Manager,dc=test,dc=com" read        by * none######################################################################## database definitions#######################################################################database        bdbsuffix          "dc=test,dc=com"checkpoint      1024 15rootdn          "cn=Manager,dc=test,dc=com"# Cleartext passwords, especially for the rootdn, should# be avoided.  See slappasswd(8) and slapd.conf(5) for details.# Use of strong authentication encouraged.# rootpw                secret# rootpw                {crypt}ijFYNcSNctBYgrootpw                  {SSHA}5EkFHScR0hN0r3oRhd0aP4tyJ0ByopCd.......保存退出。

当然,也可以如下设置明文密码:

5、BerkeleyDB配置。 拷贝 DB_CONFIG 文件到指定目录, 否则后续会报错: warning - no DB_CONFIG file found in directory /var/lib/ldap

PS: OpenLDAP默认使用的是伯克利数据库作为后台数据存储介质,在OpenLDAP-Servers包中已经包含了,直接把配置文件复制到相关目录即可。

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

6、删除 /etc/openldap/slapd.d 目录下所有的文件,否则后续在使用 ldapadd 命令的时候会报错

PS: 默认情况下,/etc/openldap/slapd.d目录下有一些默认的配置文件,必须删除,然后重新建议,这一步很重要

这是因为 2.4 和 2.3 配置文件兼容性问题导致, 参考: http://www.openldap.org/doc/admin24/appendix-common-errors.html

# rm -rf /etc/openldap/slapd.d/*

7、配置相应目录权限

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

8、启动 LDAP 的 slapd 服务, 并设置开机启动

# chkconfig slapd on# service slapd start

9、重新生成 slapd.d 下的配置文件

# slaptest  -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.dconfig file testing succeeded然后重新赋予配置文件的权限:# chown -R ldap:ldap /etc/openldap/slapd.d

10、重新启动 LDAP 的 slapd 服务

# service slapd restart

使用 netstat -tulpn 查看服务是否正常启动

11、开启 SSL

# vim /etc/sysconfig/ldapSLAPD_LDAPS=yes

我们可以看到, OpenLDAP监听端口:

默认监听端口: 389 (明文数据传输)

加密监听端口: 636 (加密数据传输)

四、给OpenLDAP添加日志功能,添加如下内容

1、编辑 /etc/openldap/slapd.conf

# vim /etc/openldap/slapd.confloglevel 296

2、编辑 /etc/rsyslog.conf

# vim /etc/rsyslog.conflocal4.*   /var/log/ldap.log

3、重启服务

# service rsyslog restart# service slapd restart

五、迁移用户数据到OpenLDAP

系统用户通常保存在 /etc/passwd, /etc/shadow文件内,所以我们需要迁移用户数据到openldap数据库。但是LDAP只能识别特定格式的文件,即后缀为 ldif 的文件(也是文本文件),所以不能直接使用 /etc/passwd, /etc/shadow直接导入。 最简单的方法是使用padl提供的迁移工具包,是一系列perl编写的脚本, migrationtools 工具,之前的openldap包中已经包含了这些脚本,但是在redhat6.5中已经没有了,要单独下载。

1、安装配置 migrationtools

# yum install -y migrationtools

2、切换到 migrationtool 目录下,进行基本配置

# cd /usr/share/migrationtools/编辑migrate_common.ph# vi  migrate_common.ph...# Default DNS domain$DEFAULT_MAIL_DOMAIN = "test.com";# Default base$DEFAULT_BASE = "dc=test,dc=com";.......保存退出。:-)

3、生成 ldif 文件

a、在目录MigrationTools里面使用migrate_base.pl脚本生成基本的数据结构

# ./migrate_base.pl > /tmp/base.ldif导入数据:## -w 指定你在slapd.conf中设置的管理员密码,也可以使用 -W,交互式输入密码## -f 指定数据文件的路径## 我们之前设定的密码: ldap# ldapadd -x -D "cn=Manager,dc=test,dc=com" -w ldap -f /tmp/base.ldif查询已经导入数据库的数据:# ldapsearch -h -H ldap://192.168.1.35 -b "dc=test,dc=com"

b、在目录MigrationTools里面使用migrate_passwd.pl 和 migrate_group.pl 脚本将 /etc/passwd, /etc/group文件中的用户转化为 ldap 可以识别的数据结构 ldif 格式的文件

# ./migrate_passwd.pl /etc/passwd /tmp/passwd.ldif# ./migrate_group.pl /etc/group /tmp/group.ldif导入数据:# ldapadd -x -D "cn=Manager,dc=test,dc=com" -w ldap -f /tmp/passwd.ldif# ldapadd -x -D "cn=Manager,dc=test,dc=com" -w ldap -f /tmp/group.ldif

c、在实际生产环境中,并不会把 /etc/passwd 和 /etc/group 中的用户全部用 ldap 管理起来, 我们只需要让实际用户被 ldap 管理即可,所以生产中按照如下规则操作:

删除 ldap 数据库中的所有数据:

# ldapdelete -x -D "cn=Manager,dc=test,dc=com" -w ldap -r "dc=test,dc=com"

建立测试用户 ldapuser01, ldapuser02,把这两个用户导入ldap数据库中

# useradd ldapuser01# useradd ldapuser02# passwd ldapuser01# passwd ldapuser02我们只把需要的用户导入 ldap 数据库中# grep ldap* /etc/passwd > /tmp/passwd# grep ldap* /etc/group > /tmp/group# ./migrate_base.pl > /tmp/base.ldif # ./migrate_passwd.pl /tmp/passwd > /tmp/passwd.ldif# ./migrate_group.pl /tmp/group > /tmp/group.ldif# ldapadd -x -D "cn=Manager,dc=test,dc=com" -w ldap -f /tmp/base.ldif# ldapadd -x -D "cn=Manager,dc=test,dc=com" -w ldap -f /tmp/passwd.ldif# ldapadd -x -D "cn=Manager,dc=test,dc=com" -w ldap -f /tmp/group.ldif

至此,我们就把用户导入到OpenLDAP数据库中了。

六、安装 phpLDAPadmin

安装EPEL仓库

# rpm -ivh http://mirrors.ukfast.co.uk/sites/dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rp

安装phpLDAPadmin

# yum install -y phpldapadmin

修改 phpldapadmin配置文件(该文件会自动创建),添加访问权限

# vim /etc/httpd/conf.d/phpldapadmin.conf在这行后面添加Allow from ::1Allow from 192.168.1    //这里修改为你自己的ip段

修改php配置文件, 禁止自动登录和php登录配置

# vim /etc/phpldapadmin/config.php#(line 398)//$servers->setValue('login','attr','uid');#(line 530)$servers->newServer('ldap_pla');$servers->setValue('server','name','LDAP Server');$servers->setValue('server','host','127.0.0.1');$servers->setValue('server','port',389);$servers->setValue('server','base',array('dc=test,dc=com'));$servers->setValue('login','auth_type','session');$servers->setValue('login','bind_id','dc=test,dc=com');$servers->setValue('login','bind_pass','ldap');$servers->setValue('server','tls',false);

配置完成后,启动apache

# chkconfig httpd on# service httpd start

然后通过浏览器进行访问: http://192.168.1.35/ldapadmin/ (这个ip 换成你自己的实际ip)

这里需要注意的是: Login DN: 一定要是完整的 DN, 而不是 RDN。

密码就是我们前面 slappasswd 命令设置的密码, 也就是ldap管理员 rootdn(Manager)的密码,然后就登录成功了。

七、安装 LAM(和phpLDAPadmin功能相似的GUI工具,可选 )

下载ldap-account-manager包,我这里下载的是较老的版本4.6 ,(最新版应该 6.0了)。

如果没有lamp环境# yum install -y httpd php php-ldap php-gd# unzip ldap-account-manager-4.6.RC1.zip# mv ldap-account-manager-4.6.RC1 /var/www/html/lam# chown -R apache:apache /var/www/html/lam顺便编辑之前的 /etc/phpldapadmin/conf.php 中增加一行# vim /etc/httpd/conf.d/phpldapadmin.confAlias /lam /var/www/html/lam

配置

# cd /var/www/html/lam/config# cp config.cfg_sample config.cfg# cp lam.conf_sample lam.conf# vim lam.confserverURL: ldap://192.168.1.35:389admins: cn=Manager,dc=test,dc=comtreesuffix: dc=test,dc=org其他 dc=my-domain 全部更换为: dc=yourdomain

重启 httpd 服务

# service httpd restart


然后通过浏览器访问即可, http://192.168.1.35/lam ,更改为你自己的 ip

然后通过 Manager 账号以及密码就可以登录成功了。

以上是"OpenLDAP如何安装配置"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

配置 文件 数据 密码 用户 目录 管理 数据库 服务 环境 管理员 登录 实际 建议 时候 权限 系统 脚本 问题 加密 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 天津市摩尔互联网科技 互联网科技公司华为 互联网电商科技 艾特科技互联网 多迪互联网科技有限公司 广西拼得多互联网科技有限公司 云创客互联网科技公司 互联网科技博主是什么意思 字节跳动和互联网科技 金融科技与互联网金融相同和不同 消费医药和互联网科技 浙南科技城互联网大厦建设工程 企晟互联网信息科技有限公司 中科明德北京互联网科技 上海钢联属于互联网科技股吗 伍佰万互联网科技怎么赚钱 互联网科技快讯热点 云鲸互联网络科技有限公司 中国互联网公司的科技投入 上海旺乐尼互联网科技有限公司 亿人帮互联网科技有限公司 互联网与科技发展 美国互联网前沿科技 西藏七维空间互联网科技有限公司 成都互联网科技公司100强 民营互联网公司国防科技 领航科技大厦互联网公司 从那以后互联网科技有限公司 工业互联网科技创业 全球科技与互联网公司市值变化
0