Red Hat Training

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

9.2. OpenLDAP

本セクションでは、OpenLDAP 2.4 のインストールと設定、LDAPv2 プロトコルおよび LDAPv3 プロトコルのオープンソース実装について説明します。
注記
Red Hat Enterprise Linux 7.4 以降では、openldap-server パッケージは非推奨となり、Red Hat Enterprise Linux の今後のメジャーリリースには含まれません。このため、Red Hat Enterprise Linux または Red Hat Directory Server に同梱の Identity Management に移行します。Identity Management の詳細は、『Linux ドメイン『ID、認証、およびポリシーガイド』を参照してください。Directory Server 「Red Hat Directory Server」

9.2.1. LDAP の概要

クライアントサーバーのアーキテクチャーを使用すると、LDAP は信頼できる方法を提供し、ネットワークからアクセス可能な中央情報ディレクトリーを作成できます。クライアントがこのディレクトリー内の情報を変更しようとすると、サーバーではユーザーに変更を行うパーミッションを検証し、必要に応じてエントリーを追加または更新します。通信が保護されるようにするには、攻撃者が送信を傍受しないように、Transport Layer Security (TLS)暗号化プロトコルを使用できます。
重要
Red Hat Enterprise Linux 7.5 以降の OpenLDAP スイートは、ネットワークセキュリティーサービス (NSS )の Mozilla 実装を使用しなくなりました。代わりに OpenSSL を使用します。OpenLDAP は、既存の NSS データベース設定でも機能します。
重要
Resolution for POODLE SSLv3.0 vulnerability(CVE-2014-3566)for components that do not allow SSLv3 to be disabled via configuration settings(設定から SSLv3 を無効にできないコンポーネントの場合)で説明されている脆弱性により、Red Hat はセキュリティーのために SSLv3 プロトコルに依存しないことが推奨されます。OpenLDAP は、SSLv3 を効果的に無効にできる設定パラメーターを提供しないシステムコンポーネントの 1 つです。リスクを軽減するには、stunnel コマンドを使用してセキュアなトンネルを提供し、stunnelSSLv3 の使用から無効にすることが推奨されますstunnel の使用方法についての詳細は、『Red Hat Enterprise Linux 7 セキュリティーガイド』を参照してください
LDAP サーバーは複数のデータベースシステムをサポートします。これにより、管理者は、提供する予定の情報タイプの最適なソリューションを選択できるように柔軟性があります。明確に定義されたクライアントアプリケーションプログラミングインターフェース (API )により、LDAP サーバーと通信できるアプリケーションの数は多数であり、数量と品質の両方が増えます。

9.2.1.1. LDAP Terminology

以下は、本章で使用される LDAP 固有の用語の一覧です。
エントリー
LDAP ディレクトリー内に単一のユニット。各エントリーは、固有の識別名 (DN)で識別されます。
属性
エントリーに直接関連付けられた情報。たとえば、組織が LDAP エントリーとして表現される場合、この組織に関連付けられている属性にはアドレス、fax 番号などが含まれる可能性があります。同様に、個人の電話番号やメールアドレスなどの共通の属性を含むエントリーとして表現できます。
属性には値を 1 つ持つか、順序のないスペースで区切られた値のリストになります。特定の属性は任意ですが、それ以外の属性は必須です。必要な属性はオブジェクトクラス定義を使用して指定し 、/etc/openldap/slapd.d/cn=config/cn=schema/ ディレクトリーにあるスキーマファイルにあります。
属性とそれに対応する値のアサーションは、相対識別名 (RDN)とも呼ばれます。グローバルに一意な識別名とは異なり、相対識別名はエントリーごとにのみ一意です。
LDIF
LDAP データ交換形式(LDIF )は、LDAP エントリーのプレーンテキスト形式の表現です。これは以下の形式になります。
[id] dn: distinguished_name
attribute_type: attribute_valueattribute_type: attribute_value…
…
オプションの id は、エントリーの編集に使用されるアプリケーションによって決定される数字です。各エントリーには、対応するスキーマファイルにすべて定義されている限り、必要に応じて多くの attribute_type と attribute_value ペアを含めることができます。空白行はエントリーの最後を示します。

9.2.1.2. OpenLDAP の機能

OpenLDAP スイートは、以下のような重要な機能を提供します。
  • LDAPv3 サポート: LDAP バージョン 2 は LDAP をセキュアにするように設計されています。たとえば、これには、Simple Authentication and Security Layer(SASL)、Transport Layer Security(TLS)、および Secure Sockets Layer(SSL)プロトコルのサポートが含まれます。
  • LDAP Over IPC - プロセス間の通信(IPC)を使用すると、ネットワーク経由で通信する必要がなくなります。
  • IPv6 サポート: OpenLDAPは、インターネットプロトコルの次世代であるインターネットプロトコル バージョン 6(IPv6)に準拠しています。
  • LDIFv1 サポート - OpenLDAP は LDIF バージョン 1 に完全に準拠しています。
  • Update C API: 現在の C API は、プログラマーが LDAP ディレクトリーサーバーに接続し、使用する方法を向上します。
  • 強化されたスタンドアロン LDAP サーバー: これには、更新されたアクセス制御システム、スレッドプール、優れたツールなどが含まれます。

9.2.1.3. OpenLDAP サーバーの設定

Red Hat Enterprise Linux で LDAP サーバーを設定する一般的な手順は以下のとおりです。
  1. OpenLDAP スイートをインストールします。「OpenLDAP Suite のインストール」
  2. の説明に従って、slapd 「OpenLDAP サーバーの実行」
  3. ldapadd ユーティリティーを使用して、LDAP ディレクトリーにエントリーを追加します。
  4. ldapsearch ユーティリティーを使用して、slapd サービスが正しく情報にアクセスしていることを確認します。

9.2.2. OpenLDAP Suite のインストール

OpenLDAP ライブラリーおよびツールスイートは、以下のパッケージで提供されます。

表9.1 OpenLDAP パッケージの一覧

パッケージ 説明
openldap OpenLDAP サーバーおよびクライアントアプリケーションの実行に必要なライブラリーを含むパッケージ。
openldap-clients LDAP サーバーでディレクトリーを表示および変更するコマンドラインユーティリティーを含むパッケージ。
openldap-servers LDAP サーバーを設定して実行するサービスおよびユーティリティーの両方を含むパッケージ。これには、スタンドアロンの LDAP Daemon (slapd )が含まれます。
compat-openldap OpenLDAP 互換ライブラリーを含むパッケージ。
また、LDAP サーバーと共によく使用されるパッケージは以下のとおりです。

表9.2 一般的にインストールされている追加の LDAP パッケージの一覧

パッケージ 説明
nss-pam-ldapd ユーザーがローカルの LDAP クエリーを実行できるようにするローカル LDAP ネームサービスである nslcd を含むパッケージ。
mod_ldap
mod_authnz_ldap モジュールおよび mod_ldap モジュールを含むパッケージ。mod_authnz_ldap モジュールは、Apache HTTP Server の LDAP 認証モジュールです。このモジュールは LDAP ディレクトリーに対してユーザーの認証情報を認証でき、ユーザー名、完全な DN、グループメンバーシップ、任意の属性、または完全なフィルター文字列に基づいてアクセス制御を強制できます。同じパッケージに含まれる mod_ldap モジュールは、設定可能な共有メモリーキャッシュを提供し、多くの HTTP リクエスト全体でディレクトリーアクセスの繰り返しや SSL/TLS のサポートを防ぎます。このパッケージは Optional チャンネルにより提供されることに注意してください。Red Hat 『追加チャンネルの詳細は、『システム管理者のガイド』の https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html-single/System_Administrators_Guide/index.html#sec-Adding_the_Optional_and_Supplementary_Repositories 「Optional および Supplementary リポジトリーの追加』 」を参照してください。
これらのパッケージをインストールするには、以下の形式で yum コマンドを使用します。
yum install package
たとえば、基本的な LDAP サーバーのインストールを実行するには、シェルプロンプトで以下を入力します。
~]# yum install openldap openldap-clients openldap-servers
このコマンドを実行するにはスーパーユーザー権限(つまり rootでログインしている必要がある)が存在する必要があることに注意してください。Red Hat Enterprise Linux 『 に新しいパッケージをインストールする方法の詳細は、『システム管理者のガイド』の「パッケージのインストール 」を参照してください』。

9.2.2.1. OpenLDAP サーバーユーティリティーの概要

管理タスクを実行するには、openldap-servers パッケージにより、以下のユーティリティーとslapd サービスがインストールされます。

表9.3 OpenLDAP サーバーユーティリティーの一覧

コマンド 説明
slapacl 属性の一覧へのアクセスを確認できます。
slapadd LDIF ファイルから LDAP ディレクトリーにエントリーを追加できます。
slapauth 認証および承認パーミッションの ID 一覧を確認することができます。
slapcat デフォルトの形式の LDAP ディレクトリーからエントリーを取得して、LDIF ファイルに保存できます。
slapdn 利用可能なスキーマ構文に基づいて、識別名(DN)の一覧を確認できます。
slapindex slapd ディレクトリーのインデックスは、現在のコンテンツに基づいて再インデックス化できます。設定ファイルのインデックスオプションを変更する場合は、このユーティリティーを実行します。
slappasswd 暗号化されたユーザーパスワードを ldapmodify ユーティリティーまたはslapd 設定ファイルと共に使用することを許可します。
slapschema データベースと対応するスキーマへの準拠を確認できます。
slaptest LDAP サーバー設定を確認できます。
このユーティリティーの詳細な説明およびその使用方法は、対応する man ページ 「インストールされているドキュメント」
重要
root のみが slapadd を実行できますが、slapd サービスは ldap ユーザーとして実行されます。このため、ディレクトリーサーバーは slapadd で作成されたファイルを変更することはできません。この問題を修正するには、slapdadd ユーティリティーの実行後に、シェルプロンプトで以下を入力します。
~]# chown -R ldap:ldap /var/lib/ldap
警告
データの整合性を保持するには、slapadd、slap cat、または slapindex を使用する前に、slapd サービスを停止します。これを行うには、シェルプロンプトで以下を入力します。
~]# systemctl stop slapd.service

9.2.2.2. OpenLDAP クライアントユーティリティーの概要

openldap-clients パッケージは、LDAP ディレクトリーのエントリーの追加、変更、および削除に使用できる以下のユーティリティーをインストールします。

表9.4 OpenLDAP クライアントユーティリティーの一覧

コマンド 説明
ldapadd ファイルまたは標準入力のいずれかの LDAP ディレクトリーにエントリーを追加できます。これは ldapmodify -a へのシンボリックリンクです。
ldapcompare 指定の属性を LDAP ディレクトリーエントリーと比較できます。
ldapdelete LDAP ディレクトリーからエントリーを削除できます。
ldapexop 拡張 LDAP 操作を実行できます。
ldapmodify ファイルまたは標準入力のいずれかの LDAP ディレクトリーのエントリーを変更できます。
ldapmodrdn LDAP ディレクトリーエントリーの RDN 値を変更できます。
ldappasswd LDAP ユーザーのパスワードの設定や変更が可能です。
ldapsearch LDAP ディレクトリーエントリーの検索を許可します。
ldapurl LDAP URL の作成またはコンパイルを許可できます。
ldapwhoami LDAP サーバーで whoami 操作を実行できます。
ldapsearch を除くと、各ユーティリティーは LDAP ディレクトリー内で変更する各エントリーのコマンドを入力するのではなく、変更する変更を含むファイルを参照することで、より簡単に使用できます。このようなファイルの形式は、各ユーティリティーの man ページで説明されています。

9.2.2.3. 一般的な LDAP クライアントアプリケーションの概要

サーバーでディレクトリーを作成および変更できるさまざまなグラフィカル LDAP クライアントがありますが、Red Hat Enterprise Linux にはそれらは含まれません。 読み取り専用モードでディレクトリーにアクセスできる人気のあるアプリケーションには、Mozilla、Evolution、または Ekiga が含まれます。

9.2.3. OpenLDAP サーバーの設定

デフォルトでは、OpenLDAP 設定は /etc/openldap/ ディレクトリーに保存されます。以下の表は、このディレクトリー内の最も重要なディレクトリーおよびファイルを示しています。

表9.5 OpenLDAP 設定ファイルおよびディレクトリーの一覧

パス 説明
/etc/openldap/ldap.conf OpenLDAP ライブラリーを使用するクライアントアプリケーションの設定ファイル。これには ldapadd、ldapsearch、Evolution などが含まれます。
/etc/openldap/slapd.d/ slapd 設定が含まれるディレクトリー。
OpenLDAP は /etc/openldap/slapd.conf ファイルから設定を読み取りなくなりました。代わりに、/etc/openldap/slapd.d/ ディレクトリーにある設定データベースを使用します。以前のインストールから既存のslapd.conf ファイルがある場合は、以下のコマンドを実行して新しい形式に変換できます。
~]# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
Theslapd configuration は、階層的なディレクトリー構造で整理された LDIF エントリーで構成されており、このエントリーを編集する推奨される方法は、「OpenLDAP サーバーユーティリティーの概要」
重要
LDIF ファイルのエラーは、slapd サービスを開始できない場合があります。したがって、/etc/openldap/slapd.d/ 内の LDIF ファイルを編集しないことが強く推奨されます。

9.2.3.1. グローバル設定の変更

LDAP サーバーのグローバル設定オプションは、/etc/openldap/slapd.d/cn=config.ldif ファイルに保存されます。以下のディレクティブは、一般的に使用されます。
olcAllows
olcAllows ディレクティブでは、有効にする機能を指定できます。これは以下の形式になります。
olcAllows: feature
表9.6「使用可能な olcAllows オプション」。デフォルトオプションは bind_v2 です。

表9.6 使用可能な olcAllows オプション

オプション 説明
bind_v2 LDAP バージョン 2 バインド要求の受け入れを有効にします。
bind_anon_cred 識別名(DN)が空の場合は匿名バインドを有効にします。
bind_anon_dn 識別名(DN) が空でない場合は匿名バインドを有効にします
update_anon 匿名更新操作の処理を有効にします。
proxy_authz_anon 匿名のプロキシー認証制御の処理を有効にします。

例9.1 olcAllows ディレクティブの使用

olcAllows: bind_v2 update_anon
olcConnMaxPending
olcConnMaxPending ディレクティブでは、匿名セッションの保留中のリクエストの最大数を指定できます。これは以下の形式になります。
olcConnMaxPending: number
デフォルトオプションは 100 です。

例9.2 olcConnMaxPending ディレクティブの使用

olcConnMaxPending: 100
olcConnMaxPendingAuth
olcConnMaxPendingAuth ディレクティブでは、認証されたセッションの保留中のリクエストの最大数を指定できます。これは以下の形式になります。
olcConnMaxPendingAuth: number
デフォルトオプションは 1000 です。

例9.3 olcConnMaxPendingAuth ディレクティブの使用

olcConnMaxPendingAuth: 1000
olcDisallows
olcDisallows ディレクティブでは、無効にする機能を指定できます。これは以下の形式になります。
olcDisallows: feature
表9.7「利用可能な olcDisallows オプション」。デフォルトでは無効にできる機能はありません。

表9.7 利用可能な olcDisallows オプション

オプション 説明
bind_anon 匿名バインド要求の受け入れを無効にします。
bind_simple 簡単なバインド認証メカニズムを無効にします。
tls_2_anon STARTTLS コマンドを受け取ると、匿名セッションの強制を無効にします。
tls_authc 認証時に STARTTLS コマンドを許可しません。

例9.4 olcDisallows ディレクティブの使用

olcDisallows: bind_anon
olcIdleTimeout
olcIdleTimeout ディレクティブを使用すると、アイドル状態の接続を閉じるまで待機する時間を指定できます。これは以下の形式になります。
olcIdleTimeout: number
このオプションはデフォルトで無効になっています(つまり、0 に設定されます)。

例9.5 olcIdleTimeout ディレクティブの使用

olcIdleTimeout: 180
olcLogFile
olcLogFile ディレクティブでは、ログメッセージを書き込むファイルを指定できます。これは以下の形式になります。
olcLogFile: file_name
ログメッセージは、デフォルトで標準エラーに書き込まれます。

例9.6 olcLogFile ディレクティブの使用

olcLogFile: /var/log/slapd.log
olcReferral
olcReferral オプションでは、サーバーが処理できない場合に要求を処理するためのサーバーの URL を指定できます。これは以下の形式になります。
olcReferral: URL
このオプションはデフォルトで無効になっています。

例9.7 olcReferral ディレクティブの使用

olcReferral: ldap://root.openldap.org
olcWriteTimeout
olcWriteTimeout オプションでは、未処理の書き込み要求で接続を閉じる前に待機する時間を指定できます。これは以下の形式になります。
olcWriteTimeout
このオプションはデフォルトで無効になっています(つまり、0 に設定されます)。

例9.8 olcWriteTimeout ディレクティブの使用

olcWriteTimeout: 180

9.2.3.2. フロントエンドの設定

OpenLDAP フロントエンド設定は etc/openldap/slapd.d/cn=config/olcDatabase={-1}frontend.ldif ファイルに保存され、アクセス制御リスト(ACL)などのグローバルデータベースオプションを定義します。詳細は、slapd-config(5) の man ページの Global Database Options セクションを参照してください。

9.2.3.3. Monitor バックエンド

/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif ファイルは OpenLDAP モニターバックエンドを制御します。有効にすると、自動で生成され、OpenLDAP によって動的に更新されます。この際、デーモンの実行中のステータスに関する情報とともに、OpenLDAP によって動的に更新されます。接尾辞は cn=Monitor で、変更することはできません。詳細は slapd-monitor(5) の man ページを参照してください。

9.2.3.4. データベース固有の設定

デフォルトでは、OpenLDAP サーバーは hdb データベースバックエンドを使用します。サブツリーの名前変更をサポートする階層的なデータベースレイアウトを使用する他に、これはbdb バックエンドと同じで、同じ設定オプションが使用されます。このデータベースバックエンドの設定は、/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif ファイルに保存されます。
その他のバックエンドデータベースの一覧は、slapd.backends(5) の man ページを参照してください。個々のバックエンドの man ページにあるデータベース固有の設定以下に例を示します。
# man slapd-hdb
注記
Thebdb および hdb バックエンドは非推奨になりました。代わりに、新規インストールに themdb バックエンドを使用することを検討してください。
データベース固有の設定では、以下のディレクティブが一般的に使用されます。
olcReadOnly
olcReadOnly ディレクティブにより、データベースを読み取り専用モードで使用できます。これは以下の形式になります。
olcReadOnly: boolean
TRUE (読み取り専用モードを有効にする)または FALSE(データベースの変更を有効にする )のいずれかを受け入れます。デフォルトのオプションは FALSE です。

例9.9 olcReadOnly ディレクティブの使用

olcReadOnly: TRUE
olcRootDN
olcRootDN ディレクティブにより、LDAP ディレクトリーの操作に対してアクセス制御または管理制限パラメーターが設定されたユーザーを指定できます。これは以下の形式になります。
olcRootDN: distinguished_name
識別名 (DN)を受け入れます。デフォルトのオプションは cn=Manager,dn=my-domain,dc=com です。

例9.10 olcRootDN ディレクティブの使用

olcRootDN: cn=root,dn=example,dn=com
olcRootPW
olcRootPW ディレクティブでは、olcRootDN ディレクティブを使用して指定されるユーザーのパスワードを設定できます。これは以下の形式になります。
olcRootPW: password
プレーンテキストの文字列またはハッシュのいずれかを受け入れます。ハッシュを生成するには、シェルプロンプトで以下を入力します。
~]$ slappaswd
New password:
Re-enter new password:
{SSHA}WczWsyPEnMchFf1GRTweq2q7XJcvmSxD

例9.11 olcRootPW ディレクティブの使用

olcRootPW: {SSHA}WczWsyPEnMchFf1GRTweq2q7XJcvmSxD
olcSuffix
olcSuffix ディレクティブでは、情報を提供するドメインを指定できます。これは以下の形式になります。
olcSuffix: domain_name
完全修飾ドメイン名 (FQDN)を受け入れます。デフォルトのオプションは dc=my-domain,dc=com です。

例9.12 olcSuffix ディレクティブの使用

olcSuffix: dc=example,dc=com

9.2.3.5. スキーマの拡張

OpenLDAP 2.3 以降、/etc/openldap/slapd.d/ ディレクトリーには、/etc/openldap/schema/ に保存してある LDAP 定義も含まれます。デフォルトのスキーマファイルをガイドとして使用し、OpenLDAP が使用するスキーマを拡張して追加の属性タイプおよびオブジェクトクラスをサポートできます。ただし、このタスクは本章の範囲外です。このトピックの詳細については、を参照してください

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 のグローバル設定ディレクティブの一覧を紹介します。
古いスタイルの設定では、1 つのファイルを使用していますが、通常は /usr/local/etc/openldap/slapd.conf としてインストールされますが、新しいスタイルでバックエンドのデータベースを使用して設定を保存します。設定データベースは、通常 /usr/local/etc/openldap/slapd.d/ ディレクトリーにあります。
以下のディレクティブは、SSL を確立するためにも有効です。TLS ディレクティブに加えて、サーバー側で SSL 専用のポートを有効にする必要があります。通常はポート 636 です。これを行うには、/etc/sysconfig/slapd ファイルを編集して、SLAPD_URLS ディレクティブで指定された URL 一覧に ldaps:/// 文字列を追加します。
olcTLSCACertificateFile
olcTLSCACertificateFile ディレクティブは、信頼される CA 証明書を含むPrivacy-enhanced mail(PEM)スキーマでエンコードされたファイルを指定します。ディレクティブは以下の形式になります。
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 接続を確立することができます。ldapsearch などの OpenLDAP コマンドの ldap:// の代わりに、ldaps:// を使用して文字列を使用する必要があります。これにより、コマンドはサーバーに設定された 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 を、クライアント証明書ファイルへのパスに置き換えます。

9.2.3.7. レプリケーションの設定

レプリケーションは、ある LDAP サーバー(プロバイダー)から他のサーバーまたはクライアント(コンシューマー)に更新をコピーするプロセスです。プロバイダーはコンシューマーに対してディレクトリーの更新を複製します。受信した更新は、コンシューマーによってさらに別のサーバーに伝搬されるため、コンシューマーがプロバイダーと同時に動作します。また、コンシューマーは LDAP サーバーである必要はありません。LDAP クライアントだけになります。OpenLDAP では、複数のレプリケーションモードを使用できますが、ほとんどの場合はミラーおよび同期 です。OpenLDAP レプリケーションモードの詳細は、openldap-servers パッケージでインストールされた OpenLDAP Software Administrator's Guide を参照してください 「インストールされているドキュメント」)。
選択したレプリケーションモードを有効にするには、プロバイダーとコンシューマーの両方で、/etc/openldap/slapd.d/ で以下のディレクティブのいずれかを使用します。
olcMirrorMode
olcMirrorMode ディレクティブは、ミラーレプリケーションモードを有効にします。これは以下の形式になります。
olcMirrorMode on
このオプションはプロバイダーおよびコンシューマーの両方に指定する必要があります。また、serverIDsyncrepl オプションとともに指定する必要があります18.3.4 で詳細の例を確認してください。OpenLDAP Software Administrator's Guide の MirrorMode セクション 「インストールされているドキュメント」を参照)
olcSyncrepl
olcSyncrepl ディレクティブは、同期レプリケーションモードを有効にします。これは以下の形式になります。
olcSyncrepl on
同期のレプリケーションモードでは、プロバイダーとコンシューマーの両方に特定の設定が必要になります。この設定は、18.3.1 に詳しく説明しています。OpenLDAP Software Administrator's Guide の Syncrepl セクション 「インストールされているドキュメント」を参照)

9.2.3.8. モジュールとバックエンドのロード中

動的に読み込んだモジュールを使用して、slapd サービスを強化できます。このモジュールのサポートは、slapd を設定する際に --enable-modules オプションで有効にする必要があります。 モジュールは、拡張子とファイルに保存されます
module_name.la
バックエンドストアまたは LDAP 要求への応答として、データの取得を行います。バックエンドは、静的に静的にコンパイルするか、またはモジュールサポートが有効な場合には、動的にロードすることもできます。後者の場合、以下の命名規則が適用されます。
back_backend_name.la
モジュールまたはバックエンドを読み込むには、/etc/openldap/slapd.d/ で以下のディレクティブを使用します。
olcModuleLoad
olcModuleLoad ディレクティブは、読み込む動的にロード可能なモジュールを指定します。これは以下の形式になります。
olcModuleLoad: module
ここで、モジュールはモジュールを含むファイル、またはバックエンドを含むファイルを表します。

9.2.4. LDAP を使用したアプリケーション向け SELinux ポリシー

SELinux は、Linux カーネルの必須アクセス制御メカニズムの実装です。デフォルトでは、SELinux は、アプリケーションが OpenLDAP サーバーにアクセスできないようにします。複数のアプリケーションが必要とする LDAP による認証を有効にするには、SELinux のブール値で allow_ypbind を有効にする必要があります。特定のアプリケーションは、このシナリオで有効になっている authlogin_nsswitch_use_ldap のブール値も要求します。以下のコマンドを実行して前述のブール値を有効にします。
~]# setsebool -P allow_ypbind=1
~]# setsebool -P authlogin_nsswitch_use_ldap=1
-P オプションを使用すると、システムの再起動後もこの設定を永続化します。SELinux の詳細は『Red Hat Enterprise Linux 7 SELinux ユーザーおよび管理者のガイド』を参照してください

9.2.5. OpenLDAP サーバーの実行

このセクションでは、スタンドアロン LDAP デーモンの開始、停止、再起動、および現在のステータスの確認を行う方法を説明します。 システムサービス全般の管理方法は、『システム管理者のガイド』の「systemd によるサービス管理 」を参照してください』。

9.2.5.1. サービスの起動

現行のセッションでslapd サービスを起動するには、root で次のコマンドを実行します。
~]# systemctl start slapd.service
システムの起動時にサービスが自動的に起動するように設定するには、root で次のコマンドを実行します。
~]# systemctl enable slapd.service
ln -s '/usr/lib/systemd/system/slapd.service' '/etc/systemd/system/multi-user.target.wants/slapd.service'

9.2.5.2. サービスの停止

現行のセッションで実行中のslapd サービスを停止するには、root で次のコマンドを実行します。
~]# systemctl stop slapd.service
システムの起動時にサービスが自動的に起動しないようにするには、root で以下を入力します。
~]# systemctl disable slapd.service
rm '/etc/systemd/system/multi-user.target.wants/slapd.service'

9.2.5.3. サービスの再起動

実行中のslapd サービスを再起動するには、シェルプロンプトで以下を入力します。
~]# systemctl restart slapd.service
これによりサービスが停止し、即座に再起動します。このコマンドを使用して設定を再読み込みします。

9.2.5.4. サービスステータスの確認

slapd サービスが実行していることを確認するには、シェルプロンプトで以下を入力します。
~]$ systemctl is-active slapd.service
active

9.2.6. OpenLDAP を使用して認証するシステムの設定

OpenLDAP を使用して認証するようにシステムを設定するには、適切なパッケージが LDAP サーバーとクライアントマシンとクライアントマシンの両方にインストールされていることを確認してください。「OpenLDAP Suite のインストール」 および 「OpenLDAP サーバーの設定」。クライアントで、シェルプロンプトで以下を入力します。
~]# yum install openldap openldap-clients nss-pam-ldapd

9.2.6.1. LDAP 形式への古い認証情報の移行

migrationtools パッケージには、認証情報を LDAP 形式に移行するのに役立つシェルおよび Perl スクリプトのセットがあります。このパッケージをインストールするには、シェルプロンプトで以下を入力します。
~]# yum install migrationtools
これにより、スクリプトを /usr/share/migrationtools/ ディレクトリーにインストールされます。インストールが完了したら、/usr/share/migrationtools/migrate_common.ph ファイルを編集し、以下の行を変更して正しいドメインを反映させます。
# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "example.com";

# Default base
$DEFAULT_BASE = "dc=example,dc=com";
または、コマンドラインで環境変数を直接指定できます。たとえば、デフォルトのベースを dc=example,dc=com に指定して migrate_all_online.sh スクリプトを実行するには、以下のコマンドを入力します。
~]# export DEFAULT_BASE="dc=example,dc=com" \
/usr/share/migrationtools/migrate_all_online.sh

表9.8 一般的に使用される LDAP 移行スクリプト

既存のネームサービス LDAP は実行中ですか? 使用するスクリプト
/etc フラットファイル migrate_all_online.sh
/etc フラットファイル いいえ migrate_all_offline.sh
NetInfo migrate_all_netinfo_online.sh
NetInfo いいえ migrate_all_netinfo_offline.sh
NIS(YP) migrate_all_nis_online.sh
NIS(YP) いいえ migrate_all_nis_offline.sh
これらのスクリプトの使用方法についての詳細は、/usr/share/doc/migrationtools-version/ ディレクトリーの README ファイルおよび migration-tools.txt ファイルを参照してください。

9.2.7. 関連情報

以下のリソースでは、Lightweight Directory Access Protocol に関する追加情報が提供されます。システムで LDAP を設定する前に、これらのリソース(特に 『OpenLDAP Software Administrator's Guide』 )を確認することを強く推奨します。

インストールされているドキュメント

以下のドキュメントは、openldap-servers パッケージとともにインストールされます。
  • /usr/share/doc/openldap-servers-version/guide.html - 『OpenLDAP Software Administrator's Guide』 のコピー。
  • /usr/share/doc/openldap-servers-version/README.schema: インストールされたスキーマファイルの説明が含まれる README ファイル。
さらに、openldapopenldap-servers、および openldap-clients パッケージでインストールされる man ページが多数含まれています。
クライアントアプリケーション
  • ldapadd(1) - ldapadd コマンドの man ページでは、エントリーを LDAP ディレクトリーに追加する方法が説明されています。
  • ldapdelete(1) - ldapdelete コマンドの man ページでは、LDAP ディレクトリー内でエントリーを削除する方法が説明されています。
  • ldapmodify(1) - ldapmodify コマンドの man ページでは、LDAP ディレクトリー内でエントリーを変更する方法が説明されています。
  • ldapsearch(1) - ldapsearch コマンドの man ページでは、LDAP ディレクトリー内でエントリーを検索する方法が説明されています。
  • ldappasswd(1) - ldappasswd コマンドの man ページでは、LDAP ユーザーのパスワードの設定または変更の方法が説明されています。
  • ldapcompare(1) - ldapcompare ツールの使用方法について説明しています
  • ldapwhoami(1) - ldapwhoami ツールの使用方法について説明しています
  • ldapmodrdn(1) - エントリーの RDN を変更する方法を記述します。
サーバーアプリケーション
  • slapd(8C) - LDAP サーバーのコマンドラインオプションが説明されています。
管理アプリケーション
  • slapadd(8C) -slapd データベースにエントリーを追加する際に使用するコマンドラインオプションが説明されています。
  • slapcat(8C) -slapd データベースから LDIF ファイルを生成するために使用されるコマンドラインオプションを説明します。
  • slapindex(8C) -slapd データベースの内容に基づいてインデックスを再生成するために使用されるコマンドラインオプションを記述します。
  • slappasswd(8C) - LDAP ディレクトリーのユーザーパスワードの生成に使用されるコマンドラインオプションが説明されています。
設定ファイル
  • ldap.conf(5) - ldap.conf ファイルの man ページでは、LDAP クライアントの設定ファイルで利用可能な形式とオプションを説明します。
  • slapd-config(5) - /etc/openldap/slapd.d 設定ディレクトリーで利用可能なフォーマットとオプションを説明します。

その他リソース


このページには機械翻訳が使用されている場合があります (詳細はこちら)。