第 9 章 加密复制更改日志
如果攻击者获得服务器文件系统的访问权限,加密复制更改日志以增强您的实例的安全性。
更改日志加密使用服务器的 TLS 加密密钥和相同的 PIN 解锁密钥。您必须在服务器启动时手动输入 PIN,或使用 PIN 文件。
目录服务器使用随机生成的对称密码密钥来加密和解密 changelog。服务器为每个配置的密码使用单独的密钥。这些密钥使用服务器 TLS 证书中的公钥进行嵌套,生成的密钥将存储在服务器配置文件中。属性加密的有效强度与用于嵌套的 TLS 密钥的优点相同。如果没有访问服务器的私钥和 PIN,则无法从嵌套的副本中恢复对称密钥。
9.1. 使用命令行加密 changelog
要在复制拓扑中提高安全性,请加密供应商和 hub 上的更改日志。这个步骤描述了如何为 dc=example,dc=com
后缀启用 changelog 加密。
前提条件
- 服务器启用了 TLS 加密。
- 主机是复制拓扑中的供应商或 hub。
流程
将 changelog 导出到
/tmp/changelog.ldif
文件:#
dsconf -D "cn=Directory Manager" ldap://server.example.com replication export-changelog to-ldif -o /tmp/changelog.ldif -r "dc=example,dc=com"
为
dc=example,dc=com
后缀启用更改日志加密:#
dsconf -D "cn=Directory Manager" ldap://server.example.com replication --suffix "dc=example,dc=com" --encrypt
从
/tmp/changelog.ldif
文件中导入 changelog:#
dsconf -D "cn=Directory Manager" ldap://server.example.com replication import-changelog from-ldif -r "dc=example,dc=com" /tmp/changelog.ldif
重启实例:
#
dsctl instance_name restart
验证
- 在 LDAP 目录中进行更改,例如更新条目。
停止实例:
#
dsctl instance_name stop
列出后缀及其对应的数据库:
#
dsconf -D "cn=Directory Manager" ldap://server.example.com backend suffix list
dc=example,dc=com (userroot)记录启用 changelog 加密的数据库名称。
输入以下命令显示 changelog 的部分:
#
dbscan -f /var/lib/dirsrv/slapd-instance_name/db/userroot/replication_changelog.db | tail -50
如果对更改日志进行加密,您只看到加密的数据。
启动该实例。
#
dsctl instance_name start
其他资源