はじめに
Ubuntu環境でSSH接続のセキュリティを高めるために、OSユーザーのパスワードの規則性の設定とアカウントロックの機能を設定する方法を紹介します。
これにより、不正アクセスのリスクを大幅に減らすことが可能です。
ユーザーのパスワードポリシーを設定する
Linux系OSユーザーのパスワードポリシーは、アクセスの最初の防衛線として機能します。利用者が簡単なパスワードを設定できないようにパスワードポリシーを設定することができます。
以下の設定を/etc/pam.d/common-password
に追加することで、パスワードの複雑さを確保します:
password requisite pam_pwquality.so retry=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1
この設定では、パスワードは最低8文字以上で、少なくとも1つの大文字、1つの小文字、そして1つの数字を含む必要があります。これにより、総当たり攻撃に対する耐性が向上します。
minlenが文字数、ucreditが大文字、lcreditが小文字、dcreditが数字になります。
アカウントロックを設定する
連続したパスワード入力ミスによるアカウントのロックは、ブルートフォース攻撃を防ぐ効果的な手段です。以下の設定を/etc/pam.d/sshd
に追加しましょう:
auth required pam_faillock.so preauth silent audit deny=20 unlock_time=900 auth [success=1 default=bad] pam_unix.so auth [default=die] pam_faillock.so authfail audit deny=20 unlock_time=900
この設定では、SSH経由でのログイン試行において、20回連続してパスワード入力が失敗すると、アカウントは900秒間ロックされます。
アカウントロックしてしまった場合
パスワードを間違えてしまってアカウントロックした場合は、上記設定では900秒待てばロック解除されます。
時間制限がない場合、すぐに解除したい場合はコマンドで解除します。
rootユーザで実行しましょう。
ロックされたアカウントの失敗回数を確認:
faillock --user [ユーザー名]
アカウントのロックを解除:
faillock --user [ユーザー名] --reset