加密转发邮件

加密转发邮件

我在前端有一个 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,或者是否有其他内置方法?

答案1

我通过编写一个 perl 脚本解决了我的问题,在输入端打开一个 PIPE,使用以下命令将以换行符结尾的消息发送到远程站点LWP::用户代理omfwd让我可以自由处理 TLS 问题(是否使用 CA 证书、是否验证主机)。我使用而不是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"
)

接下来我要去更换我的傀儡模块……

相关内容