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