1.9. レプリケーションとTLS
サーバー間でレプリケーションを設定している場合は、盗聴を防ぐためにレプリケーション トラフィックを暗号化 (StartTLS) するのが一般的です。 これは、上で行った認証を伴う暗号化の使用とは異なります。 このセクションでは、TLS 認証の作業を基礎にしていきます。
ここでの前提条件は、セクション 1.6「レプリケーション」 [p. 123] に従ってプロバイダとコンシューマ間のレプリケーションを設定していることです。 1.8] セクション 129. 「TLS」 [p. XNUMX] に従って、プロバイダーでの認証用に TLS を設定しました。 XNUMX]。
前述したように、レプリケーションの (私たちにとっての) 目的は、LDAP サービスの高可用性です。 プロバイダーでの認証には TLS があるため、コンシューマーでも同様の認証が必要になります。 ただし、これに加えて、レプリケーション トラフィックを暗号化する必要があります。 残りの作業は、コンシューマのキーと証明書を作成し、それに応じて構成することです。 別の CA 証明書を作成する必要がないように、プロバイダーでキー/証明書を生成し、必要なマテリアルをコンシューマーに転送します。
1. プロバイダー上で、
保持ディレクトリ (最終的な転送に使用されます) を作成し、次にコンシューマの秘密キーを作成します。
mkdir ldap02-ssl cd ldap02-ssl
sudo certtool --generate-privkey \
-- ビット 1024 \
--outfile ldap02_slapd_key.pem
情報ファイルを作成し、 ldap02.info、コンシューマ サーバーの場合は、それに応じて値を調整します。
組織 = 会社例 cn = ldap02.example.com
tls_www_サーバー暗号化キー署名キーの有効期限日 = 3650
コンシューマの証明書を作成します。
sudo certtool --generate-certificate \
--load-privkey ldap02_slapd_key.pem \
--load-ca-certificate /etc/ssl/certs/cacert.pem \
--load-ca-privkey /etc/ssl/private/cakey.pem \
--テンプレート ldap02.info \
--outfile ldap02_slapd_cert.pem
CA 証明書のコピーを取得します。
cp /etc/ssl/certs/cacert.pem 。
終わったね。 今すぐ転送してください ldap02-ssl ディレクトリをコンシューマに追加します。 ここでは scp を使用します (適宜調整してください)。
CD ..
scp -r ldap02-ssl ユーザー@コンシューマー:
2. 消費者に関しては、
TLS 認証を構成します。
sudo apt install ssl-cert
sudo gpasswd -a openldap ssl-cert
sudo cp ldap02_slapd_cert.pem cacert.pem /etc/ssl/certs sudo cp ldap02_slapd_key.pem /etc/ssl/private
sudo chgrp openldap /etc/ssl/private/ldap02_slapd_key.pem sudo chmod 0640 /etc/ssl/private/ldap02_slapd_key.pem sudo systemctl stopd.service
ファイルを作成する /etc/ssl/certinfo.ldif 次の内容になります (適宜調整してください)。
dn:cn = config
追加: olcTLSCACertificateFile olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem
-
追加: olcTLSCertificateFile
olcTLS証明書ファイル: /etc/ssl/certs/ldap02_slapd_cert.pem
-
追加: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/ldap02_slapd_key.pem
slapd-config データベースを構成します。
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f certinfo.ldif
構成 / etc / default / slapd プロバイダー (SLAPD_SERVICES) と同様です。
3. 消費者に関しては、
コンシューマ側レプリケーション用に TLS を構成します。 既存のものを変更します olcSyncrepl いくつかの TLS オプションを追加することで属性を変更します。 そうすることで、属性の値を変更する方法が初めてわかります。
ファイルを作成する Consumer_sync_tls.ldif 次の内容で:
dn: olcDatabase={1}mdb,cn=config 置換: olcSyncRepl
olcSyncRepl:rid=0 Provider=ldap://ldap01.example.combindmethod=simple bindingdn="cn=admin,dc=example,dc=com" credentials=secret searchbase="dc=example,dc=com" logbase= "cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))" schemachecking=on type=refreshAndPersist retry="60 +" syncdata=accesslog starttls=critical tls_reqcert=demand
追加のオプションは、コンシューマが StartTLS を使用する必要があること、およびプロバイダの ID を検証するために CA 証明書が必要であることをそれぞれ指定します。 属性の値を変更する (「置換」) ための LDIF 構文にも注意してください。
次の変更を実装します。
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f Consumer_sync_tls.ldif
そして、slapd を再起動します。
sudo systemctl 再起動slapd.service
4. プロバイダー上で、
TLS セッションが確立されていることを確認します。 で / var / log / syslog「conns」レベルのログが設定されている場合、次のようなメッセージが表示されるはずです。
slapd[3620]: conn=1047 fd=20 IP=10.153.107.229:57922 (IP=0.0.0.0:389) から受け入れますslapd[3620]: conn=1047 op=0 EXT oid=1.3.6.1.4.1.1466.20037
slapd[3620]: conn=1047 op=0 STARTTLS
slapd[3620]: conn=1047 op=0 結果 oid= err=0 text=
SLPD[3620]: conn=1047 fd=20 TLS が確立されました tls_ssf=128 ssf=128 SLPD[3620]: conn=1047 op=1 BIND dn="cn=admin,dc=example,dc=com" method=128
slapd[3620]: conn=1047 op=1 BIND dn="cn=admin,dc=example,dc=com" mech=SIMPLE ssf=0 sawd[3620]: conn=1047 op=1 RESULT tag=97 err= 0 テキスト