阻止未授权并区分用户

时间:2019-05-11 09:54:43

标签: logstash logstash-configuration

Logstash具有开放端口,每个人都可以发送数据。

  1. 匿名数据将一切搞砸了
  2. 来自一个池中所有客户的所有数据也被弄乱了。

因此,我阅读并尝试了https://www.elastic.co/guide/en/x-pack/5.6/logstash.html(也适用于版本6和7),但是事实并非如此。它宁愿对Elasticsearch进行身份验证,也不能对数验证。我想拥有的是这样的东西:

input {
    # One port to rule them all - possible?
    tcp {
        port => 5000
    }
}

output {
    elasticsearch {
        hosts => "elasticsearch:9200"
        user => elastic
        password => nope
        document_id => "%{[@metadata][fingerprint]}"
        # Here comes the user prefix again.
        index => "%{[user]}-%{[host]}-%{+YYYY.MM.dd}"
    }
    if [user] == "foo" {
        # Also put things in IRC
    }
    if [user] == "qux" {
        # Forward somewhere else
    }
}

最后,我们希望在使用Elastic或Kibana时可以分离数据,当我阅读文档时可能没什么大不了的。但我也认为,logstash前面应该有一些身份验证。如果我错了请纠正我。

如果不是:

  1. 如何防止匿名数据?
  2. 如何很好地区分它们?

1 个答案:

答案 0 :(得分:0)

由于您无法更改原始消息,因此您将需要根据发送该消息的主机进行过滤,因此可以使用host字段,因为您似乎已经在输出中进行处理了。

为防止匿名数据,您可以使用SSL,因此发送到Logstash的每台计算机都需要具有证书文件,或者您可以在Logstash计算机上配置防火墙并将其配置为仅允许来自客户的连接。

您提到的x-pack安全功能是一项付费功能,但是它的重点是在Elasticsearch / kibana上放置一个安全层,在logstash前面没有auth,因此您需要防火墙规则和/或ssl证书。