我想配置一台机器 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 和防火墙,以确保它们不会阻止日志传输。