20.12. 異なるタイプのバインドの有効化

エンティティーが Directory Server にログインするかアクセスするたびにディレクトリーに バインド されます。バインド操作にはさまざまな種類があり、バインドの方法に応じたもの (シンプルバインドやオートバインドなど) や、ディレクトリーにバインドするユーザーのアイデンティティーに応じたもの (匿名バインドや未認証バインド) があります。
以下のセクションでは、バインドのセキュリティーを高めたり (「セキュアなバインドの要求」)、バインド操作を効率化したり (「自動バインドの設定」など) するための設定パラメーターを紹介します。

20.12.1. セキュアなバインドの要求

単純なバインドは、エンティティーが単純なバインド DN とパスワードの組み合わせを使用して Directory Server に対して認証される場合です。コマンドラインからパスワードを直接送信するのではなく、パスワードファイルを使用することは可能ですが、いずれの方法でもネットワーク経由で平文のパスワードを送受信する必要があります。これでは、接続を盗聴された場合に、パスワードが脆弱になってしまいます。
セキュアな接続 (TLS または STARTTLS) で単純なバインドを行うことが必要になる場合があります。これにより、バインド操作で送信される平文のパスワードを実質的に暗号化できます。(SASL 認証や証明書ベースの認証など、簡易バインドの代わりに使用することも可能です。)
重要
通常ユーザーは、サーバーおよび LDAP 操作にログインすると、単純なバインドにセキュアな接続を要求することで、サーバー間の接続に影響があります。たとえば、レプリケーション、同期、データベースチェーンはすべて、サーバー間で単純なバインドを使用できます。
nsslapd-require-secure-binds 属性が有効にになっている場合は、レプリカ合意、同期合意、およびチェーン設定がセキュアな接続を指定するようにしてください。それ以外の場合、これらの操作は失敗します。
注記
バインド操作のセキュアな接続を 認証バインド にのみ適用する必要があります。パスワードのないバインド操作 (匿名および認証されていないバインド) は、標準の接続を引き継ぐことができます。
  1. nsslapd-require-secure-binds 設定パラメーターを on に設定します。
    # dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-require-secure-binds=on
  2. インスタンスを再起動します。
    # dsctl instance_name restart

20.12.2. 匿名バインドの無効化

ユーザー名またはパスワードを指定せずに Directory Server への接続を試みると、これは 匿名バインド になります。匿名バインドは、ユーザーが最初にディレクトリーに対して認証を行う必要がないため、電話番号や電子メールアドレスをディレクトリーで確認するような、一般的な検索および読み取り操作を簡素化します。
注記
デフォルトでは、匿名バインドは検索操作および読み取り操作に対して許可 (on) されます。これにより、ユーザーおよびグループのエントリーに加えて、root DSE などの設定エントリーを含む 通常のディレクトリーエントリー にアクセスすることができます。別のオプション rootdse により、匿名検索および root DSE 自体への読み取りアクセスが許可されますが、他のすべてのディレクトリーエントリーへのアクセスを制限します。
ただし、匿名バインドにはリスクがあります。機密情報へのアクセスを制限したり、変更や削除などのアクションを許可しないように、適切な ACI を導入する必要があります。さらに、匿名バインドは、サービス拒否攻撃や、悪意のあるユーザーがサーバーへのアクセスを取得するのに使用できます。
「匿名アクセスの付与」は、ACI を設定して匿名ユーザーがアクセスするものを制御する例があり、「匿名バインドでのリソース制限の設定」には、匿名ユーザーのリソース制限の設定に関する情報があります。
このオプションで十分なレベルのセキュリティーが提供されない場合は、匿名バインドを完全に無効にできます。
  1. nsslapd-allow-anonymous-access 設定パラメーターを off に設定します。
    # dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-allow-anonymous-access=off
  2. インスタンスを再起動します。
    # dsctl instance_name restart
注記
匿名バインドが無効の場合、ユーザーは RDN を使用してログインできません。これは、ログインのために完全な DN を提供する必要があります。
さらに、匿名バインドを無効にする場合は、認証されていないバインドも自動的に無効になります。

20.12.3. 認証されていないバインドの許可

認証されていないバインドは、ユーザーが空のパスワードを提供する Directory Server への接続です。Directory Server では、デフォルト設定を使用すると、セキュリティー上の理由から、このシナリオのアクセスを拒否します。
# ldapsearch -w "" -p 389 -h server.example.com -b "dc=example,dc=com" \
     -s sub -x "(objectclass=*)"

ldap_bind: Server is unwilling to perform (53)
	additional info: Unauthenticated binds are not allowed
警告
Red Hat は、認証されていないバインドを有効にしないことを推奨します。この認証方法により、Directory Manager を含むアカウントとしてパスワードを指定せずにユーザーがバインドできます。バインド後、ユーザーはバインドに使用されるアカウントのパーミッションを持つすべてのデータにアクセスできます。
セキュアでない非認証バインドを有効にするには、nsslapd-allow-unauthenticated-binds 設定オプションを on に設定します。
# dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-allow-unauthenticated-binds=on

20.12.4. 自動バインドの設定

Autobind は、ローカルの UNIX 認証情報に基づいて Directory Server に接続する方法です。これは、ディレクトリー自体に保存されたアイデンティティーにマッピングされます。autobind は、以下の 2 つの部分で設定されます。
autobind を設定する前に、まず LDAPI が有効であることを確認してください。次に、(Autobind 機能の設定」に) autobind マッピングを設定します。

20.12.4.1. Autobind および LDAPI の概要

IPC (Inter-process communication) は、Unix マシン上のプロセスやネットワークを区別して相互に直接通信する方法です。LDAPI は、これらの IPC 接続で LDAP 接続を実行する方法です。つまり、LDAP 操作は Unix ソケット上で実行できます。これらの接続は、通常の LDAP 接続よりもはるかに高速で、より安全です。
Directory Server はこの LDAPI 接続を使用して、ユーザーがすぐに Directory Server にバインドしたり、Unix ソケットを介した接続をサポートするツールを使用して Directory Server にアクセスできるようにします。autobind は、Unix ユーザーの uid:gid を使用して、そのユーザーを Directory Server のエントリーにマッピングし、そのユーザーのアクセスを許可します。
autobind では、3 つのディレクトリーエントリーへのマッピングを許可します。
  • Unix ユーザーが 1 つのユーザーエントリーに一致した場合はユーザーエントリー
  • Unix ユーザーが root または nsslapd-ldapimaprootdn で定義されているスーパーユーザーである場合は Directory Manager

図20.1 自動バインド接続パス

自動バインド接続パス
特別な自動バインドユーザーのエントリーは、特別な自動バインド接尾辞の下 (一般ユーザーのサブツリー外) にあります。この下のエントリーは、ユーザーおよびグループの ID 番号で識別されます。
gidNumber=gid+uidNumberuid, autobindsuffix
自動バインドが有効になっていないが LDAPI の場合は、他のバインド認証情報を指定しない限り、Unix ユーザーは Directory Server に匿名でバインドされます。
注記
自動バインドを使用すると、バインドユーザー名とパスワードを指定したり、他の SASL 認証メカニズムを使用したりせずに、クライアントが Directory Server に要求を送信できます。LDAP 標準によると、要求でバインド情報が指定されていない場合、サーバーは要求を匿名バインドとして処理します。何らかのバインド情報を必要とする規格に準拠するため、自動バインドを使用するクライアントは SASL/EXTERNAL で要求を送信する必要があります。
SASL の設定に関する詳細は、「SASL Identity マッピングの設定」を参照してください。

20.12.4.2. Autobind 機能の設定

Autobind 機能を有効にすると、Directory Server への匿名アクセスのみが許可されます。ただし、Linux ユーザーを Directory Server エントリーにマッピングするように設定すると、root ユーザーを Directory Manager にマップすることもできます。
  1. nsslapd-ldapiautobind パラメーターが有効化されていることを確認します。これはデフォルトです。
    # dsconf -D "cn=Directory Manager" ldap://server.example.com config get nsslapd-ldapiautobind
    nsslapd-ldapiautobind: on
  2. nsslapd-ldapiautobind パラメーターが off に設定されている場合は、有効にします。
    # dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-ldapiautobind=on
  3. ユーザーエントリーをマッピングするには、以下のように設定します。
    # dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-ldapimaptoentries=on nsslapd-ldapiuidnumbertype=uidNumber nsslapd-ldapigidnumbertype=gidNumber nsslapd-ldapientrysearchbase=ou=People,dc=example,dc=com
    • nsslapd-ldapimaptoentries=on は、エントリーマッピングを有効にします。
    • nsslapd-ldapiuidnumbertype=uidNumber は、Unix UID 番号が含まれる Directory Server の属性を設定します。
    • nsslapd-ldapigidnumbertype=gidNumber は、Unix GID 番号が含まれる Directory Server の属性を設定します。
    • nsslapd-ldapientrysearchbase=ou=People,dc=example,dc=com は、ユーザーエントリーを検索する DN を設定します。
  4. 必要に応じて、Red Hat Enterprise Linux の root ユーザーを Directory Server の cn=Directory Manager アカウントにマッピングするには、以下を実行します。
    # dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-ldapimaprootdn="cn=Directory Manager"
  5. インスタンスを再起動します。
    # dsctl instance_name restart