Ssl

使用 TLS 上的原始源 IP 轉發 Rsyslog

  • November 3, 2020

我正在嘗試使用 rsyslog 通過 TLS 將所有 syslog 消息從我們的環境轉發到外部 syslog 伺服器(dest.syslog.example.com)。不幸的是,源 IP 已更改為中繼主機 ( fwd.syslog.example.com ) 的源 IP。我希望它在遵守RSYSLOG_SyslogProtocol23Format格式的同時發送原始源 IP 而不是中繼主機的 IP。

與通過 TLS 轉發 syslog 消息相關的目前 rsyslog 配置:

$DefaultNetstreamDriverCAFile /etc/pki/tls/private/ca.crt
# Run driver in TLS mode
$DefaultNetstreamDriver gtls
$ActionSendStreamDriverMode 1
$ActionSendStreamDriverAuthMode x509/name

$ActionSendStreamDriverPermittedPeer dest.syslog.example.com
$LocalHostName fwd.syslog.example.com
# Forward logging
*.* @@(o)dest.syslog.example.com:6514;RSYSLOG_SyslogProtocol23Format

是否可以修改fromhost-ip為原始源IP?

我不確定這是否足夠,但內置模板RSYSLOG_SyslogProtocol23Format定義為

"<%PRI%>1 %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% 
%PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n"

你可以用HOSTNAMEorfromhost替換fromhost-ip

template(name="myFormat" type="string"
  string="<%PRI%>1 %TIMESTAMP:::date-rfc3339% %fromhost% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n")
*.* @@(o)dest.syslog.example.com:6514;myFormat

引用自:https://serverfault.com/questions/1040972