15.6. 証明書ベースの認証を使用するようにレプリケーションパートナーの設定
レプリケーションパートナーに対するバインド DN およびパスワードを使用する代わりに、証明書ベースの認証を使用できます。
以下の手順では、レプリケーショントポロジーに
server2.example.com
という名前の新規サーバーを追加する方法を説明します。また、証明書ベースの認証を使用して、新規ホストと既存の server1.example.com
との間でレプリカ合意を設定する方法を説明します。
- 両方のホストで、証明書ベースの認証を設定します。詳細については、「証明書ベースの認証の設定」 を参照してください。
server1.example.com
ホスト:- 両方のサーバー (
cn=server1,example,dc=com
やcn=server2,dc=example,dc=com
など) にアカウントを作成し、クライアント証明書を対応するアカウントに追加します。詳細については、以下を参照してください。両方のサーバーは、後でこれらのアカウントと証明書を使用して、相互にレプリケーション接続を確立するときに認証を行います。 cn=repl_server,ou=Groups,dc=example,dc=com
などのグループを作成し、両方のサーバーアカウントを追加します。「グループの使用」を参照してください。- レプリカエントリーを作成し、
nsds5ReplicaBindDNGroup
属性を直前の手順で作成されたグループの DN に設定します。# dsconf -D "cn=Directory Manager" ldap://server1.example.com replication \ enable --suffix="dc=example,dc=com" --role="supplier" --replica-id="7" \ --bind-group-dn="cn=repl_server,ou=Groups,dc=example,dc=com"
- グループが変更したかどうかを Directory Server が確認するレプリカエントリーの間隔を、0 に設定します。
# dsconf -D "cn=Directory Manager" ldap://server1.example.com replication \ set --suffix="dc=example,dc=com" --repl-bind-group-interval=0
- 新しいサーバーを初期化します。
server2.example.com
で、cn=Replication Manager,cn=config
などの一時的なレプリケーションマネージャーアカウントを作成します。server1.example.com
で、認証用に直前の手順でアカウントを使用する一時的なレプリカ合意を作成します。# dsconf -D "cn=Directory Manager" ldap://server2.example.com repl-agmt \ create --suffix="dc=example,dc=com" --host="server1.example.com" --port=636 \ --conn-protocol=LDAPS --bind-dn="cn=Replication Manager,cn=config" \ --bind-passwd="password" --bind-method=SIMPLE --init \ temporary_agreement
この合意は、以前に作成したレプリケーションマネージャーアカウントを使用してデータベースを初期化します。この初期化前に、server2.example.com
のデータベースが空で、関連する証明書を持つアカウントは存在しません。したがって、データベースの初期化前に、証明書を使用してレプリケーションすることはできません。
- 新しいサーバーが初期化された後
server1.example.com
から一時的なレプリカ合意を削除します。# dsconf -D "cn=Directory Manager" ldap://server1.example.com repl-agmt \ delete --suffix="dc=example,dc=com" temporary_agreement
server2.example.com
から一時的なレプリケーションマネージャーアカウントを削除します。# dsconf -D "cn=Directory Manager" ldap://server2.example.com replication \ delete-manager --suffix="dc=example,dc=com" --name="Replication Manager"
- 証明書ベースの認証を使用する両サーバーでレプリカ合意を作成します。
server1.example.com
:# dsconf -D "cn=Directory Manager" ldap://server1.example.com repl-agmt \ create --suffix="dc=example,dc=com" --host="server2.example.com" --port=636 \ --conn-protocol=LDAPS --bind-method="SSLCLIENTAUTH" \ --init example_agreement
server2.example.com
:# dsconf -D "cn=Directory Manager" ldap://server2.example.com repl-agmt \ create --suffix="dc=example,dc=com" --host="server1.example.com" --port=636 \ --conn-protocol=LDAPS --bind-method="SSLCLIENTAUTH" \ --init example_agreement
- レプリケーションが正しく機能していることを確認するには、レプリカ合意に
nsds5replicaLastUpdateStatus
属性を表示します。# dsconf -D "cn=Directory Manager" ldap://server1.example.com repl-agmt status --suffix="dc=example,dc=com" example_agreement
使用できるステータスの詳細は『Red Hat Directory Server の設定、コマンド、およびファイルリファレンス』 の付録 『レプリカ合意の状況』 を参照してください。