第 9 章 LDAP サーバー
9.2. OPENLDAP
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 を無効にでき ないコンポーネントで POODLE SSLv3.0 脆弱性 (CVE-2014-3566) を解決する方法) に 説明されている脆弱性により、Red Hat はセキュリティー保護のために SSLv3 プロトコ ルに依存しないことを推奨しています。OpenLDAP は、SSLv3 を効果的に無効にする 設定パラメーターを提供しないシステムコンポーネントの 1 つです。リスクの軽減策と して、stunnel コマンドを使用してセキュアなトンネルを提供し、stunnel で SSLv3 を 使用できないようにすることが推奨されます。stunnel の使用方法についての詳細 は、Red Hat Enterprise Linux 7 セキュリティーガイドを参照してください。
LDAP サーバーは複数のデータベースシステムをサポートするため、管理者は適用する予定の情報のタ
イプに最適なソリューションを柔軟に選択できます。明確に定義されたアプリケーションプログラミン グインターフェース (API) クライアントにより、LDAP サーバーと通信できるアプリケーションは多 く、その数と質ともに向上しています。
9.2.1.1. LDAP
の用語 の用語
以下は、本章で使用されている LDAP 特有の用語一覧です。
エントリー エントリー
LDAP ディレクトリー内の単一ユニットです。各エントリーは一意の DN (Distinguished Name: 識別
名) で識別されます。
属性 属性
エントリーに直接関連付けられた情報です。たとえば、ある組織が LDAP エントリーとして表示さ れている場合に、アドレス、ファックス番号などがこの組織に関連付けられた属性です。同様に、
人も電話番号や電子メールアドレスのような共通の属性を持つエントリーとして表示することがで
きます。
属性には、単一値または順不同の空白で区切られた値の一覧のどちらかがあります。一部の属性は オプションですが、その他は必須です。必須の属性は objectClass 定義を使用して指定さ
れ、/etc/openldap/slapd.d/cn=config/cn=schema/ ディレクトリー内のスキーマファイル内にあり ます。
属性とそれに対応する値のアサーションは、RDN (Relative Distinguished Name: 相対識別名) とも呼 ばれます。グローバルで一意の識別名とは異なり、相対識別名はエントリーに対してのみ一意なも のです。
LDIF
LDAP データ交換形式 (LDIF) は LDAP エントリーをプレーンテキスト形式で表示したものです。以
下のような形式を取ります。
[id] dn: distinguished_name attribute_type: attribute_value…
attribute_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) プロトコルに対するサポートがあります。
IPC 上の上の LDAP — プロセス間通信 (IPC) の使用により、ネットワーク上で通信する必要性をな くすことでセキュリティーを強化します。
IPv6 サポートサポート — OpenLDAP は、次世代のインターネットプロトコルである Internet Protocol version 6 (IPv6) に準拠しています。
LDIFv1 サポートサポート — OpenLDAP は LDIF バージョン 1 に完全に準拠しています。
更新された
更新された C API — 最新の C API はプログラマーが LDAP ディレクトリーサーバーに接続して 使用する方法を改善します。
スタンドアロン
スタンドアロン LDAP サーバーの機能強化サーバーの機能強化 — これには更新されたアクセス制御システム、ス レッドプーリング、改善されたツール、その他多くが含まれます。
9.2.1.3. OpenLDAP
サーバーの設定 サーバーの設定
Red Hat Enterprise Linux における LDAP サーバーの標準的な設定手順は、以下のとおりです。
1. OpenLDAP スイートをインストールします。必要なパッケージのインストールに関する詳しい
情報は、「OpenLDAP スイートのインストール」を参照してください。
2. 「OpenLDAP サーバーの設定」で説明のとおりに設定をカスタマイズします。
3. 「OpenLDAP サーバーの実行」で説明のとおりに slapd サービスを開始します。
4. ldapadd ユーティリティーを使用して、エントリーを LDAP ディレクトリーに追加します。
5. ldapsearch ユーティリティーを使用して、slapd サービスが情報に正しくアクセスしているこ とを確認します。
9.2.2. OpenLDAP スイートのインストール
OpenLDAP ライブラリーとツールのスイートは、以下のパッケージにより提供されます。
表
表9.1 OpenLDAP パッケージの一覧パッケージの一覧 パッケージ
パッケージ 説明説明
openldap OpenLDAP サーバー/クライアントアプリケーションを実行するために
必要なライブラリーを含むパッケージです。
openldap-clients LDAP サーバー上のディレクトリーを表示、修正するためのコマンドラ
インユーティリティーを含むパッケージです。
openldap-servers LDAP サーバーを設定して実行するためのサービスとユーティリティー
の両方を含むパッケージです。これには、スタンドアロン LDAP デーモ ンである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 の追加チャンネル の詳細は、『システム管理者のガイド』の「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 ページを参照してください。