問題の説明
Linux インスタンスの PAM 設定が不適切な場合、ログインできなくなることがあります。/var/log/secure を確認し、以下のエラーメッセージがないか調べてください。
-
requirement "uid >= 1000" not met by user "xxxx" -
Maximum amount of failed attempts was reached -
Refused user xxxx for service sshd
ソリューション
PAM 設定ファイルを変更するには、管理者アカウント (例えば、root や sudo 権限を持つユーザー) でインスタンスにログインする必要があります。
問題の特定
-
管理者として VNC 経由で Elastic Compute Service (ECS) インスタンスにログインします。
-
ECSコンソール - インスタンスページに移動します。リージョンとリソースグループを選択します。
-
インスタンスの詳細ページで、接続 をクリックし、VNC を選択します。ユーザー名とパスワードを入力してログインします。
-
-
認証ログで主要なエラーメッセージを確認します。
-
ログイン試行の失敗によるアカウントロック:ログに
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このルールは、パスワードの試行に 3 回連続で失敗した場合、通常のユーザーアカウントと root アカウントの両方をロックし、50 秒後に自動的にロックを解除します。
auth required pam_tally2.so deny=3 unlock_time=50この例では
pam_tally2モジュールを使用しています。実際のモジュールは PAM のバージョンによって異なる場合があります。詳細については、「Linux-PAM System Administrators' Guide」をご参照ください。 -
インスタンスに再度ログインし、ログインが機能することを確認してください。
UID 制限の解除
-
設定ファイルを探します。
/etc/pam.d/sshd、/etc/pam.d/login、/etc/pam.d/system-authなど、pam_succeed_ifを含むファイルを見つけます。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 -
インスタンスに再度ログインし、ログインが機能することを確認してください。
許可リストまたは拒否リストの変更
-
設定ファイルを探します。
/etc/pam.d/sshd、/etc/pam.d/login、/etc/pam.d/system-authなど、pam_listfileを含むファイルを見つけます。sudo grep -r "pam_listfile" /etc/pam.d/ -
設定を確認します。
sudo vim /etc/pam.d/sshdsenseパラメーターは、許可リスト (sense=allow) または拒否リスト (sense=deny) を示します。file=パラメーター内のファイルパス (例:/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 -
リストファイルを変更します。
-
許可リストの場合:新しい行にユーザー名を追加し、保存して終了します。
sudo vim /etc/ssh/whitelist -
拒否リストの場合:対象のユーザー名を含む行を削除し、保存して終了します。
sudo vim /etc/ssh/blacklist
-
-
インスタンスに再度ログインし、ログインが機能することを確認してください。