当前位置:首页 > 问答 > 正文

LDAP配置 CentOS运维:如何搭建CentOS上的LDAP服务器?

🚀 CentOS运维:手把手教你搭建LDAP服务器(2025最新版)

刚接手公司服务器的小白运维小张,今天被领导安排了一个“大活”——在CentOS上搭建LDAP服务器,用于统一管理公司内部系统的用户认证,看着空荡荡的服务器,小张摸了摸脑袋:“LDAP是啥?能吃吗?”🤔 别慌,今天咱们就用最接地气的方式,一步步搞定CentOS上的LDAP!

LDAP是啥?为啥要用它?

LDAP(轻量级目录访问协议)就像公司的“通讯录管理员”,能把所有用户的账号、密码、部门信息存在一个地方,其他系统(比如邮箱、OA)都来找它“查户口”。📚 比起每个系统单独管用户,LDAP集中管理更高效、更安全!

准备工作

环境要求:CentOS 8/9(2025年推荐版本)
依赖包

yum install -y openldap openldap-servers openldap-clients compat-openldap

搭建LDAP服务器

初始化数据库

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown -R ldap:ldap /var/lib/ldap/  # 授权给LDAP专用用户

启动服务

systemctl start slapd && systemctl enable slapd

设置管理员密码

生成密码哈希(比如设为admin123):

LDAP配置 CentOS运维:如何搭建CentOS上的LDAP服务器?

slappasswd -s admin123
# 输出类似:{SSHA}xxxxxx(记录这个值!)

创建密码修改文件changepwd.ldif

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}xxxxxx  # 替换为上面的哈希值

应用配置:

ldapadd -Y EXTERNAL -H ldapi:/// -f changepwd.ldif

配置基础架构

导入Schema(模板)

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif

设置域名和权限

编辑chdomain.ldif(替换dc=example,dc=com为你的域名):

LDAP配置 CentOS运维:如何搭建CentOS上的LDAP服务器?

dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=admin,dc=example,dc=com" read by * none
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=example,dc=com
replace: olcRootDN
olcRootDN: cn=admin,dc=example,dc=com
replace: olcRootPW
olcRootPW: {SSHA}xxxxxx  # 管理员密码哈希
add: olcAccess
olcAccess: {0}to attrs=userPassword by dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=admin,dc=example,dc=com" write by * read

应用配置:

ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif

测试LDAP是否可用

添加测试用户

创建base.ldif

dn: dc=example,dc=com
objectClass: top
objectClass: domain
dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People
dn: uid=testuser,ou=People,dc=example,dc=com
objectClass: inetOrgPerson
uid: testuser
cn: Test User
sn: User
userPassword: testpass  # 用户密码

添加用户:

LDAP配置 CentOS运维:如何搭建CentOS上的LDAP服务器?

ldapadd -x -D "cn=admin,dc=example,dc=com" -w admin123 -f base.ldif

查询用户

ldapsearch -x -b "dc=example,dc=com" -D "cn=admin,dc=example,dc=com" -w admin123

进阶配置:启用TLS加密

生成证书

openssl req -new -x509 -nodes -out /etc/openldap/certs/ldap.pem -keyout /etc/openldap/certs/ldap.key -days 365

配置OpenLDAP使用TLS

编辑/etc/openldap/slapd.conf,添加:

TLSCACertificateFile /etc/openldap/certs/ldap.pem
TLSCertificateFile /etc/openldap/certs/ldap.pem
TLSCertificateKeyFile /etc/openldap/certs/ldap.key

重启服务:

systemctl restart slapd

防火墙与SELinux设置

firewall-cmd --add-service=ldap --permanent  # 开放389端口
firewall-cmd --add-service=ldaps --permanent # 开放636端口(TLS)
firewall-cmd --reload
setsebool -P httpd_can_network_connect on  # 允许网络连接(SELinux)

常见问题

  1. 服务启动失败:检查/var/lib/ldap/权限是否为ldap:ldap
  2. 连接超时:确认防火墙放行了389/636端口。
  3. TLS证书报错:检查证书路径和文件权限(建议644)。

通过以上步骤,咱们已经在CentOS上成功搭建了一个基础的LDAP服务器,支持用户管理、权限控制和TLS加密。🎉 后续还可以扩展用户组、密码策略、主从复制等功能,满足更复杂的需求!

参考来源

  • CentOS官方文档(2025-08更新)
  • OpenLDAP社区最佳实践
  • CSDN/51CTO技术博客实战案例

有任何问题?欢迎评论区留言,小张和你一起排坑!💪

发表评论