10. セキュリティの考慮
OpenLDAP ソフトウェアは、厳密に制御された閉じたネットワークからグローバルネットワークまで広範囲なコンピュータ環境で動作するよう設計されています。したがって OpenLDAP ソフトウェアは多くの異なるセキュリティ機構をサポートします。この章では、これらの機構について述べ、 OpenLDAP ソフトウェアについてのセキュリティの考慮について説明します。
10.1. ネットワークセキュリティ
10.1.1. 特定の受けつけアドレス
デフォルトで slapd(8) は IPv4 と IPv6 の「どんな」アドレスででも受けつけています。しかし slapd が受けつけるアドレスとポートのペアを限定しておくことが望ましい場合もよくあります。たとえば、IPv4 アドレス 127.0.0.1 に限定すれば、ディレクトリサーバへのリモートアクセスができなくなります。これは次のように指定します。
slapd -h ldap://127.0.0.1
これにより、サーバが特定のインタフェースアドレスで受けつけるように設定できますが、このインタフェースを介してアクセス可能なネットワークだけにサーバへのアクセスを制限するとは必ずしも言えません。リモートアクセスを選択的に制限するには IP ファイアウォール の利用を勧めます。
より詳しい情報についてはコマンドラインオプションと slapd(8) を参照してください。
10.1.2. IP ファイアウォール
サーバシステムの
一般に slapd(8) は ldap:// セッションではポート 389/tcp、 ldaps:// セッションではポート 636/tcp で受け付けます。 slapd(8) では他のポートで受け付けるようにも設定できます。
IP ファイアウォールの設定方法は、利用する IP ファイアウォールの種類に依存するので、ここには例を提示しません。利用する IP ファイアウォールに関する文書を参照してください。
10.1.3. TCP Wrappers
slapd(8) は
slapd: 10.0.0.0/255.0.0.0 127.0.0.1 : ALLOW slapd: ALL : DENY
これはディレクトリサービスへにアクセスするプライベートネットワーク 10.0.0.0 とローカルホスト(127.0.0.1)からの接続だけを許可します。IP アドレスを使うのは、slapd(8) が普通は逆引きをするように設定されていないからです。
TCP wrappers では接続が受け付けられる必要があることに注意してください。厳密な取扱いにおいては接続の拒否でさえも必要となるので、そのような場合には一般に TCP wrappers を使うのではなく IP ファイアウォールによる保護を勧めます。
TCP wrapper ルールのより詳しい情報については hosts_access(5) を参照してください。
10.2. データの完全性と機密性の保護
DIGEST-MD5 や
10.2.1. セキュリティ強度係数
サーバは保護の相対的な強度を示すのにセキュリティ強度係数 (
多くの管理上の制御が LDAP セッションに対する TLS や SASL の保護と関連した SSF を利用します。
security 制御は保護が適切でない操作を許可しません。たとえば次のように設定します。
security ssf=1 update_ssf=112
この場合、すべての操作に完全性保護、更新操作(追加、削除、更新など) に 3DES と同等の暗号化保護を要求します。詳細は slapd.conf(5) を参照してください。
きめ細かい制御のために SSF はアクセス制御で利用できます。より詳しい情報についてはslapd の設定ファイルの章の アクセス制御の節を参照してください。
10.3. 認証方式
10.3.1. 「簡易」方式
LDAP の「簡易」方式には次の3つの操作モードがあります。
- 匿名
- 非認証
- ユーザ名/パスワード認証
匿名アクセス権は「簡易」バインド操作に名前もパスワードも与えないことにより得られます。非認証アクセス権はユーザ名を与えるがパスワードを与えないことにより得られます。認証アクセス権はユーザ名とパスワードを与えることにより得られます。
匿名バインドは結果として匿名認可関連となります。匿名バインド機構はデフォルトで利用できますが、 slapd.conf(5) に "disallow bind_anon" を指定することにより利用できなくなります。
非認証バインドは結果として匿名認可関連となります。非認証バインドはデフォルトでは利用できませんが、 slapd.conf(5) に "allow bind_anon_cred" を指定することにより利用できるようになります。多くの LDAP アプリケーションにおいて、認証アクセス権を得るつもりがミスにより非認証バインドを行ってしまうことがあり得るので (つまりアプリケーションがパスワードの提供を保証しないので)、この機構は一般に利用できないようにしておきます。
ユーザ名/パスワード認証が成功すると、渡したユーザ名がユーザ認可IDとなり、セッションに関連づけられます。ユーザ名/パスワード認証バインドはデフォルトで利用できます。しかし、この機構自体は盗聴からの保護を提供していないので(たとえばパスワードを平文で設定する)、厳重に管理されたシステム、あるいは LDAP セッションが他の仕組(TLS や
ユーザ名/パスワード認証バインド機構は "disallow bind_simple" の設定により完全に利用できなくなります。
注記:成功しなかったバインドは結果的に匿名認可関連を持ったセッションになります。
10.3.2. SASL 方式
LDAP