Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

9.2.3.6. セキュアな接続の確立

OpenLDAP スイートとサーバーは、Transport Layer Security (TLS) フレームワークを使用して保護できます。TLS は、ネットワーク上の通信セキュリティーを提供するために設計された暗号プロトコルです。Red Hat Enterprise Linux 7 の OpenLDAP スイートは、TLS 実装として OpenSSL を使用します。
TLS を使用してセキュアな接続を確立するには、必要な証明書を取得します。次に、クライアントとサーバーの両方で複数のオプションを設定する必要があります。最低でも、認証局 (CA) 証明書と、独自のサーバー証明書および秘密鍵を使用してサーバーを設定する必要があります。クライアントは、すべての信頼される CA 証明書を含むファイルの名前で設定する必要があります。
通常、サーバーは単一の CA 証明書に署名することだけが必要になります。クライアントはさまざまな安全なサーバーに接続したい場合があるため、設定で複数の信頼できる CA のリストを指定するのが一般的です。
サーバー設定
このセクションでは、TLS を確立するために OpenLDAP サーバーの/etc/openldap/slapd.d/cn=config.ldifファイルで指定する必要があるslapdのグローバル設定ディレクティブをリストします。
古いスタイルの設定は、通常は /usr/local/etc/openldap/slapd.conf としてインストールされる単一のファイルを使用しますが、新しいスタイルは slapd バックエンドデータベースを使用して設定を保存します。設定データベースは通常、/usr/local/etc/openldap/slapd.d/ ディレクトリーにあります。
以下のディレクティブは、SSL を確立するためにも有効です。TLS ディレクティブの他に、サーバー側で SSL 専用のポートを有効にする必要があります。通常はポート 636 です。これを行うには、/etc/sysconfig/slapd ファイルを編集し、SLAPD_URLS ディレクティブで指定された URL 一覧に ldaps:/// 文字列を追加します。
olcTLSCACertificateFile
olcTLSCACertificateFile ディレクティブは、信頼された CA 証明書が含まれる PEM (Privacy-enhanced mail) スキーマでエンコードされるファイルを指定します。ディレクティブは以下の形式になります。
olcTLSCACertificateFile: path
path を、CA 証明書ファイルへのパスに置き換えます。
olcTLSCACertificatePath
olcTLSCACertificatePath ディレクティブは、個別の CA 証明書が含まれるディレクトリーへのパスを指定します。このディレクトリーは、実際の証明書ファイルを参照するハッシュ化された名前でシンボリックリンクを生成する OpenSSL c_rehash ユーティリティーで特別に管理する必要があります。通常、代わりに olcTLSCACertificateFile ディレクティブを使用することが推奨されます。
ディレクティブは以下の形式になります。
olcTLSCACertificatePath: path
path を、CA 証明書ファイルを含むディレクトリーのパスに置き換えます。指定のディレクトリーは OpenSSL c_rehash ユーティリティーで管理する必要があります。
olcTLSCertificateFile
olcTLSCertificateFile ディレクティブは、slapd サーバー証明書を含むファイルを指定します。ディレクティブは以下の形式になります。
olcTLSCertificateFile: path
path を、slapd サービスのサーバー証明書ファイルへのパスに置き換えます。
olcTLSCertificateKeyFile
olcTLSCertificateKeyFile ディレクティブは、olcTLSCertificateFile で指定されたファイルに保存された証明書に一致する秘密鍵が含まれるファイルを指定します。現在の実装は暗号化された秘密鍵に対応していないため、そのファイルが十分に保護されている必要があることに注意してください。ディレクティブは以下の形式になります。
olcTLSCertificateKeyFile: path
path を、秘密鍵ファイルへのパスに置き換えます。
クライアント設定
クライアントシステムの /etc/openldap/ldap.conf 設定ファイルに以下のディレクティブを指定します。これらのディレクティブのほとんどは、サーバー設定オプションと並行して行います。/etc/openldap/ldap.conf のディレクティブは、システム全体で設定されますが、各ユーザーは ~/.ldaprc ファイルで上書きすることができます。
同じディレクティブを使用して SSL 接続を確立できます。ldaps:// 文字列は、ldapsearch などの OpenLDAP コマンドの ldap:// の代わりに使用する必要があります。これにより、コマンドはサーバーで設定された SSL のデフォルトポートであるポート 636 を使用するように強制されます。
TLS_CACERT
TLS_CACERT ディレクティブは、クライアントが認識するすべての認証局の証明書を含むファイルを指定します。これは、サーバーの olcTLSCACertificateFile ディレクティブと同じです。TLS_CACERT は、/etc/openldap/ldap.confTLS_CACERTDIR の前に常に指定する必要があります。ディレクティブは以下の形式になります。
TLS_CACERT path
path を、CA 証明書ファイルへのパスに置き換えます。
TLS_CACERTDIR
TLS_CACERTDIR ディレクティブは、別のファイルに認証局証明書が含まれるディレクトリーへのパスを指定します。サーバーで olcTLSCACertificatePath と同様に、指定されたディレクトリーは OpenSSL c_rehash ユーティリティーで管理する必要があります。
TLS_CACERTDIR directory
directory を、CA 証明書ファイルを含むディレクトリーのパスに置き換えます。
TLS_CERT
TLS_CERT は、クライアント証明書が含まれるファイルを指定します。このディレクティブは、ユーザーの ~/.ldaprc ファイルにのみ指定できます。ディレクティブは以下の形式になります。
TLS_CERT path
path を、クライアント証明書ファイルへのパスに置き換えます。
TLS_KEY
TLS_KEY は、TLS_CERT ディレクティブで指定されたファイルに保存されている証明書に一致する秘密鍵が含まれるファイルを指定します。サーバーで olcTLSCertificateFile と同様に、暗号化された鍵ファイルはサポートされません。ファイル自体は注意して保護する必要があります。このオプションは、ユーザーの ~/.ldaprc ファイルでのみ設定可能です。
TLS_KEY ディレクティブは以下の形式になります。
TLS_KEY path
path を、クライアント証明書ファイルへのパスに置き換えます。