20.9. パスワードベースのアカウントロックアウトポリシーの設定

アカウントのロックアウトは、ユーザーのパスワードを繰り返し推測することで、ディレクトリーに分割を試行するハッカーから保護されます。パスワードポリシーを設定して、特定のユーザーが指定した数のバインドの試行後にディレクトリーからロックされるようにできます。

20.9.1. コマンドラインを使用したアカウントロックアウトポリシーの設定

dsconf pwpolicy set コマンドを使用して、アカウントロックアウトポリシーを設定します。例えば、ロックアウトポリシーを有効にして、ログインに 4 回失敗するとアカウントがロックされるように設定するには、次のようにします。
# dsconf -D "cn=Directory Manager" ldap://server.example.com pwpolicy set --pwdlockout on --pwdmaxfailures=4
以下のパラメーターは、アカウントパスワードポリシーを制御します。
  • --pwdlockout: アカウントロックアウト機能を有効または無効にするには、このパラメーターを on または off に設定します。
  • --pwdunlock: ロックアウトの期間後にアカウントのロックを解除するには、このパラメーターを on に設定します。
  • --pwdlockoutduration: アカウントがロックされる秒数を設定します。
  • --pwdmaxfailures: アカウントがロックされるまでの、失敗したパスワードの最大試行回数を設定します。
  • --pwdresetfailcount: Directory Server がアカウントの失敗したログイン数をリセットするまでの秒数を設定します。

20.9.2. Web コンソールを使用したアカウントロックアウトポリシーの設定

Web コンソールを使用してアカウントロックアウトポリシーを設定するには、以下を実行します。
  1. Web コンソールで Directory Server ユーザーインターフェイスを開きます。「Web コンソールを使用した Directory Server へのログイン」を参照してください。
  2. インスタンスを選択します。
  3. Database タブを開き、Global Password Policy を選択します。
  4. Account Lockout タブでは、Enable Account Lockout 設定を有効にしてパラメーターを設定します。以下に例を示します。
    ツールヒントとパラメーターの cn=config エントリーで対応する属性名を表示するには、設定の上にマウスのカーソルを合わせます。詳細は、Red Hat Directory Server 設定、コマンド、およびファイルリファレンス のパラメーターの説明を参照してください。
  5. Save をクリックします。

20.9.3. レガシーパスワードロックアウト動作の無効化

パスワードの最大失敗 (passwordMaxFailure) に達すると、解釈する方法は複数あります。これは、サーバーが最後の失敗を全体の失敗数にどのようにカウントするかによります。
LDAP クライアントの従来の動作は、制限に達した 後に 障害が発生した場合を想定することです。つまり、失敗回数を 3 回に設定すると、4 回目の失敗でロックアウトされます。これは、4 回目の試みが成功した場合、技術的には失敗の限界に達していたとしても、ユーザーは正常に認証できることを意味します。これは、カウントの n+1 です。
LDAP クライアントは、最大失敗制限を増やして、最後の失敗試行を最終的な試行としてカウントすることを期待します。そのため、障害の上限が 3 に設定されている場合、3 番目の障害によりアカウントはロックされます。4 番目の試行では、正しい認証情報を使用しても失敗します。これはカウントの n です。
最初のシナリオ (試行回数が超過した場合にのみアカウントがロックされる) は過去の動作であるため、これは従来のパスワードポリシーの動作と考えられます。Directory Server では、このポリシーはデフォルトで有効になっているため、障害数が n+1 の場合のみアカウントがロックされます。このレガシー動作を無効にして、新しい LDAP クライアントが予想される際にエラー (LDAP_CONSTRAINT_VIOLATION) を受け取るようにすることができます。これは passwordLegacyPolicy パラメーターで設定されます。
レガシーパスワードのロックアウト動作を無効にするには、次のコマンドを実行します。
# dsconf -D "cn=Directory Manager" ldap://server.example.com config replace passwordLegacyPolicy=off