[Time4VPS][CentOS] SSH ログインの失敗回数でアカウントロック
前回、root での SSH ログインを無効にする方法について書いた。
[Time4VPS][CentOS] root での SSH ログインを無効にする – with a Christian Wife
https://wacw.cf/2021/09/03/disable-root-ssh/
次は、SSH ログインでの失敗回数によって、アカウントをロックする設定をすることにした。
環境:
・Time4VPS「Linux 8」(CPU: 2 x 2.60 GHz、RAM: 8192 MB、Storage: 80 GB、Bandwidth: 8 TB、Port speed: 100 Mbps、Virtualization: KVM)、CentOS 7.8
・FileMaker Server for Linux 19.0.1.22(英語)
・macOS Catalina Version 10.15.6(英語環境) で SSH 接続
・Freenom のドメイン(サブドメイン)
(1)/etc/ssh/sshd_config を編集し以下のように設定する。私の環境ではデフォルトでこうなっていた。
UsePAM yes
設定を変更した場合は、sshd のサービスを再起動する。
# systemctl restart sshd.service
(2)/etc/pam.d/password-auth を編集し、以下を追記する。
1auth [default=die] pam_faillock.so authfail audit deny=4 even_deny_root unlock_time=600
2account required pam_faillock.so
注:
・pam_faillock.so 〜 を pam_tally2.so とするのは、古いやり方みたい。
・deny= でアカウントをロックするまでの回数を指定する。
・unlock_time でロックが解除されるまでの時間を指定する(秒)。0 にすると、ロックされたままとなる。
・even_deny_root で root もロックできる。
(4)コンソールによるローカルログインでもログイン失敗でアカウントロックをするため、/etc/pam.d/system-auth も2同様に変更する(2と同一内容を追記)。
以上で設定が完了だ。以下のコマンドでログインの失敗のログを確認できる。
# faillock
ロック状態を解除するには以下のコマンドを実行する。
# faillock --user ユーザ名 --reset
参考:
パスワードポリシー · Redhat / CentOS 7 Procedure manual
https://mizuti69.gitbooks.io/centos7_config_manual/content/4.user/2.user_password.html
CentOS 7 : ログインの失敗回数を制限する : Server World
https://www.server-world.info/query?os=CentOS_7&p=pam_tally
SSH接続でログインの失敗回数によりアカウントをロックする方法 – Qiita
https://qiita.com/KEy2376/items/869ed670e9b627072a75