OpenLDAP 从零开始:(一)TLS 配置
发布网友
发布时间:2024-10-01 21:00
我来回答
共1个回答
热心网友
时间:2024-10-16 11:13
在上一章中,我们构建了使用 Argon2 的 OpenLDAP 套件,并配置了 slapd。虽然密码存储的安全性得到了提升,但客户端与服务器间的通信仍然以明文形式进行,存在中间人攻击的风险。为了保护 LDAP 连接,本章将对 slapd 进行 TLS 配置,确保数据传输的安全性和完整性。
TLS 协议,全称传输层安全协议(Transport Layer Security),是 SSL(Secure Sockets Layer)的后续版本。它通过使用证书保护端到端通信的机密性、完整性和认证功能,免受第三方的窥探和篡改。IETF 在 1999 年将 TLS 确立为标准之一,目前最新的 TLS 版本为 1.3。为了平衡安全性与兼容性,本章将遵循 Mozilla SSL 配置生成器,采用同时启用 TLS 1.2 和 TLS 1.3 的配置。
若已部署根证书颁发机构或使用常见根证书颁发机构(如 Let's Encrypt)签发的证书,则可跳过证书签发部分。在执行 TLS 配置前,确保以 root 身份运行相关命令。
对于根证书和服务器证书的签发,本文将使用 OpenSSL 命令行工具。首先编写 OpenSSL 配置文件,然后生成 4096 位 RSA 私钥和可存储 20 年的根证书。接着,为服务器证书编写配置文件,确保 commonName 和 sans 部分与服务器主机名一致。在完成根证书和服务器证书的生成后,使用根证书验证服务器证书的有效性,并为 server.key 设置适当的权限以保护私钥。
若系统中未安装常见的根证书,可通过包管理器安装。接下来,只需准备好服务器证书和私钥,即可进行 TLS 配置。
配置 TLS 需要编写 LDIF 文件,并利用 slapmodify 工具为 cn=config 添加属性。首先,添加 olcTLSCACertificateFile、olcTLSCertificateFile 和 olcTLSCertificateKeyFile 属性,分别对应 CA 证书文件、服务器证书文件和服务器私钥文件。接着,指定密码套件,选择支持 DHE 和 ECDHE 的 TLS 密码套件,以实现完全向前保密(PFS)。同时,添加 olcTLSDHParamFile 指定 DH 参数文件,确保与服务器私钥位数匹配。最后,运行 slapmodify 使 TLS 参数生效,并检查安全强度系数,确保操作的安全性。
启动 slapd 服务后,可使用 ldapsearch 以简单绑定方式尝试明文连接服务器,服务器将拒绝并要求使用加密连接。增加 -ZZ 参数,可测试 TLS 连接,并在连接失败时退出。若连接成功,结果将显示使用 TLS 的安全性。
完成 TLS 配置后,我们已确保了 LDAP 连接的安全性。下一章将深入探索如何向目录服务中插入条目、启用覆盖功能,并试验动态特性,为实际应用打下基础。