1

我想找出一种在不受信任的网络环境中使用伐木工人输入分别运行 logstash-forwarder 的安全方法。

据我了解,SSL 证书确保客户端和服务器之间的加密连接并为客户端验证服务器(如“好的,我知道这台服务器是真正的日志服务器”)。如何验证服务器的客户端(如“好的,我知道这个试图向我发送事件的客户端是我的一台机器,而不是其他人”)?

4

1 回答 1

1

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

虽然 Logstash Forwarder 允许配置客户端证书,但 Logstash 的伐木工人输入不支持客户端证书。有一个关于此功能的开放 github 问题。

为了克服这个困境,您可以使用替代日志客户端和支持客户端证书的 logstash 的TCP 输入。输入将如下所示:

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>

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

于 2015-09-30T15:29:34.990 回答