症状
Linux インスタンスで Pluggable Authentication Modules (PAM) 設定を有効化または変更した後、/var/log/secure システムログに次のいずれかのエラーが表示される場合、ログインできなくなります。
requirement "uid >= 1000" not met by user "xxxx"user xxxx (0) has 5 failed attempts, failed attempts threshold is 3Refused user xxxx for service sshd
解決策
少なくとも 1 つの管理者アカウント (root ユーザーまたは sudo 権限を持つ他の一般ユーザー) がインスタンスにログインできることを確認してください。そうでない場合、設定ファイルを変更できません。
問題の特定
VNC 接続を使用して管理者として ECS インスタンスにログインします。
ECS コンソール - インスタンス ページに移動します。ページの上部で、ターゲットインスタンスのリージョンとリソースグループを選択します。
インスタンス詳細ページで、[リモート接続] をクリックし、[VNC リモート接続] を選択します。ユーザー名とパスワードを入力して ECS インスタンスにログインします。
認証ログをチェックして、重大なエラーメッセージを特定します。
試行失敗によるアカウントのロック: ログに
Maximum amount of failed attempts was reachedが含まれている場合、これはユーザーアカウントが連続したパスワードエラーの後にロックされるように設定されていることを示します。アカウントのロックを解除する必要があります。sudo grep -i "Maximum amount of failed attempts" /var/log/secureユーザーのログイン権限が制限されている: ログにメッセージ
requirement "uid >= 1000" not met by userが含まれている場合、設定によって UID が 1000 未満のユーザーのログインが禁止されています。UID 制限を解除する必要があります。sudo grep -i "not met by user" /var/log/secureユーザーがブラックリストに登録されている: ログに
Refused userが含まれている場合、これはユーザーアクセスがブラックリストとホワイトリストによって制御されていることを示します。ターゲットユーザーが明示的に拒否されているか、ホワイトリストに含まれていない可能性があります。ブラックリストまたはホワイトリストの制限を解除する必要があります。sudo grep -i "Refused user" /var/log/secure
アカウントのロック解除
ユーザーのログイン試行失敗回数を確認します。
<username> をログインに失敗したユーザー名に置き換えます。
sudo pam_tally2 -u <username>出力の試行失敗回数が 0 より大きい場合、アカウントはロックされています。
アカウントのロックを解除します。
sudo pam_tally2 -u <username> -r恒久的な修正を適用します (任意)。
ロックポリシーを無効にするには、
/etc/pam.d/system-authファイルを編集し、pam_tally2.soを含むルールをコメントアウトします。sudo vim /etc/pam.d/system-auth次の設定は、一般ユーザーまたは root ユーザーが 3 回連続で誤ったパスワードを入力した場合、アカウントが 50 秒間ロックされることを示します。
auth required pam_tally2.so deny=3 unlock_time=50上記の例では
pam_tally2モジュールを使用しています。PAM のバージョンが異なると、使用する設定モジュールも異なる場合があります。詳細については、「Linux PAM SAG」をご参照ください。インスタンスに再度ログインして、ログインが成功することを確認します。
UID 制限の解除
設定ファイルを見つけます。
pam_succeed_ifを含む設定ファイル (例:/etc/pam.d/sshd、/etc/pam.d/login、/etc/pam.d/system-auth) を見つけます。sudo grep -r "pam_succeed_if" /etc/pam.d/設定を確認して変更します。
sudo vim /etc/pam.d/sshdauth required pam_succeed_if.so uid >= 1000の行を含む各ファイルで、行の先頭に # 記号を追加してコメントアウトします。# auth required pam_succeed_if.so uid >= 1000インスタンスに再度ログインして、ログインが成功することを確認します。
ユーザーのブラックリストとホワイトリストの制限を解除する
設定ファイルを見つけます。
pam_listfileを含む設定ファイル (例:/etc/pam.d/sshd、/etc/pam.d/login、/etc/pam.d/system-auth) を見つけます。sudo grep -r "pam_listfile" /etc/pam.d/設定を確認します。
sudo vim /etc/pam.d/sshd一致する設定行を確認して、それがホワイトリスト (
sense=allow) かブラックリスト (sense=deny) かを判断し、リストファイルのパス (例:/etc/ssh/whitelistや/etc/ssh/blacklist) を見つけます。# ホワイトリストが設定されています。ホワイトリスト内のユーザーのみがログインを許可されます。 auth required pam_listfile.so item=user sense=allow file=/etc/ssh/whitelist onerr=fail # ブラックリストが設定されています。ブラックリスト内のユーザーはログインを禁止されます。 auth required pam_listfile.so item=user sense=deny file=/etc/ssh/blacklist onerr=failリストの種類に基づいて設定ファイルを変更します。
ホワイトリスト: ファイルの末尾にユーザー名を追加します。1 行に 1 ユーザーを追加します。ファイルを保存して終了します。
sudo vim /etc/ssh/whitelistブラックリスト: ターゲットユーザー名を含む行を削除します。ファイルを保存して終了します。
sudo vim /etc/ssh/blacklist
インスタンスに再度ログインして、ログインが成功することを確認します。