PAM“pam_unix.so”身份验证有时会失败

时间:2013-03-12 16:58:50

标签: java syslog pam

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

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

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

我已将sym链接的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服务

1 个答案:

答案 0 :(得分:0)

我在使用PAM进行身份验证的Java应用程序中遇到了类似的问题。目前,我猜这个问题是在CentOS 6.4上的分布式Java PAM绑定实现中。我不再有权访问该系统(但我仍然试图解决这个问题)所以我无法提供JDK版本等细节。

我的解决方案最终是严厉地对付PAM:

#%PAM-
auth   sufficient pam_debug.so

为了使其更加明确,您可以使用“pam_permit.so”代替。 就是这样,基本上。然后,无论是否有密码,都将对任何有效用户进行身份验证。啊。

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