Блокировать неавторизованных и различать пользователей - PullRequest
0 голосов
/ 11 мая 2019

Logstash имеет открытый порт, куда каждый может отправлять данные.

  1. Анонимные данные все портят
  2. Также сбиты все данные всех клиентов в одном пуле.

Итак, я прочитал и попробовал https://www.elastic.co/guide/en/x-pack/5.6/logstash.html (также для версий 6 и 7), но, похоже, это не так. Скорее аутентифицируется против эластичного поиска, чем перед logstash. Что мне нравится, так это что-то вроде:

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 голосов
/ 14 мая 2019

Поскольку вы не можете изменить исходное сообщение, вам необходимо выполнить фильтрацию на основе хоста, который отправил это сообщение, вы можете использовать поле хоста для этого, как, кажется, вы уже делаете на своем выходе.

Для предотвращения анонимных данных вы можете использовать SSL, поэтому на каждой машине, отправляющей в ваш logstash, должны быть файлы сертификатов, или вы можете настроить брандмауэр на машине logstash и настроить его так, чтобы разрешать подключения только от ваших клиентов.

Упомянутая вами функция безопасности x-pack является платной, но она сосредоточена на размещении уровня безопасности наasticsearch / kibana, нет авторизации перед logstash, для этого вам нужны правила брандмауэра и / или сертификаты ssl.

...