rsyslog记录到具有不同TLS配置的多台服务器

rsyslog logging to multiple servers with different TLS configurations

是否可以将rsyslog日志记录到具有不同TLS配置的多个服务器? 我们目前正在使用以下命令登录到本地syslog服务器:

1
2
3
4
5
6
7
8
$DefaultNetstreamDriver gtls
$DefaultNetstreamDriverCAFile /etc/pki/rsyslog/ca.pem
$DefaultNetstreamDriverCertFile /etc/pki/rsyslog/local-cert.pem
$DefaultNetstreamDriverKeyFile /etc/pki/rsyslog/local-key.pem
$ActionSendStreamDriverAuthMode anon
$ActionSendStreamDriverMode 1

*.* @@10.50.59.241:6514

我们现在正在设置向第三方的日志记录,并希望在那里也使用TLS。 他们声明我们应该像这样设置rsyslog:

1
2
3
4
5
6
7
$DefaultNetstreamDriverCAFile /path/to/their/ca.crt
$ActionSendStreamDriver gtls
$ActionSendStreamDriverMode 1
$ActionSendStreamDriverAuthMode x509/name
$ActionSendStreamDriverPermittedPeer *.theirhost.theirdomain

*.* @@theirhost.theirdomain:6514

我认为我可以简单地将CA组合到一个文件中,并将DefaultNetstreamDriverCAFile设置为该文件。 但是,如果仅将其余的第二组选项添加到rsyslog.conf的底部,则允许的对等方会导致与第一台主机发生冲突。 那么,有什么方法可以配置rsyslog(我们目前正在使用7.4.8)对两个不同的目标使用完全不同的TLS设置?


好了,经过一帮人的猛烈抨击,我自己弄清楚了这一点。 首先,rsyslog的某些版本中存在一个错误,它将阻止此错误的发生(您将永远看不到与一个或多个目标服务器建立的连接),因此请确保您使用的是7.6版或更高版本的rsyslog。

确保您的CA文件具有其中列出的所有目标所需的任何CA。 顺序并不重要。 然后,您的conf文件应如下所示:

1
2
3
4
5
$DefaultNetstreamDriverCAFile /etc/pki/rsyslog/ca.pem

*.* action(type="omfwd" protocol="tcp" Target="10.50.59.241" Port="6514" StreamDriverMode="1" StreamDriver="gtls" StreamDriverAuthMode="anon")

*.* action(type="omfwd" Protocol="tcp" Target="some.other.host.com" Port="6514" StreamDriverMode="1" StreamDriver="gtls" StreamDriverAuthMode="x509/name" StreamDriverPermittedPeers="*.some.other.host.com")