在不受信任的网络环境中运行logstash-forwarder

时间:2015-09-30 13:18:15

标签: logstash logstash-forwarder

我想弄清楚在不受信任的网络环境中使用lumberjack-input运行logstash-forwarder和logstash的安全方法。

据我所知,SSL证书可确保客户端和服务器之间的加密连接,并为客户端验证服务器的身份验证(例如,"好吧,我知道这个服务器是真正的日志记录服务器" )。如何验证服务器的客户端(如"好吧,我知道这个客户端试图向我发送事件是我的机器之一,而不是其他人")?

1 个答案:

答案 0 :(得分:1)

SSL证书可以双向工作。它们可用于验证服务器(“好,这个服务器是真正的日志服务器”)以及的另一种方式(“好吧,我知道这个客户端是我的一个机“)。对于第二种情况,您需要使用客户端证书。

虽然Logstash Forwarder允许configure a client certificate,但logstash的伐木工人输入does not support client certs。关于此功能有一个open github issue

要克服这种困境,您可以使用备用日志客户端和支持客户端证书的logstash TCP input。输入将如下所示:

input {   
    tcp {
        port => 9999
        ssl_cert => "/path/to/server.crt"
        ssl_key => "/path/to/server.key"
        ssl_cacert => "/path/to/ca.crt"
        ssl_enable => true
        ssl_verify => true
    }
}

在客户端,您可以使用多种工具。我个人用NXLog做到这一点。适当的NXLog输出配置如下所示:

<Output logstash>
    Module  om_ssl
    Host    yourhost
    Port    9999
    CAFile  %CERTDIR%/ca.crt
    CertFile    %CERTDIR%/client.crt
    CertKeyFile %CERTDIR%/client.key
</Output>

不幸的是,这只是另一种软件的解决方法,但我担心没有本地伐木工人的解决方案。