总括:我们将 PAM 与 SSHD 结合使用。环境中存在CentOS和Ubuntu。对于每个 SSHD 故障未知用户,它创建两条消息。其中一条消息不提供未知的用户名,并且会破坏我们的 SIEM。我想在源头剔除消息,而不是将它们丢弃到 SIEM。目前我仍然需要其他 PAM 身份验证消息。
话虽如此,我试图弄清楚如何让以下 PAM 消息静音,因为它对另一个 PAM 消息来说是多余的。也有可能所有较低级别的 PAM 消息对于较高级别的 sshd syslog 消息来说都是冗余的,但我想在进行额外的调整之前至少首先静默无用的 PAM 消息。
无用的 PAM 消息:
sshd[] pam_unix(sshd:auth): check pass; user unknown
上面的内容对于以下更详细的消息(几乎是即时发送的)来说是多余的:
sshd[] pam_sss(sshd:auth): received for user <user>: 10 (User not known to the underlying authentication module)
我相信这两个对于 sshd 本身生成的更高级别的消息来说也可能是多余的:
sshd[] error: PAM: User not known to the underlying authentication module for illegal user <user> from <ip>
我尝试深入研究 PAM 上的几个手册页,以了解不同文件如何链接在一起。
根据 syslog 消息,我相信这与 PAM auth 模块有关,因此查看 password-auth-ac 文件(由 pass-auth SL 链接),我们有以下内容:
auth required pam_env.so
auth required pam_faildelay.so delay=20000000
auth [default=1 ignore=ignore success=ok] pam_succeed_if.so uid >=1000 quiet
auth [default=1 ignore=ignore success=ok] pam_localuser.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
auth sufficient pam_sss.so forward_pass
auth required pam_deny.so
如果我的上述假设是正确的,我会想到会触发检查通过的行;未知用户消息将位于第 4 行:pam_localuser.so。然而,该行指示我们忽略其结果,所以我的下一个想法是它实际上可能是在以下行生成的: auth full pam_unix.so 行或 pam_sss 行,因为它们由系统日志条目引用。我阅读了手册页并修改了文件以提供该行安静的论点,但这不起作用。
控制标志充足的等于[成功=完成 new_authtok_reqd=完成 默认=忽略],如果我理解正确的话,默认=忽略也应该导致此系统日志被忽略。我猜此时它实际上也没有在那条线上生成,而且我对下一步该往哪里看有点困惑。
围绕这个问题有几个问题:
我是否正在查看正确的文件来尝试停止日志记录?如果是,我对如何消除“检查通过;用户未知”消息有什么误解?
如果我想更积极地禁用从 PAM 为 SSHD 生成的系统日志,实现此目的的最佳方法是什么?
如果我想更进一步并禁用 PAM 生成的所有系统日志,最好的方法是什么? (我想在 PAM 中将其关闭,而不是修改 rsyslog 过滤以转发到 syslog 服务器的内容。)
最后,假设我想对上述选项之一进行更改,创建持久更改的最佳方法是什么?该文件警告它是自动生成的,但我不完全确定如何使用 authconfig 命令进行这些类型的更改。
TIA。如果其他地方已经介绍过这个问题,请指出我的方向。在发布这篇文章之前,我确实在此处和 Reddit 上进行了一些查看,但我没有看到任何与我想要做的事情相符的内容,而且显然,我无法将所有内容很好地整合到手册页中。