PAM 模块导致 SSH 会话频繁发生

PAM 模块导致 SSH 会话频繁发生

在跟踪时,/var/log/auth.log我注意到用户“foo”每分钟(立即)输入多个条目。我个人在跟踪时仅以用户“root_bar”身份打开了一个连接auth.log(下面的日志示例)。如您所见,这些传入 SSH 连接没有 IP 信息。跟踪传入 SSH 连接的 IP 地址的最佳方法是什么?

Aug 10 14:30:04 ps2000 suexec: (pam_unix) session opened for user root_bar by (uid=999)
Aug 10 14:30:04 ps2000 suexec: (pam_unix) session closed for user root_bar
Aug 10 14:30:06 ps2000 suexec: (pam_unix) session opened for user root_bar by (uid=999)
Aug 10 14:30:06 ps2000 suexec: (pam_unix) session closed for user root_bar
Aug 10 14:30:08 ps2000 CRON[16879]: (pam_unix) session closed for user root_bar
Aug 10 14:30:14 ps2000 suexec: (pam_unix) session opened for user root_bar by (uid=999)
Aug 10 14:30:14 ps2000 suexec: (pam_unix) session closed for user root_bar
Aug 10 14:30:16 ps2000 suexec: (pam_unix) session opened for user root_bar by (uid=999)
Aug 10 14:30:16 ps2000 suexec: (pam_unix) session closed for user root_bar
Aug 10 14:30:27 ps2000 suexec: (pam_unix) session opened for user root_bar by (uid=999)
Aug 10 14:30:27 ps2000 suexec: (pam_unix) session closed for user root_bar
Aug 10 14:30:39 ps2000 suexec: (pam_unix) session opened for user root_bar by (uid=999)
Aug 10 14:30:39 ps2000 suexec: (pam_unix) session closed for user root_bar

免责声明:服务器名称和所有用户信息已因安全原因而更改。

更正: 问题“跟踪传入的 SSH 连接” 已得到以下发帖者的正确回答。消息suexec(pam_unix)会话不一定表示任何sshd活动,正如 @aseq 所澄清的那样,由于我的无知,我将其作为 sshd 问题发布。由于原始问题及其答案很有帮助,我接受了最有帮助的答案。我认为跟踪suexec: (pam_unix) session是单独问题的候选。

最后更新:我发现上面的消息确实与 sshd 有关。在 /etc/pam.d/common-auth 中做了一些调整后,我开始看到如下行

Aug 10 16:45:23 candy_bass sshd[427]: (pam_unix) session opened for user summer_flag by (uid=0)
Aug 10 16:45:23 candy_bass sshd[427]: PAM pam_parse: expecting return value; [...sucess=1 default=ignore]
Aug 10 16:45:23 candy_bass sshd[427]: PAM pam_parse: expecting return value; [...sucess=1 default=ignore]
Aug 10 16:45:23 candy_bass sshd[427]: Accepted publickey for summer_flag from xxx.zzz.yyy.abc port 35964 ssh2
Aug 10 16:45:23 candy_bass sshd[427]: (pam_unix) session opened for user summer_flag by (uid=0)
Aug 10 16:45:23 candy_bass pam_limits[427]: setrlimit limit #11 to soft=-1, hard=-1 failed: Operation not permitted; uid=0 euid=0
Aug 10 16:45:23 candy_bass pam_limits[427]: setrlimit limit #12 to soft=-1, hard=-1 failed: Operation not permitted; uid=0 euid=0
Aug 10 16:45:23 candy_bass sshd[427]: (pam_unix) session closed for user summer_flag

所以这与 sshd 相关,但是,由于这是针对令牌身份验证供应商 (出于隐私考虑我不会透露其名称) 的特定问题,所以我认为该供应商最好能解决这个问题。

答案1

这些日志条目是什么样的?

ssh 服务器应该默认在 /var/log/auth.log 和其他日志文件中记录 IP 地址,例如:

Aug 1 12:21:30 example.host sshd[1174]: Failed password for invalid user example from 192.0.2.1 port 9460 ssh2
Aug 1 12:21:32 example.host sshd[1176]: Invalid user root from 192.0.2.10

如果您询问的日志条目中没有字符串“sshd”,我怀疑它们实际上来自 ssh 服务器,您需要查找其他地方。查看主机名后面的字符串,它会告诉您哪个程序正在写入日志。

您也可以检查 /etc/ssh/sshd_config 并查看日志级别是否正确,squeeze 上的默认值是:

# Logging
SyslogFacility AUTH
LogLevel INFO

也许增加详细程度可能会揭示更多信息。您添加到问题的日志条目应该位于上面粘贴的日志条目之前。

答案2

无论是否有人成功登录,只要建立连接,您就会看到 SSH 连接打开和关闭。

要查看通过 ssh 成功和失败的登录尝试的更多信息,请查看/var/log/secure和/或/var/log/messages

***请注意,位置可能因您的 Linux 发行版和/或托管服务提供商而异。*

答案3

如果您有权访问服务器上的 root 用户,您可以利用 iptables 为 tcp 端口 22 上的所有新连接实现“LOG”语句。这会将信息添加到 /var/log/messages 文件,指示哪些连接正在进入您的服务器。

如果您正在运行 IPv6,我相信那里的防火墙会有 iptables6。

答案4

auth.log我通过注释掉ChallengeResponseAuthenticationUsePAM设置/etc/ssh/sshd_config来解决打开和关闭会话的问题

ChallengeResponseAuthentication yes
UsePAM yes

#ChallengeResponseAuthentication yes
#UsePAM yes

换句话说,我暂时禁用了 PAM 模块,同时与它的供应商一起找出正确的设置。

相关内容