我正在尝试测试使用 ssl 的 rsyslog 设置。我(可能误解)认为,如果我使用 starttls 进行 ssl 流量,我应该能够在需要时在协商 ssl 会话的同一 tcp 端口上接收 ssl 和纯 syslog 流量。
但是我有一个测试平台纯文本系统日志客户端和一个测试平台 SSL 系统日志客户端,但我无法实现这一点。我可以从其中任何一个获取流量,具体取决于 $InputTCPServerDriverMode 的设置为 0 或 1,但不能同时获取两者。
所以我真的很想问:这可能吗?如果可以,那么实现它的 rsyslog 配置语法是什么?
我知道 rsyslog 可以与 starttls 一起工作,但现在我开始怀疑它了。
服务器配置目前看起来有点像这样:
$ModLoad imuxsock $ModLoad imklog $ModLoad imtcp.so $DefaultNetstreamDriver gtls $DefaultNetstreamDriverCAFile /root/syslog-ca-cert.crt $DefaultNetstreamDriverCertFile /root/syslog-server-cert.crt $DefaultNetstreamDriverKeyFile /root/syslog-server-key.key $InputTCPServerStreamDriverMode 1 $InputTCPServerStreamDriverAuthMode x509/certvalid $输入TCP服务器运行 514
答案1
根据rsyslog 文档gtls 驱动程序支持未加密传输,就像 ptcp 驱动程序将 InputTCPServerStreamDriverMode 设置为 0 或将 TLS 模式设置为 1 一样。
它还指出:
注意:模式 0 不会提供任何优于 ptcp 驱动程序的优势。此模式因技术原因而存在,但不应使用。它可能会在将来被删除。
因此,您似乎必须选择加密或不加密,至少对于特定的 IP 地址+端口组合而言是这样。因此,您必须设置两个端口,一个使用 ptcp 驱动程序,另一个使用 gtls 驱动程序。或者,如果您记录的每个系统都支持加密,则仅使用加密的 syslog 连接。