第14章 レプリケーション変更ログの暗号化

攻撃者がサーバーのファイルシステムにアクセスできる場合は、レプリケーション changelog を暗号化してインスタンスのセキュリティーを強化します。

changelog 暗号化は、サーバーの TLS 暗号化キーと同じ PIN を使用してキーのロックを解除します。サーバーの起動時に PIN を手動で入力するか、PIN ファイルを使用する必要があります。

Directory Server は、無作為に生成された対称暗号キーを使用して、changelog を暗号化および復号化します。サーバーは、設定された暗号ごとに異なるキーを使用します。これらの鍵は、サーバーの TLS 証明書から公開鍵を使用してラップされ、生成したラップ済みキーがサーバーの設定ファイル内に保存されます。属性暗号化の効果的な強度は、ラップに使用されるサーバーの TLS キーの強度と同じです。サーバーの秘密鍵と PIN にアクセスできないと、ラップ済みのコピーから対称キーを復旧することができません。

14.1. コマンドラインを使用した changelog の暗号化

レプリケーショントポロジーのセキュリティーを向上させるには、サプライヤーおよびハブの changelog を暗号化します。この手順では、dc=example,dc=com 接尾辞に対して changelog 暗号化を有効にする方法を説明します。

前提条件

  • サーバーの TLS 暗号化が有効になっている。
  • ホストは、レプリケーショントポロジー内のサプライヤーまたはハブです。

手順

  1. 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"
  2. dc=example,dc=com 接尾辞の changelog 暗号化を有効にします。

    # dsconf -D "cn=Directory Manager" ldap://server.example.com replication --suffix "dc=example,dc=com" --encrypt
  3. /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
  4. インスタンスを再起動します。

    # dsctl instance_name restart

検証

  1. エントリーの更新など、LDAP ディレクトリーに変更を加えます。
  2. インスタンスを停止します。

    # dsctl instance_name stop
  3. 接尾辞とそれに対応するデータベースをリスト表示します。

    # dsconf -D "cn=Directory Manager" ldap://server.example.com backend suffix list
    dc=example,dc=com (userroot)

    changelog の暗号化を有効にするデータベースの名前を書き留めておきます。

  4. 以下のコマンドを実行して、changelog の一部を表示します。

    # dbscan -f /var/lib/dirsrv/slapd-instance_name/db/userroot/replication_changelog.db | tail -50

    changelog が暗号化されている場合は、暗号化されたデータのみが表示されます。

  5. インスタンスを起動します。

    # dsctl instance_name start