すべてのプロダクト
Search
ドキュメントセンター

:不適切な PAM 設定によって引き起こされる Linux インスタンスでのログイン失敗の解決方法

最終更新日:Nov 12, 2025

症状

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 3

  • Refused user xxxx for service sshd

解決策

重要

少なくとも 1 つの管理者アカウント (root ユーザーまたは sudo 権限を持つ他の一般ユーザー) がインスタンスにログインできることを確認してください。そうでない場合、設定ファイルを変更できません。

問題の特定

  1. VNC 接続を使用して管理者として ECS インスタンスにログインします。

    1. ECS コンソール - インスタンス ページに移動します。ページの上部で、ターゲットインスタンスのリージョンとリソースグループを選択します。

    2. インスタンス詳細ページで、[リモート接続] をクリックし、[VNC リモート接続] を選択します。ユーザー名とパスワードを入力して ECS インスタンスにログインします。

  2. 認証ログをチェックして、重大なエラーメッセージを特定します。

    • 試行失敗によるアカウントのロック: ログに 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

アカウントのロック解除

  1. ユーザーのログイン試行失敗回数を確認します。

    <username> をログインに失敗したユーザー名に置き換えます。

    sudo pam_tally2 -u <username>

    出力の試行失敗回数が 0 より大きい場合、アカウントはロックされています。

  2. アカウントのロックを解除します。

    sudo pam_tally2 -u <username> -r
  3. 恒久的な修正を適用します (任意)。

    ロックポリシーを無効にするには、/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」をご参照ください。
  4. インスタンスに再度ログインして、ログインが成功することを確認します。

UID 制限の解除

  1. 設定ファイルを見つけます。

    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/
  2. 設定を確認して変更します。

    sudo vim /etc/pam.d/sshd

    auth required pam_succeed_if.so uid >= 1000 の行を含む各ファイルで、行の先頭に # 記号を追加してコメントアウトします。

    # auth required pam_succeed_if.so uid >= 1000
  3. インスタンスに再度ログインして、ログインが成功することを確認します。

ユーザーのブラックリストとホワイトリストの制限を解除する

  1. 設定ファイルを見つけます。

    pam_listfile を含む設定ファイル (例: /etc/pam.d/sshd/etc/pam.d/login/etc/pam.d/system-auth) を見つけます。

    sudo grep -r "pam_listfile" /etc/pam.d/
  2. 設定を確認します。

    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
  3. リストの種類に基づいて設定ファイルを変更します。

    • ホワイトリスト: ファイルの末尾にユーザー名を追加します。1 行に 1 ユーザーを追加します。ファイルを保存して終了します。

      sudo vim /etc/ssh/whitelist
    • ブラックリスト: ターゲットユーザー名を含む行を削除します。ファイルを保存して終了します。

      sudo vim /etc/ssh/blacklist
  4. インスタンスに再度ログインして、ログインが成功することを確認します。