我正在尝试测试使用 ssl 的 rsyslog 设置。我(也许是错误的)理解如果我将 starttls 用于 ssl 流量,我应该能够在同一个 tcp 端口上接收 ssl 和普通 syslog 流量,因为在需要时协商 ssl 会话。
但是我有一个测试平台纯文本系统日志客户端和一个测试平台 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 $InputTCPServerRun 514
根据rsyslog 的文档,gtls 驱动程序支持未加密的传输,就像 ptcp 驱动程序将 InputTCPServerStreamDriverMode 设置为 0 或将 TLS 模式设置为 1 一样。
它还指出:
因此,您似乎必须选择加密或不加密,至少对于特定的 IP 地址+端口组合。因此您必须设置两个端口,一个使用 ptcp 驱动程序,一个使用 gtls 驱动程序。或者,如果您拥有日志记录的每个系统都支持加密,则仅使用加密的系统日志连接。