多くの場合、安全な環境での要件は、ユーザーが指定された回数間違ったパスワードを入力した後にユーザーをロックダウンすることです。これにより、システムは再び保護されます。投稿では、pam.d ファイルを使用して N 回の不正なログイン試行後にアカウントをロックする方法について説明しています。 . pam_faillock モジュールは、認証試行が複数回失敗した場合のユーザー アカウントの一時的なロックをサポートします。この新しいモジュールは、既存の pam_tally2 モジュールよりも機能を改善します。これは、認証試行がスクリーンセーバーで行われたときに一時的なロックも可能にするためです。
N回の不正ログイン後にユーザーをロック
1. まず、ファイル /etc/pam.d/password-auth のバックアップを取ります および /etc/pam.d/system-auth .次に、赤色で強調表示された行を両方のファイルに追加します。
auth required pam_env.so auth required pam_faillock.so preauth silent audit deny=3 unlock_time=600 auth sufficient pam_unix.so nullok try_first_pass auth [default=die] pam_faillock.so authfail audit deny=3 auth sufficient pam_faillock.so authsucc audit deny=3 auth requisite pam_succeed_if.so uid >= 500 quiet auth required pam_deny.so account required pam_faillock.so account required pam_unix.so account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 500 quiet account required pam_permit.so password requisite pam_cracklib.so try_first_pass retry=3 type= password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so session optional pam_oddjob_mkhomedir.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so The above configuration file would lock out users after 3 unsuccessful login attempts and unlock them after 10 minutes.
ここで、
拒否 - ユーザー アカウントがロックされるまでの値 N (試行回数) を設定できます。
unlock_time - アカウントをロックしたままにする時間です [オプション]
even_deny_root – root ユーザーにも同じルールが適用されるようにします。このポリシーからルート ユーザーを除外するには、[オプション] 行からパラメーターを削除するだけです。
注意 注:ファイル内の行の順序は重要であり、even_deny_root オプションを使用している場合、順序を変更すると、root ユーザーを含むすべてのユーザーがロックされることになります。
2. root ユーザーをロックアウトするには、認証が必要です pam_faillock.so /etc/pam.d/system-auth の両方に行を追加する必要があります および /etc/pam.d/password-auth 次のように:
auth required pam_faillock.so preauth silent audit deny=3 even_deny_root unlock_time=1200 root_unlock_time=600
3. 複数回ログインに失敗した後でもユーザーがロックアウトされないようにするには、pam_faillock のすぐ上に次の行を追加します。 /etc/pam.d/system-auth の両方で および /etc/pam.d/password-auth user1、user2 を実際のユーザー名に置き換えます。
auth [success=1 default=ignore] pam_succeed_if.so user in user1:user2:user3
4. sshd サービスを再起動します。
# systemctl restart sshd
ロックされたユーザーのパスワードをリセット
1. 認証失敗記録を表示する場合:
# faillock --user [username]
2. 認証失敗記録のリセット:
# faillock --user [username] --reset