セッションをドロップする前に、ログイン時にユーザーがパスワードの入力を求められる回数 (認証試行回数) を設定したいと思います。PAM はこのケースをサポートしていますか? サポートしている場合は、このために必要な設定についてサポートしてもらえますか?
答え1
PAM用のログインカウンターモジュールがあります。pam_tally
これを使用すると、ログイン試行回数のカウントを維持し、一定数のログイン試行が失敗した場合にそれ以上の試行をブロックできます。
例:
/etc/pam.d/common-auth
Debian では、アカウントがロックされる前にユーザーに 3 回のログイン試行を許可するように次の行を追加できます。
auth required pam_tally.so onerr=fail deny=3 no_magic_root
これにより、no_magic_root
ルート ユーザーがロックアウトされるのを防ぎます。
としてピーター指摘したように、unlock_time
オプションを使用すると、ロックアウトされたアカウントが自動的にロック解除されるまでの秒数を指定できます。 このオプションを に設定して1
、アカウントを 1 秒間ロックすると、ログイン試行は指定された回数後に中止されますが、ユーザーは (ほぼ) すぐに再試行できます。
次の行を追加すると、/etc/pam.d/common-account
ログイン成功時にログイン回数がリセットされます。
account required pam_tally.so reset no_magic_root
Fedora では、両方の行を に追加できます/etc/pam.d/system-auth
。
ロックアウトされたアカウントへのアクセスは、付属のユーティリティを使用して次のようにuser
復元できます。pam_tally
$ pam_tally --user user --reset=0
答え2
認証に失敗する回数ではなく、プロンプトが表示される回数を制御しようとする場合、PAM でこれを管理するのは難しいかもしれません。たとえば、ssh にはこれに対する独自の設定があります。
NumberOfPasswordPrompts
Specifies the number of password prompts before giving up. The
argument to this keyword must be an integer. The default is 3.