ロックアウトせずにSLES PAMログイン失敗を診断する

「PAM認証失敗」メッセージが表示された場合、万能な解決策は存在しません。まず、どのサービスとユーザーが失敗しているかを特定し、次に該当する時刻のジャーナルを確認してください。SUSE Linux Enterprise Server (SLES) では、確認済みのグローバルPAMの問題は で修復しpam-config、個々のサービスファイルは、そのスタックに問題がある場合にのみ変更してください。テスト中は、正常に動作するrootセッションまたは管理者セッションを開いたままにしてください。PAMスタックが破損していると、新しいSSHログインやコンソールログインがブロックされる可能性があります。

最新のSLES 15 SP7セキュリティおよび強化ガイドでは、PAMを認証、アカウント、パスワード、セッションモジュールのスタックとして説明しています。この区別は重要です。正しいパスワードでも、最初のauth段階を通過しても、後でアカウントポリシーやサービス固有のルールによって拒否される可能性があるからです。一般的なエラーメッセージだけでは、どの段階でエラーが発生したかを特定することはできません。

この誤りは何を証明し、何を証明しないのか?

PAM は、アプリケーション(sshdコンソール ログインなど)と、設定された認証方法との間の仲介役となります。PAM 対応の各サービスには、 の下にファイルがあります/etc/pam.d/。サービス ファイルには、common-authやなどの SLES 共通ファイルが含まれる場合があるcommon-accountため、SSH に限定された障害は、すべてのログイン方法にわたる障害とは異なる原因を持つ可能性があります。

検証済み: SUSE のドキュメント化された SSH スタックにはpam_nologin.so、一般的な PAM ファイルが含まれています。/etc/nologin存在する場合、ドキュメント化されたモジュールは、root 以外のユーザーによるログインを拒否します。コンテキスト依存:ローカルで編集されたルール、ディレクトリ サービス、およびサードパーティの MFA モジュールは、さらにチェックを追加できます。メッセージだけでは、パスワードが間違っている、PAM ファイルが破損している、またはアカウントがロックされているとは断定できません。スタックを置き換えるのではなく、影響を受けるサービスとそのログから始めてください。

どのログイン経路でエラーが発生していますか?

一度エラーを再現し、その日時、ユーザー名、および方法(SSH、ローカルテキストコンソール、グラフィカルログイン、sudoまたは)を記録してくださいsu。管理者としてサインインできる場合は、最近のシステムメッセージを確認してください。

sudo journalctl -e

SUSEのSLESトラブルシューティングガイドでは、ログインエラーやPAMエラーについてジャーナルを確認することを特に推奨しています。ログイン試行時刻付近で、モジュール名やエラー理由(アカウント拒否、ディレクトリサービス利用不可、モジュール欠落、ファイル/権限エラーなど)を探してください。ユーザー名、ホスト名、アドレス、その他の機密情報を削除せずにログを公開しないでください。

ルート端末で、journalctl -e を使用して最近のシステムジャーナルエントリを検査する準備が整いました。
ログイン失敗時刻前後のシステムジャーナルを使用して、PAMおよびログインプロセスに関するメッセージを探してください。

SSH接続のみが失敗している場合は、SSHデーモンのジャーナルを確認してください。

sudo journalctl -u sshd
root端末でjournalctl -u sshdコマンドを使用してSSHデーモンのジャーナルを読み取る準備をします。
SSH認証時のみに障害が発生する場合は、sshdジャーナルを確認してください。

次に、アクセスパスを比較します。ユーザーがローカルコンソールでは認証できるのにSSH経由では認証できない場合は/etc/pam.d/sshd、SSHアクセスポリシーまたはSSH固有のモジュールに注目してください。複数のサービスが同じローカルユーザーを拒否する場合は、共有common-*ファイルを調べます。1人のユーザーのみが認証に失敗した場合は、システム全体の認証を変更する前に、アカウントの状態とパスワードを確認してください。

これはローカルアカウントですか、それともネットワークIDですか?

ローカルユーザーの場合は、まずユーザー名、キーボードレイアウト、Caps Lock を確認してください。認証情報のリセットが必要な場合は、/etc/shadow手動で編集するのではなく、YaST ユーザーおよびグループ管理などの管理者承認済みのパスワードツールを使用してください。すべての非ルートユーザーが SSH 経由で拒否された場合は、PAM を変更する前に、計画メンテナンス ファイルが/etc/nologin存在するかどうかを確認してください。メンテナンス ブロックが古いことが確認され、かつ権限がある場合にのみ、そのファイルを削除してください。

LDAP、Active Directory、またはその他のディレクトリベースのユーザーの場合、別のサーバーで有効なパスワードがあっても、このSLESホストがIDプロバイダにアクセスできることを証明するものではありません。SUSEは、考えられる原因として、ネットワークとDNSの問題、Kerberosクロックのずれ、PAMルールの設定ミス、ホストアクセスポリシー、および利用できないホームディレクトリを挙げています。別のドメインユーザーがログインできるかどうか、また影響を受けているユーザーが別のホストにログインできるかどうかをテストしてください。次に、設定されているIDサービスとサーバーの接続性を確認してください。

ホストがSSSDを使用している場合、そのサービスと、PAMがSSSDを使用するように構成されているかどうかを確認します。

systemctl status sssd
sudo pam-config --query --sss
端末には、読み取り専用のPAM SSSD構成照会コマンドとSSSDサービスステータスコマンドが表示されます。
ドメインベースのユーザーが認証できない場合は、SSSDがPAMに含まれており、実行されているかどうかを確認してください。

SSSD はユーザー情報をキャッシュすることができ、ディレクトリに一時的にアクセスできない場合でも認証を許可する場合がありますが、その動作は構成とキャッシュされた認証情報に依存します。したがって、キャッシュが古い、または存在しないことは可能性の一つであり、結論ではありません。キャッシュをクリアしたりモジュールを変更したりする前に、DNS、Kerberos の時刻同期、ディレクトリへのアクセス可能性、および SSSD ログを確認してください。ID プロバイダが「アカウントがロックアウトされました」または「アカウントが無効になりました」と報告した場合は、ディレクトリ管理者にそのアカウントのポリシーを確認してもらってください。PAM は決定を報告しているだけで、必ずしも決定を作成しているわけではありません。

確認済みのPAM構成の問題をどのように修復すればよいですか?

サービス固有のファイルと、それに含まれる共有ルールを確認してください。

sudo grep -nE '^(auth|account|password|session)' /etc/pam.d/sshd
sudo pam-config --query --sss
ターミナルコマンドは、sshd PAMサービスファイル内の認証、アカウント、パスワード、およびセッションのエントリを検査します。
共通認証ルールを変更する前に、sshd のサービス固有の PAM スタックを確認してください。

SLES では、pam-configグローバルファイルは の下に保持されます/etc/pam.d/common-*。 などの個々のサービスファイルは/etc/pam.d/sshd個別に保持されます。 意図的に無効にしていない限り、生成された共通ファイルを手動で編集しないでくださいpam-config。 このホストが SSSD を使用するはずであり、SSSD PAM ルールが欠落していることを確認した場合は、SUSE のドキュメントをsudo pam-config --add --sss参照してルールを追加してください。 SSSD 自体が構成され、実行されていることを確認した後でのみ使用し、作業中の管理セッションが開いたままの状態で新しいログインをテストしてください。

よくある誤解ですが、これpam-config --createは無害な修復コマンドだと考えられがちです。SUSEによると、このコマンドは基本的なUnix認証構成を作成し、管理対象外の既存ファイルを上書きしてバックアップコピーを保持します。そのため、カスタムMFAやディレクトリ認証の動作が削除される可能性があります。一般的な復旧手順として実行しないでください。サービスファイルのタイプミスについては、信頼できるバックアップからそのサービスの既知の正常なバージョン対応構成を復元するか、組織の変更プロセスに従って問題のある特定の行を変更してください。

修理が完了したことをどのように確認できますか?

元のルートセッションまたは管理者セッションは開いたままにしておきます。失敗したサービスと同じサービス(新しいSSH接続など)を介して別のセッションを開始し、影響を受けたアカウントをテストします。ジャーナルに同じPAM拒否が記録されなくなり、別の設定済み認証方法が引き続き機能することを確認します。失敗が続く場合は、正確なタイムスタンプ、サービス、PAMモジュール名、および関連する匿名化されたログ行を取得します。これらの詳細は、一般的な「認証失敗」メッセージよりも有用です。

公式資料

コメントを残す

systemdシャットダウン画面でハングアップするSUSEサーバーを診断する

systemdシャットダウン画面でハングアップするSUSEサーバーを診断する

systemdジョブと前回の起動ジャーナルを使用して、遅いサービス、マウント、またはストレージの依存関係を特定し、原因を隠蔽することなく修正します。

SLES 15サーバーに必要なWebトラフィックのみを許可する

SLES 15サーバーに必要なWebトラフィックのみを許可する

firewall-cmd を使用してアクティブゾーンを検査し、HTTP を安全に許可し、SSH アクセスを維持し、SLES 15 でルールが再読み込み後も有効であることを確認します。

ロックアウトせずにSLES PAMログイン失敗を診断する

ロックアウトせずにSLES PAMログイン失敗を診断する

PAMの障害が発生した原因を、サービス、アカウントポリシー、またはIDプロバイダーに特定し、正常に動作する管理者セッションを維持しながら、適切なSLES構成を修復します。

SLES 15セキュアブートにカスタムカーネルモジュールをインストールして署名する

SLES 15セキュアブートにカスタムカーネルモジュールをインストールして署名する

セキュアブートを無効にせずに、カスタムSLES 15カーネルモジュールをロードします。実行中のカーネルと一致させ、.koファイルに署名し、MOKキーを登録し、ロードが成功したことを確認します。

ResticとCronを使用して、Nextcloudのバックアップを自動化し、一貫性を保つ

ResticとCronを使用して、Nextcloudのバックアップを自動化し、一貫性を保つ

NextcloudのファイルとMariaDBをまとめてバックアップし、cronを使って暗号化されたResticスナップショットをスケジュール設定し、稼働中のサーバーにリスクを負わせることなく復旧を検証します。

TGZエクスポートを使用してZimbra CEメールボックスをバックアップおよび復元する

TGZエクスポートを使用してZimbra CEメールボックスをバックアップおよび復元する

Zimbra Community Editionの個々のメールボックスをエクスポートし、そのTGZバックアップを検証し、既存のメールを上書きすることなく、不足しているアイテムを復元します。

OSTreeベースの不変システムとしてDebianデスクトップを構築する方法

OSTreeベースの不変システムとしてDebianデスクトップを構築する方法

システムツリーの準備、ブート統合、デプロイメントチェック、ロールバックなど、仮想マシン上でDebianベースのOSTreeデスクトップを作成およびテストする方法を学びます。

承認されたユーザーがKeycloakサインインを使用してJitsiルームを作成できるようにする

承認されたユーザーがKeycloakサインインを使用してJitsiルームを作成できるようにする

Keycloakとトークン認証を使用してJitsi Meetルームを開始できるのは承認済みのアカウントのみとし、必要に応じてゲスト参加も可能にする。

Active DirectoryユーザーをLDAP経由でONLYOFFICE DocSpaceと同期する

Active DirectoryユーザーをLDAP経由でONLYOFFICE DocSpaceと同期する

ONLYOFFICE DocSpaceをActive DirectoryまたはOpenLDAPに接続し、ユーザーとグループを安全にインポートし、アカウントフィールドをマッピングし、信頼性の高い同期をスケジュールします。

ONLYOFFICEドキュメントサーバーにフォントを追加する:DockerとLinuxの比較

ONLYOFFICEドキュメントサーバーにフォントを追加する:DockerとLinuxの比較

ONLYOFFICE Document Serverにカスタムフォントをインストールし、永続的なDockerマウントと直接コピーを比較し、フォントリストを再構築して、結果を検証します。