CentOS OpenLDAP安装与配置详解
一、环境说明
系统:CentOS 7.4

软件:OpenLDAP 2.4.44
安装方式:yum安装
服务器角色:ldapmaster(主服务器)和 ldaPSlave(从服务器)
二、安装前准备
1、设置主机名:
- #hostnamectl static sethostname ldapmaster.domain.com
- #hostnamectl transient sethostname ldapmaster.domain.com
2、关闭SELinux和防火墙:
- systemctl stop firewalld
- systemctl disable firewalld
- sed i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
- setenforce 0
三、安装与配置
1. 安装OpenLDAP相关软件包

在主从服务器上都执行以下命令:
- yum y install openldapservers openldap openldapclients openldapdevel
2. 配置slapd.conf
主服务器ldapmaster配置文件部分内容:
- include /etc/openldap/schema/ppolicy.schema
- include /etc/openldap/schema/sudo.schema
- modulepath /usr/lib/openldap
- modulepath /usr/lib64/openldap
- moduleload syncprov.la
- moduleload ppolicy.la
- moduleload memberof.la
- TLSCACertificateFile /etc/openldap/certs/cabundle.crt
- TLSCertificateFile /etc/openldap/certs/server.crt
- TLSCertificateKeyFile /etc/openldap/certs/server.key
- TLSVerifyClient never
- overlay ppolicy
- ppolicy_default cn=default,ou=policy,dc=tt2kj,dc=com
- overlay dynlist
- dynlistattrset inetOrgPerson labeledURI
- overlay memberof
- overlay syncprov
- syncprovcheckpoint 100 10
从服务器ldapslave配置文件部分内容:
- TLSCACertificateFile /etc/openldap/certs/cabundle.crt
- TLSCertificateFile /etc/openldap/certs/slave.crt
- TLSCertificateKeyFile /etc/openldap/certs/slave.key
- TLSVerifyClient never
- syncrepl rid=003
- provider=ldap://120.xx.xx.xx:389/
- type=refreshAndPersist
- interval=01:00:00:00
- searchbase="dc=domain,dc=com"
- schemachecking=on
- bindmethod=simple
- binddn="cn=Admin,dc=domain,dc=com"
- credentials=password
- scope=sub
- attrs="*,+"
- schemachecking=off
- retry="60 +"
3. 启动slapd服务并生成文件
- systemctl start slapd
- cd /etc/openldap/
- slaptest f slapd.conf F slapd.d/
四、客户端安装与配置
1、安装NSS LDAP认证工具:

- yum y install nsspamldapd
2、配置OpenLDAP登录验证:
使用authconfigtui
进行相应的配置。
3、创建用户目录:
- authconfig enablemkhomedir update
五、TLS传输加密
主服务器ldapmaster:
- cd /etc/pki/tls/certs
- make server.key && make server.csr && openssl x509 in server.csr out server.crt req signkey server.key days 3650
从服务器ldapslave:
1、生成密钥对的slave.csr, slave.key,上传到主服务器签名后回传。
2、签名后的配置重启服务:
- openssl x509 in slave.csr out slave.crt req signkey slave.key days 3650
六、sudo配置
1、服务端加载sudo.schema。
2、客户端配置使用sudo:
- tls_checkpeer no
- uri ldaps://ldapmaster.domain.com:636/
- sudoers_base ou=sudoers,dc=tt2kj,dc=com
七、基于用户和组的主机控制
原本想使用基于ip或主机名,但最终决定使用基于用户和组的控制策略,具体步骤详见上述配置。
八、FAQs
1、如何修改OpenLDAP的管理员密码?
- slappasswd
按照提示输入新密码,系统会显示加密后的密码,将该加密密码替换olcRootPW
字段中的值即可。
2、如何生成自签名证书?
- openssl req new x509 nodes sha256 days 3650 keyout server.key out server.crt
按照提示填写相关信息,生成自签名证书和私钥。