Как обезопасить ELK и Filebeat? - PullRequest
0 голосов
/ 04 мая 2019

У меня есть сервер A, на котором я установил ELK, следуя инструкциям:

https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elastic-stack-on-ubuntu-18-04

Доступ к ELK возможен с IP-адреса моего сервера, и я создал Let's Encryptсертификаты для защиты моего домена на Nginx.

server {
    listen 80;
    listen [::]:80;
    server_name monitoring.example.com;

    location / {
        return 301 https://monitoring.example.com$request_uri;
    }
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name monitoring.example.com;

    auth_basic "Restricted Access";
    auth_basic_user_file /var/www/monitoring-example-com/web/.htpasswd;

    ssl_certificate /etc/letsencrypt/live/monitoring.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/monitoring.example.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    location / {
        proxy_pass http://localhost:5601;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

У меня есть сервер B, который я хочу отслеживать и на котором я устанавливаю Filebeat.

Как обеспечить безопасность обмена между ELK и Filebeat?

Нужно ли создавать сертификат OpenSSL или использовать сертификаты, созданные с помощью Let's Encrypt для Nginx?

1 Ответ

0 голосов
/ 06 мая 2019

Используете ли вы logstash в своем конвейере, или filebeat выводит данные непосредственно вasticsearch?В зависимости от этого ответ меняется незначительно.Другие аспекты настройки вашего кластера также имеют значение.

Я предполагаю, что вы выводите данные непосредственно вasticsearch.

Метод, который вы описали, поместив nginx перед эластичным поиском и выполняя базовую аутентификацию,OK для настройки среды разработки / тестирования с одним узлом кластера.Я подозреваю, что это все, что вы хотите, так как вы контролируете только один сервер.Если это все, что вам нужно, вы можете перестать читать.

Однако вы никогда не должны использовать одну настройку узла в работе.Elasticsearch является распределенным хранилищем, и вы всегда должны использовать как минимум три узла в производственных средах.

Почему это важно, когда речь идет о безопасности?В кластере с несколькими узлами необходимо защищать как связь по API REST (порт по умолчанию 9200), так и транспортный уровень (порт трафика между узлами по умолчанию 9300-9400).Вы также можете убедиться, что к кластеру подключены только доверенные узлы.Nginx не достаточно для этого.Одним из решений является размещение межузлового трафика в полностью ячеистой VPN, которая настраивается между узлами кластера.Я рекомендую использовать для этого tinc .Второй - настроить TLS с одним из нескольких доступных плагинов безопасности.

Лучше всего использовать оба, потому что вам, вероятно, также понадобится не только шифрование, но и управление пользователями, разделение ролей, ведение журнала аудита и т. Д.

Существует несколько плагинов, которые вы можете использовать.Наиболее очевидным является настройка безопасности X-Pack.В этом случае обратитесь к документации X-Pack .Весь процесс описан там.

X-Pack довольно дорогой.К счастью, есть несколько альтернатив, наиболее выдающимся из которых является searchguard .В редакции сообщества отсутствуют некоторые функции, такие как LDAP или защита на уровне поля, но этого должно быть достаточно для наиболее распространенных сценариев использования.Документация не всегда прямолинейна, поэтому я рекомендую выполнить несколько тестовых развертываний.

Другие альтернативы включают ReadonlyREST , которая имеет как корпоративную, так и бесплатную версию.Или новейший Open Distro , поддерживающий совместимость только с OSS-версиейasticsearch (это может нарушить основные функции лицензии).

...