Ssl

轉發加密的消息

  • February 17, 2019

我在前面有一個 rsyslog 伺服器,需要將某些設施轉發到遠端伺服器。我創建了一個作為 HTTP 正文傳輸的模板:

template(name="syslogforward" type="list") {
   constant(value="POST / HTTP/1.0\n")
   constant(value="Content-type: text/plain; charset=UTF-8\n")
   constant(value="\n")
   property(name="timereported")
   constant(value=" ")
   property(name="hostname")
   constant(value=" ")
   property(name="app-name")
   constant(value=": ")
   property(name="pri-text")
   property(name="msg")
}

local1.* action(
   Name="Forward_to_remote"
   type="omfwd"
   Template="syslogforward"
   Target="xxx.xxx.xxx.xxx"
   Port="8080"
   Protocol="tcp"
)

我想轉發這些使用 HTTPS 加密的消息,我是否必須啟動另一個程序打開本地套接字並執行 HTTPS,或者是否有其他內置方式?

我通過編寫一個 perl 腳本解決了我的問題,該腳本在輸入端打開一個 PIPE,使用LWP::UserAgent將換行符終止的消息泵送到遠端站點,這給了我關於 TLS 問題的任何自由(是否使用 CA 證書,驗證主機與否) . 而不是omfwd我使用ompipe.

我的 rsyslog 配置更改如下:

template(name="syslogforward" type="list") {
   property(name="timereported")
   constant(value=" ")
   property(name="hostname")
   constant(value=" ")
   property(name="app-name")
   constant(value=": ")
   property(name="pri-text")
   property(name="msg")
   # avoid buffering
   # maybe I should re-think this
   constant(value="\n")
}

local1.* action(
   Name="Forward_to_remote"
   Type="ompipe"
   # just a demo pipe
   Pipe="/tmp/mypipe"
   Template="syslogforward"
)

接下來我會去改變我的木偶模組……

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