Ssl
轉發加密的消息
我在前面有一個 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" )
接下來我會去改變我的木偶模組……