配置LDAP服务器(以OpenLDAP为例)的详细步骤如下:

安装OpenLDAP
Ubuntu/Debian
sudo apt update sudo apt install slapd ldap-utils
CentOS/RHEL
sudo yum install openldap-servers openldap-clients
初始化配置
设置管理员密码
sudo dpkg-reconfigure slapd # Debian/Ubuntu
或手动配置:
sudo slappasswd # 生成加密密码(复制输出的SSHA哈希)
编辑基础配置(LDIF文件)
创建 init.ldif:
dn: olcDatabase={1}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}xxxxxxxx # 替换为生成的密码哈希
应用配置:
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f init.ldif
创建基础目录结构
创建 base.ldif:

dn: dc=example,dc=com objectClass: top objectClass: dcObject objectClass: organization o: Example Organization dc: example dn: ou=people,dc=example,dc=com objectClass: organizationalUnit ou: people dn: ou=groups,dc=example,dc=com objectClass: organizationalUnit ou: groups
导入结构:
sudo ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f base.ldif
添加用户/组
添加用户(user.ldif)
dn: uid=john,ou=people,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
uid: john
cn: John Doe
sn: Doe
givenName: John
userPassword: {SSHA}xxxxxxx # 用slappasswd生成
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/john
添加组(group.ldif)
dn: cn=developers,ou=groups,dc=example,dc=com objectClass: posixGroup cn: developers gidNumber: 1000 memberUid: john
导入数据:
sudo ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f user.ldif sudo ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f group.ldif
配置TLS加密(可选)
生成自签名证书
sudo openssl req -x509 -newkey rsa:4096 -keyout /etc/ldap/ldap.key -out /etc/ldap/ldap.crt -days 365 -nodes -subj "/CN=ldap.example.com"
设置权限
sudo chown openldap:openldap /etc/ldap/ldap.* sudo chmod 400 /etc/ldap/ldap.key
配置LDAP使用TLS
创建 tls.ldif:
dn: cn=config changetype: modify add: olcTLSCertificateFile olcTLSCertificateFile: /etc/ldap/ldap.crt - add: olcTLSCertificateKeyFile olcTLSCertificateKeyFile: /etc/ldap/ldap.key
应用配置:

sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f tls.ldif
防火墙与启动服务
sudo ufw allow ldap # 默认端口389 sudo ufw allow ldaps # 加密端口636 sudo systemctl restart slapd sudo systemctl enable slapd
验证操作
搜索所有条目
ldapsearch -x -LLL -H ldap:/// -b dc=example,dc=com "(objectClass=*)"
测试用户登录
ldapwhoami -x -D "uid=john,ou=people,dc=example,dc=com" -W
常用管理命令
- 添加条目:
ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f file.ldif - 修改条目:
ldapmodify -x -D "cn=admin,dc=example,dc=com" -W -f change.ldif - 删除条目:
ldapdelete -x -D "cn=admin,dc=example,dc=com" -W "uid=john,ou=people,dc=example,dc=com"
客户端配置
Linux客户端(SSSD或libnss-ldap)
sudo apt install libnss-ldap libpam-ldap ldap-utils
配置 /etc/ldap/ldap.conf:
BASE dc=example,dc=com
URI ldap://ldap.example.com
TLS_CACERT /etc/ssl/certs/ca-certificates.crt
故障排查
- 检查日志:
journalctl -u slapd - 测试配置:
slaptest -u - 强制重建索引:
sudo slapindex
注意:生产环境建议使用专业CA证书,并配置ACL控制访问权限,详细文档参考:OpenLDAP官方文档
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/292667.html

