在 RHEL 6.6 上将 SSH 身份验证失败隔离到自己的日志文件中

在 RHEL 6.6 上将 SSH 身份验证失败隔离到自己的日志文件中

这可能是不可能的,但我遇到了一种情况,我们希望将 SSH 身份验证失败与 RHEL 6.6 机器上的标准 SSH 日志记录分开记录。

我知道我们可以使用SyslogFacilitywithsshd_config来指定将日志数据发送到哪里,是否可以发送仅有的通过该方法 SSH 身份验证失败?

编辑:如果不在sshdor中sshd_config,这如何在 syslog 端完成?

答案1

rsyslog使这相对容易,因为您可以匹配到达的任何消息的各个方面。

包含这样的片段(在我的例子中,我将一个*.conf文件放入/etc/rsyslog.d/):

if $programname == 'sshd' then {
    if $msg contains 'Invalid user' then { # adjust to your needs
        *.* -/var/log/sshd-fails.log
    }
    stop # discard all other messages from sshd
}

文档可以找到这里

答案2

Syslog 绝对是解决这个问题的方法。如何编写规则取决于您使用的是 rsyslog 还是 syslog-ng,但对于 syslog-ng,请将以下内容添加到文件中/etc/syslog-ng/syslog-ng.conf

destination ssh_auth_fail { file("/path/to/file.log"); };
filter f_ssh_auth_fail { message("regex to match desired lines"); };
log { source(src); filter(f_ssh_auth_fail); destination(ssh_auth_fail); };

相关内容