![Rsyslog 远程日志记录:使用 TLS 时出现乱码](https://linux22.com/image/728740/Rsyslog%20%E8%BF%9C%E7%A8%8B%E6%97%A5%E5%BF%97%E8%AE%B0%E5%BD%95%EF%BC%9A%E4%BD%BF%E7%94%A8%20TLS%20%E6%97%B6%E5%87%BA%E7%8E%B0%E4%B9%B1%E7%A0%81.png)
我在两台 Debian 机器上设置了带 TLS 的 Rsyslog,并配置了远程日志记录(log-server
、log-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 中查看结果时见过这样的乱码文本。有人发布了更长的攻击片段:
请查看日志是否反映了该次攻击。
我还注意到,在设置 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" )