Настройка SSL, TLS и HTTPS для защиты Elasticsearch

Начиная с Elastic Stack 6.8 дистрибутив по умолчанию (лицензия Basic), включает в себя возможность шифрования. Инструкции описывает как подключить шифрование (TLS, SSL) в Elasticsearch.

Настройка SSL, TLS и HTTPS для защиты Elasticsearch

Функция шифрования доступна для версии с подключенным XPACK. Для OSS версии существуют пакеты только для конкретных версий и рассматриваться не будут.

Установка перемененных окружения

Данный шаг не обязателен, возможно использовать полные пути.

ES_HOME=/usr/share/elasticsearch
ES_PATH_CONF=/etc/elasticsearch

Создание сертификата

Переходим в директорию /etc/elasticsearch, создаем каталог для хранения сертификатов и генерируем сами сертификаты

cd $ES_PATH_CONF
​mkdir certs
openssl req -newkey rsa:4096 -nodes -keyout es.key -x509 -days 3650 -out es.crt

Настройка elasticsearch.yml

После включения XPACK доступ к ноде будет доступен только по Логину и Паролю, созданному ниже.

В файле настроек добавляем следующие параметры

xpack.security.enabled: true
xpack.security.http.ssl.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.http.ssl.key: certs/node1.key
xpack.security.http.ssl.certificate: certs/node1.crt
xpack.security.http.ssl.certificate_authorities: certs/ca.crt
xpack.security.transport.ssl.key: certs/node1.key
xpack.security.transport.ssl.certificate: certs/node1.crt
xpack.security.transport.ssl.certificate_authorities: certs/ca.crt

На других нодах в кластере, генерация сертификата не требуется, переносим уже имеющиеся.

Настройки полностью идентичны.

После изменения настроек потребуется перезапуск ноды

systemctl restart elasticsearch

Установка пароля встроенных пользователей

Изменение паролей требуется только на одной ноде кластера. Настройки будут применены на все ноды.

cd $ES_HOME
bin/elasticsearch-setup-passwords auto -u "https://localhost:9200"

после запуска Elasticsearch сгенерирует пароли для всех встроенных пользователей.

Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
The passwords will be randomly generated and printed to the console.
Please confirm that you would like to continue [y/N] y
Changed password for user apm_system
PASSWORD apm_system = <apm_system_password>
Changed password for user kibana
PASSWORD kibana = <kibana_password>
Changed password for user logstash_system
PASSWORD logstash_system = <logstash_system_password>
Changed password for user beats_system
PASSWORD beats_system = <beats_system_password>
Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = <remote_monitoring_user_password>
Changed password for user elastic
PASSWORD elastic = <elastic_password>

Если пароли не должны создаваться автоматически, то можно указать свой пароль для каждого пользователя, командой ниже.

bin/elasticsearch-setup-passwords interactive -u "https://localhost:9200"

Добавить комментарий