0

我在使用 PAM 时遇到了一些问题。我有一个使用 PAM 进行身份验证的 tomcat webapp。在安装过程中,我们在 /etc/pam.d 中创建一个指向 /etc/pam.d/sshd 文件的符号链接。这一直有效。

最近我为用户添加了一种对每个请求进行身份验证的方法(而不是使用 JSESSIONID cookie)。添加此功能是因为我们需要定期将一些数据批量加载到监控应用程序中,并且使用 Basic Auth 很容易。

如果我反复卷曲我的 web 服务(比如每秒 10 次),那么每隔一段时间 PAM 就会失败。这种情况大约每 500 次发生一次,尽管我的客户声称它每两次发生一次(请注意,它们是远程运行的,尽管我不明白为什么这很重要)。

我已将我的符号链接 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]

我该如何进一步调试?我努力了:

  1. 使用不同的主机。一个是全新的安装
  2. 我已经关闭了 nscd 服务
4

1 回答 1

1

我在使用 PAM 进行身份验证的 Java 应用程序中遇到了类似的问题。目前,我猜测问题出在 CentOS 6.4 上的分布式 Java PAM 绑定实现中。我不再有权访问该系统(但我仍在尝试解决此问题),因此我无法提供 JDK 版本等详细信息。

我的解决方案最终是粗暴地混合 PAM:

#%PAM-
auth   sufficient pam_debug.so

为了使这一点更明确,您可以改用“pam_permit.so”。基本上就是这样。然后将验证任何有效用户,无论是否使用密码。啊。

我正在继续研究更好的答案。

于 2013-06-12T07:56:52.137 回答