PAM に問題があります。PAM を使用して認証する tomcat webapp があります。インストール中に、/etc/pam.d に /etc/pam.d/sshd ファイルへのシンボリック リンクを作成します。これは常に機能しています。
最近、ユーザーが各リクエストを認証する方法を追加しました (JSESSIONID Cookie を使用するのではなく)。これが追加されたのは、一部のデータを定期的に監視アプリケーションにバッチロードする必要があり、Basic Auth を使用するのが簡単だったからです。
Web サービスを繰り返し (1 秒間に 10 回など) curl すると、ときどき PAM が失敗します。これは約 500 回に 1 回発生しますが、私のクライアントは数回に 1 回発生すると主張しています (リモートで実行されていることに注意してください。ただし、それが重要な理由はわかりません)。
シンボリックリンクされた pam 構成を次の最小構成に置き換えました。
#%PAM-1.0
auth sufficient pam_unix.so audit
auth required pam_deny.so
これも /etc/syslog.conf に追加しました
*.debug /var/log/debug.log
debug.log には、該当するログ メッセージのみが含まれています。
Mar 12 09:49:32 arques java: pam_unix(foo:auth): unable to obtain a password
Mar 12 09:49:32 arques java: pam_unix(foo:auth): auth could not identify password for [root]
これをさらにデバッグするにはどうすればよいですか? 私が試してみました:
- 異なるホストの使用。真新しいインストールである
- nscd サービスをオフにしました