多くの場合、安全な環境での要件は、ユーザーが指定された回数間違ったパスワードを入力した後にユーザーをロックダウンすることです。これにより、システムはパスワード辞書攻撃などの攻撃から保護されます。この投稿では、pam.d ファイルを使用して N 回の不正なログイン試行後にアカウントをロックする方法について説明しています .
N回の不正ログイン後にユーザーをロック
1. まず、ファイル /etc/pam.d/password-auth のバックアップを取ります および /etc/pam.d/system-auth .次に、次の行をファイルに追加します。
auth required pam_tally2.so file=/var/log/tallylog deny=N even_deny_root unlock_time=1200 account required pam_tally2.so
ここでは、
file=/var/log/tallylog – 失敗したログイン試行はここに記録されます.
deny – ユーザー アカウントがロックされるまでの値 N (試行回数) を設定できます。
even_deny_root – root ユーザーにも同じルールが適用されるようにします。このポリシーから root ユーザーを除外するには、単純に行からパラメーターを削除します。 [オプション]
unlock_time – アカウントをロックしたままにする時間です [オプション]
/etc/pam.d/system-auth のサンプルは次のようになります:
# cat /etc/pam.d/system-auth #%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required pam_env.so auth sufficient pam_fprintd.so auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 1000 quiet_success auth required pam_deny.so account required pam_unix.so account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 1000 quiet account required pam_permit.so password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_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_systemd.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so
2. /etc/ssh/sshd_config ファイルを編集します MaxAuthTries を増やす 上記の数値よりも高い値に設定してください。
# vi /etc/ssh/sshd_config MaxAuthTries 10
3. ChallengeResponseAuthentication no を確認した後、ファイルを保存します。 は既にファイルに設定されています。
# vi /etc/ssh/sshd_config ChallengeResponseAuthentication no
4. sshd サービスを再起動します。
# service sshd restart
ロックをリセット
1. 失敗ログ コマンドは、特定のユーザーのログイン試行の失敗回数を報告します:
# faillog -u [username]
2. pam_tally2.so が使用されている場合、pam_tally2 コマンドを使用して、特定のユーザーのログイン失敗回数を確認できます。
# pam_tally2 -u [username]
3. ユーザーのロックをリセットするには、pam_tally2 コマンドを使用できます:
# pam_tally2 --user=[username] --reset