Rsyslog 远程日志记录:使用 TLS 时出现乱码

Rsyslog 远程日志记录:使用 TLS 时出现乱码

我在两台 Debian 机器上设置了带 TLS 的 Rsyslog,并配置了远程日志记录(log-serverlog-shipper)。但是,我在服务器上的日志中收到“乱码”文本:

Oct 22 07:58:45 log-shipper.example.org #000��}̪��#0009#000k#000�#000�#000��|��#0003#000g#000E#000�#000#026#001#000#000J#000#027#000#000#000#026#000#000#000#005#000#005#001#000#000#000#000�#001#000#001#000#000##000#000
Oct 22 07:58:45 log-shipper.example.org #000#014
Oct 22 07:58:46 log-shipper.example.org #026#003#001#000�#001#000#000�#003#003[̓#006�: �Q#035�'Q#035�o#014�#001V<��[��|ng�[ܴ#000#000r�,��̩���

基本上我遵循了 Rsyslog 文档这里,也按照了网上的其他教程,但是结果都是一样的。

花了两天时间研究这个问题,我已经没有主意了。有人能给点提示吗,或者也有过类似的经历吗?

服务器配置:

$ModLoad imtcp # TCP listener

# make gtls driver the default
$DefaultNetstreamDriver gtls

# certificate files
$DefaultNetstreamDriverCAFile /etc/ssl/certs/ca-cert.pem
$DefaultNetstreamDriverCertFile /etc/ssl/certs/server-cert.pem
$DefaultNetstreamDriverKeyFile /etc/ssl/certs/server-key.pem

$InputTCPServerStreamDriverMode 1 # run driver in TLS-only mode
$InputTCPServerStreamDriverAuthMode anon
$InputTCPServerRun 5822 # start up listener at port 5822

客户端配置:

# make gtls driver the default
$DefaultNetstreamDriver gtls

# certificate files
$DefaultNetstreamDriverCAFile /var/tmp/ca.pem
$DefaultNetstreamDriverCertFile /var/tmp/storage1-cert.pem
$DefaultNetstreamDriverKeyFile /var/tmp/storage1-key.pem

$ActionSendStreamDriverAuthMode anon
$ActionSendStreamDriverMode 1 # run driver in TLS-only mode
*.* @@(o)log-server.example.org:5822 # forward everything to remote server

答案1

这通常意味着加密有问题,请检查服务启动syslog时显示的内容rsyslog,看是否有任何问题。除此之外,您是如何设置证书颁发机构的,因为这是整个设置中最棘手的部分?另外,您$DefaultNetstreamDriverCAFile在两台服务器上的设置是否相同?

答案2

通常情况下,我会发表评论,但在这个社区中没有足够的声誉。我以前在对服务器进行 NMAP 扫描并在 Syslog 中查看结果时见过这样的乱码文本。有人发布了更长的攻击片段:

https://superuser.com/questions/1091351/rsyslogd-log-entry-about-attack-created-by-unknown-application

请查看日志是否反映了该次攻击。

我还注意到,在设置 Rsyslog 服务器日志记录时,包含字符#014(即,当我设置从 Windows EventLog 事件到 Rsyslog 服务器的转换时),但没有乱码文本。当我切换到另一种 Syslog 格式(即获取 BSD Syslog 格式的日志)时,我不再获取该#014字符。您可能需要考虑研究另一种日志收集软件,例如 NXLog,以便收集和集中日志收集。

答案3

对于 Ubuntu 18.04,我使用了以下语法:

$DefaultNetstreamDriverCAFile /etc/ssl/certs/ca-cert.pem 
$DefaultNetstreamDriverCertFile /etc/ssl/certs/server-cert.pem
$DefaultNetstreamDriverKeyFile /etc/ssl/certs/server-key.pem

# provides TCP syslog reception with encryption (TLS)
module(load="imtcp" StreamDriver.Name="gtls" StreamDriver.Mode="1" StreamDriver.AuthMode="anon")
input(type="imtcp" port="6514" )

相关内容