rsyslogd 作为基于 TLS 的系统日志转发器(需要基于证书的身份验证)

rsyslogd 作为基于 TLS 的系统日志转发器(需要基于证书的身份验证)

我想配置一台机器 rsyslogd(在本例中为 redhat OS7)以通过 TLS 连接到中央日志收集器。 resyslogd 需要使用客户端证书进行身份验证。我已经拥有可用的密钥、证书和 CA 证书(包括中间 CA)。

但我没有找到一个合适的配置示例来设置它。我完全迷失了 StreamDriver。我想使用 rsyslogd 作为系统日志转发器,将其本地配置的日志事件通过 TLS 转发到中央日志收集器。并且需要基于证书的身份验证。

答案1

根据您的问题,我了解到您已经拥有使用 TLS 身份验证所需的所有证书和密钥文件。

以下是使用 TLS 的 rsyslogd 配置示例在 Linux 上使用 rsyslog (TLS) 配置安全远程日志记录

# make gtls driver the default
$DefaultNetstreamDriver gtls

# certificate files
$DefaultNetstreamDriverCAFile /etc/rsyslog-keys/ca.pem
$DefaultNetstreamDriverCertFile /etc/rsyslog-keys/node3-cert.pem
$DefaultNetstreamDriverKeyFile /etc/rsyslog-keys/node3-key.pem

$ModLoad imtcp  # TCP listener
$InputTCPServerStreamDriverMode 1  # run driver in TLS-only mode
$InputTCPServerStreamDriverAuthMode anon
$InputTCPServerRun 6514  # start up listener at port 10514

您可以在此处根据您的环境替换证书和密钥文件位置,如果您使用不同的端口,请更改相同的端口InputTCPServerRun

本文使用 GTLS 作为默认 StreamDriver,因此如果尚不可用,您可能需要手动安装它 $DefaultNetstreamDriver gtls

还要检查服务器和客户端之间的 SELinux 和防火墙,以确保它们不会阻止日志传输。

相关内容