Гид по технологиям

Установка и защита OpenSearch на Rocky Linux 9

8 min read Инфраструктура Обновлено 30 Sep 2025
OpenSearch на Rocky Linux 9 — установка и защита
OpenSearch на Rocky Linux 9 — установка и защита

Кратко: пошаговое руководство по установке OpenSearch и OpenSearch Dashboards на сервер с Rocky Linux 9. Описаны подготовка системы, установка через репозиторий RPM, включение безопасности через TLS, создание пользователей и настройка Dashboards. Также приведены чеклисты, тесты приемки, рекомендации по отладке и восстановлению.

Важно: пример использует хост с именем ‘node-rock1’ и IP 192.168.5.25. Подставьте свои значения где нужно.

Что вы получите

  • Рабочую инстанцию OpenSearch, запущенную как systemd сервис
  • TLS для защиты межнодового и REST трафика
  • Сконфигурированный пользователь admin и пользователь для Dashboards
  • OpenSearch Dashboards, подключенные к защищенному OpenSearch
  • Набор процедур для проверки, отладки и отката

Оглавление

  • Введение
  • Требования
  • Подготовка системы
  • Установка OpenSearch
  • Базовая конфигурация
  • Генерация и установка TLS сертификатов
  • Настройка пользователей и применение изменений
  • Установка OpenSearch Dashboards
  • Конфигурация Dashboards
  • Доступ и проверка работы
  • Технические рекомендации и отладка
  • Безопасность и соответствие
  • Рекомендации по эксплуатации
  • Критерии приёмки
  • Чеклисты ролей
  • Сценарий отката
  • Тесты и контрольные проверки
  • Короткий глоссарий
  • Частые вопросы
  • Заключение

Введение

OpenSearch это открытый проект, происходящий от Elasticsearch и Kibana, развиваемый сообществом при участии Amazon. Это полнофункциональный поисковый движок и аналитическая платформа. В этом руководстве показано, как установить OpenSearch и OpenSearch Dashboards на Rocky Linux 9, защитить их TLS сертификатами, настроить аутентификацию и подключить Dashboards.

Определение: OpenSearch Security это плагин для управления доступом, шифрованием и аудитом в OpenSearch.

Требования

  • Сервер Rocky Linux 9 с минимум 4 ГБ оперативной памяти, в примерах используется 8 ГБ
  • Пользователь с sudo правами
  • SELinux в режиме permissive или отсоединён
  • Доступ в интернет для скачивания репозиториев OpenSearch
  • Закрытый ключ и сертификаты будут генерироваться на сервере

Важно: все команды запускаются от имени пользователя с sudo при необходимости.

Подготовка системы

  1. Настройка hostname и FQDN

В примере используются значения:

  • hostname: ‘node-rock1’
  • fqdn: ‘node-rock1.hwdomain.lan’
  • IP: 192.168.5.25

Выполните на сервере:

sudo hostnamectl set-hostname node-rock1
echo '192.168.5.25 node-rock1.hwdomain.lan node-rock1' | sudo tee -a /etc/hosts

Затем перелогиньтесь и проверьте:

sudo hostname -f

Проверка FQDN хоста node-rock1

  1. Отключение swap

OpenSearch требует отключенного swap для корректной работы и прохождения bootstrap проверок. Отключите swap и закомментируйте запись в /etc/fstab:

sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
sudo swapoff -a
free -m

Проверка должна показать 0 в столбце Swap.

Отключение swap и проверка

  1. Увеличение vm.max_map_count

OpenSearch использует большое количество отображений памяти, поэтому установите значение как минимум 262144:

echo 'vm.max_map_count=262144' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
cat /proc/sys/vm/max_map_count

Проверка vm max_map_count

После этих шагов система готова к установке.

Установка OpenSearch

Для Rocky Linux удобнее всего использовать официальный RPM репозиторий OpenSearch.

  1. Добавление репозитория
sudo curl -SL https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/opensearch-2.x.repo -o /etc/yum.repos.d/opensearch-2.x.repo
sudo dnf repolist

В списке должен появиться репозиторий ‘OpenSearch 2.x’.

Проверка списка репозиториев

  1. Просмотр доступных версий
sudo dnf info opensearch
  1. Установка пакета
sudo dnf install opensearch

При установке примите GPG ключ репозитория.

Установка OpenSearch и подтверждение GPG

  1. Запуск и включение сервиса
sudo systemctl daemon-reload
sudo systemctl start opensearch
sudo systemctl enable opensearch
sudo systemctl status opensearch

Статус должен быть active (running) и enabled.

Запуск и проверка OpenSearch

Подтверждение работы сервиса

Базовая конфигурация OpenSearch

Конфигурационные файлы расположены в /etc/opensearch. Для одиночного узла выполните изменения в /etc/opensearch/opensearch.yml.

  1. Основные параметры сети и режим кластера

Откройте файл:

sudo nano /etc/opensearch/opensearch.yml

Добавьте или измените строки на следующие, адаптируя IP под ваш хост:

network.host: 192.168.5.25

discovery.type: single-node

plugins.security.disabled: false

Сохраните и закройте.

  1. Настройка JVM heap

Откройте /etc/opensearch/jvm.options и измените Xms и Xmx в соответствии с объёмом памяти. Для 8 ГБ сервера разумно выделить 2 ГБ:

-Xms2g
-Xmx2g

Сохраните и перезапустите сервис:

sudo systemctl restart opensearch

Проверка открытых портов:

ss -tulpn | grep 9200 -C 3

OpenSearch слушает на порту 9200 по умолчанию.

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

Настройка памяти JVM

Защита OpenSearch с помощью TLS

Рекомендуется защитить как межнодовые соединения, так и HTTP REST слой. Ниже описан процесс генерации самоподписанного CA и сертификатов для админа и узла, адаптированный для одиночного развёртывания.

В каталоге создадим папку для сертификатов и будем работать в ней:

sudo mkdir -p /etc/opensearch/certs
cd /etc/opensearch/certs

Удаление демо сертификатов

Если в системе есть демо сертификаты, удалите их:

sudo rm -f /opt/opensearch/{esnode-key.pem,esnode.pem,kirk-key.pem,kirk.pem,root-ca.pem}
sudo nano /etc/opensearch/opensearch.yml

Закомментируйте или удалите демо конфигурацию безопасности, если она присутствует.

Удаление демо сертификатов

Генерация root CA

openssl genrsa -out root-ca-key.pem 2048
openssl req -new -x509 -sha256 -key root-ca-key.pem -subj '/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=ROOT' -out root-ca.pem -days 730

В результате появятся root-ca-key.pem и root-ca.pem.

Генерация сертификата admin

openssl genrsa -out admin-key-temp.pem 2048

openssl pkcs8 -inform PEM -outform PEM -in admin-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out admin-key.pem

openssl req -new -key admin-key.pem -subj '/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=A' -out admin.csr

openssl x509 -req -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem -days 730

admin.pem и admin-key.pem готовы и подписаны root CA.

Генерация сертификата для узла

openssl genrsa -out node-rock1-key-temp.pem 2048
openssl pkcs8 -inform PEM -outform PEM -in node-rock1-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out node-rock1-key.pem
openssl req -new -key node-rock1-key.pem -subj '/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=node-rock1.hwdomain.lan' -out node-rock1.csr

echo 'subjectAltName=DNS:node-rock1.hwdomain.lan' > node-rock1.ext

openssl x509 -req -in node-rock1.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out node-rock1.pem -days 730 -extfile node-rock1.ext

Узелный сертификат и ключ: node-rock1.pem и node-rock1-key.pem.

Очистка и установка прав

rm *temp.pem *csr *ext || true
openssl x509 -outform der -in root-ca.pem -out root-ca.crt
sudo cp root-ca.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust
sudo chown -R opensearch:opensearch /etc/opensearch/certs
sudo chmod 0700 /etc/opensearch/certs
sudo chmod 0600 /etc/opensearch/certs/*.pem || true
sudo chmod 0600 /etc/opensearch/certs/*.crt || true
ls -l /etc/opensearch/certs

Список сертификатов

Добавление сертификатов в конфигурацию OpenSearch

Проще всего добавить настройки в opensearch.yml через небольшой скрипт, который добавит необходимые параметры. Создайте файл add.sh и сделайте его исполняемым:

cat > add.sh <<'EOF'
#! /bin/bash

echo 'plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node-rock1.pem' | sudo tee -a /etc/opensearch/opensearch.yml
echo 'plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node-rock1-key.pem' | sudo tee -a /etc/opensearch/opensearch.yml
echo 'plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem' | sudo tee -a /etc/opensearch/opensearch.yml

echo 'plugins.security.ssl.http.enabled: true' | sudo tee -a /etc/opensearch/opensearch.yml
echo 'plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/node-rock1.pem' | sudo tee -a /etc/opensearch/opensearch.yml
echo 'plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node-rock1-key.pem' | sudo tee -a /etc/opensearch/opensearch.yml
echo 'plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem' | sudo tee -a /etc/opensearch/opensearch.yml

echo 'plugins.security.allow_default_init_securityindex: true' | sudo tee -a /etc/opensearch/opensearch.yml

echo 'plugins.security.authcz.admin_dn:' | sudo tee -a /etc/opensearch/opensearch.yml
echo '  - ''CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA''' | sudo tee -a /etc/opensearch/opensearch.yml

echo 'plugins.security.nodes_dn:' | sudo tee -a /etc/opensearch/opensearch.yml
echo '  - ''CN=node-rock1.hwdomain.lan,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA''' | sudo tee -a /etc/opensearch/opensearch.yml

echo 'plugins.security.audit.type: internal_opensearch' | sudo tee -a /etc/opensearch/opensearch.yml
echo 'plugins.security.enable_snapshot_restore_privilege: true' | sudo tee -a /etc/opensearch/opensearch.yml
echo 'plugins.security.check_snapshot_restore_write_privileges: true' | sudo tee -a /etc/opensearch/opensearch.yml
echo 'plugins.security.restapi.roles_enabled: ["all_access", "security_rest_api_access"]' | sudo tee -a /etc/opensearch/opensearch.yml
EOF

chmod +x add.sh
sudo ./add.sh

Проверьте, что строки добавлены в /etc/opensearch/opensearch.yml.

Добавление TLS конфигурации в opensearch.yml

Перезапустите OpenSearch:

sudo systemctl restart opensearch

Настройка административных пользователей

OpenSearch Security использует внутренний файл internal_users.yml для описания локальных пользователей. Для создания паролей используется утилита hash.sh.

  1. Сгенерируйте хеш пароля для admin и kibanaserver
cd /usr/share/opensearch/plugins/opensearch-security/tools
OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./hash.sh
# Скопируйте полученный хеш
OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./hash.sh
# Скопируйте второй хеш для kibanaserver

Генерация хешей паролей

  1. Редактирование internal_users.yml
sudo nano /etc/opensearch/opensearch-security/internal_users.yml

Замените содержимое нужными пользователями. Пример:

admin:
  hash: '$2y$12$BnfqwqWRi7DkyuPgLa8.3.kLzdpIY11jFpSXTAOKOMCVj/i20k9oW'
  reserved: true
  backend_roles:
  - 'admin'
  description: 'Admin user'

kibanaserver:
  hash: '$2y$12$kYjgPjPzIp9oTghNdWIHcuUalE99RqSYtTCh6AiNuS5wmeEaWnbzK'
  reserved: true
  description: 'Demo OpenSearch Dashboards user'

Сохраните и закройте.

  1. Применение изменений

Перезапустите сервис:

sudo systemctl restart opensearch

Затем примените изменения с помощью securityadmin.sh, используя admin сертификат и ключ, и указав корневой CA:

cd /usr/share/opensearch/plugins/opensearch-security/tools
OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./securityadmin.sh -h 192.168.5.25 -p 9200 -cd /etc/opensearch/opensearch-security/ -cacert /etc/opensearch/certs/root-ca.pem -cert /etc/opensearch/certs/admin.pem -key /etc/opensearch/certs/admin-key.pem -icl -nhnv

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

Применение настроек безопасности

  1. Проверка пользователей через curl
curl https://node-rock1:9200 -u admin:password -k
curl https://node-rock1:9200 -u kibanaserver:kibanapass -k

При корректной настройке вы получите ответ с информацией о кластере и код 200.

Проверка admin пользователя

Проверка kibanaserver пользователя

Установка OpenSearch Dashboards

  1. Адаптация криптополитики

Если репозиторий использует legacy SHA1, переключите политику:

sudo update-crypto-policies --set LEGACY
  1. Добавление репозитория и установка
sudo curl -SL https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.x/opensearch-dashboards-2.x.repo -o /etc/yum.repos.d/opensearch-dashboards-2.x.repo
sudo dnf repolist
sudo dnf install opensearch-dashboards

Примите GPG ключ репозитория при установке.

Добавление репозитория Dashboards

Установка OpenSearch Dashboards

  1. Запуск сервиса
sudo systemctl start opensearch-dashboards
sudo systemctl enable opensearch-dashboards
sudo systemctl status opensearch-dashboards

Принятие GPG ключа Dashboards

Конфигурация OpenSearch Dashboards

Откройте файл конфигурации:

sudo nano /etc/opensearch-dashboards/opensearch-dashboard.yml

Пример настройки сервера и подключения к OpenSearch. Укажите IP сервера и учётные данные пользователя kibanaserver.

server.port: 5601
server.host: '192.168.5.25'

opensearch.hosts: [https://192.168.5.25:9200]
opensearch.ssl.verificationMode: none
opensearch.username: kibanaserver
opensearch.password: kibanapass

Сохраните, затем перезапустите Dashboards:

sudo systemctl restart opensearch-dashboards

Настройка подключения Dashboards к OpenSearch

Доступ к OpenSearch Dashboards

  1. Откройте порт 5601 в firewalld
sudo firewall-cmd --add-port=5601/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Открытие порта в firewalld

  1. В браузере перейдите по адресу http://192.168.5.25:5601

На странице авторизации введите логин и пароль kibanaserver и нажмите Log in.

Страница входа в OpenSearch Dashboards

После входа откроется стартовая страница с опциями добавления данных.

OpenSearch Dashboards главный экран

  1. Проверка через Dev Tools

В разделе Dev Tools выполните запрос:

GET /

Ожидаемый HTTP код 200 и JSON с информацией о версии OpenSearch.

Проверка через Dev Tools

Отладка и распространённые ошибки

  • OpenSearch не стартует после включения security
    • Проверьте логи systemd: sudo journalctl -u opensearch -b
    • Убедитесь, что пути к сертификатам корректны и права установлены на opensearch:opensearch
  • securityadmin.sh не подключается
    • Проверьте адрес и порт, используйте -h и -p с текущими значениями
    • Убедитесь, что admin.pem и admin-key.pem соответствуют хешу и CA
  • Dashboards не подключается к OpenSearch
    • Проверьте opensearch-dashboards лог: sudo journalctl -u opensearch-dashboards -b
    • Для отладки временно установите opensearch.ssl.verificationMode: none

Полезные команды для диагностики:

sudo tail -n 200 /var/log/opensearch/opensearch.log
sudo journalctl -u opensearch -f
ss -tulpn | grep 9200
ss -tulpn | grep 5601

Безопасность и соответствие

  • Используйте отдельный PKI и надежный CA для production, либо интегрируйте с корпоративным CA
  • Минимизируйте привилегии учетных записей, назначайте роли по принципу наименьших прав
  • Включите аудит логов и централизованное хранение логов для соответствия требованиям
  • Шифрование запасных копий и контроль доступа к snapshot репозиториям

Приватность и GDPR

  • OpenSearch сам по себе не хранит пользовательские политики конфиденциальности
  • Если вы храните персональные данные, обеспечьте удаление и анонимизацию в соответствии с нормативами
  • Ограничьте доступ к индексам содержащим персональные данные

Эксплуатационные рекомендации

Резервное копирование

  • Используйте snapshot репозитории для регулярных резервных копий
  • Настройте проверку восстановления из snapshot в тестовой среде

Обновления

  • Тестируйте обновления на тестовой копии кластера
  • Делайте бэкап конфигураций и snapshot перед обновлением

Мониторинг

  • Собирайте метрики JVM, GC, disk I O, load average
  • Настройте SLI/SLO для задержки запросов и доступности

Критерии приёмки

  1. OpenSearch сервис запущен и имеет статус active (running)
  2. Порт 9200 отвечает на запросы с кодом 200 по HTTPS с корректной аутентификацией
  3. OpenSearch Dashboards доступен на порту 5601 и принимает логин kibanaserver
  4. TLS сертификаты установлены и имеют корректные CN и SAN
  5. Snapshot можно создать и восстановить в тестовом окружении

Чеклисты ролей

SRE чеклист

  • Проверить vm.max_map_count
  • Убедиться, что swap отключён
  • Проверить права на папку /etc/opensearch/certs
  • Настроить мониторинг и алерты

Сетевой инженер

  • Открыть порты 9200 и 5601 в межсетевом экране для нужных подсетей
  • Обеспечить маршрутизацию между узлами кластера

Инженер безопасности

  • Проверить цепочку CA и сроки годности сертификатов
  • Проверить настройки audit logging
  • Проверить роли и привилегии в internal_users.yml

Сценарий отката

  1. Если после применения конфигураций OpenSearch не стартует, откатите изменения в /etc/opensearch/opensearch.yml к рабочей версии из бэкапа
  2. Если securityadmin сломал настройки, восстановите internal_users.yml и securityconfig из бэкапа и выполните securityadmin.sh с параметром -r для реимпорта
  3. При проблемах с сертификатами замените на сохранённые ранее действующие сертификаты и перезапустите сервис

Тесты и критерии приёмки — подробный список

  • unit тесты: проверка команд запуска и наличия процессов
  • интеграционные тесты: curl https запросы к OpenSearch с различными пользователями
  • smoke тест Dashboards: вход в веб UI, выполнение GET / в Dev Tools
  • нагрузочный тест: базовый поисковый запрос под нагрузкой и наблюдение задержки

Короткий глоссарий

  • OpenSearch: поисковый движок и аналитическая платформа
  • Dashboards: веб интерфейс для визуализации и Dev Tools
  • securityadmin.sh: утилита для применения конфигураций безопасности
  • CA: центр сертификации

Решение задач при выборе архитектуры

Mermaid диаграмма принятия решения при развертывании

flowchart TD
  A[Начать] --> B{Количество узлов}
  B -->|1| C[Развернуть single-node]
  B -->|>1| D[Развернуть кластер]
  D --> E{Нужна высокая доступность}
  E -->|Да| F[Минимум 3 узла]
  E -->|Нет| G[2 узла с намерением масштабирования]
  C --> H[Настроить TLS и security]
  F --> H
  G --> H
  H --> I[Тесты и мониторинг]
  I --> J[Продакшен]

Когда этот подход не подходит

  • Для крупных боевых кластеров с высокой нагрузкой одиночный узел не подходит
  • Если нужен enterprise уровень поддержки, рассмотрите коммерческие варианты или SLA у поставщика

Альтернативы

  • Контейнерное развертывание с Docker или Kubernetes для более гибкой оркестрации
  • Использование управляемых сервисов у облачных провайдеров при отсутствии желания управлять инфраструктурой

Частые вопросы

Q: Можно ли использовать сертификаты от корпоративного CA

A: Да. Для production рекомендуется использовать корпоративный CA и централизованный PKI

Q: Нужно ли отключать SELinux

A: Достаточно permissive режима или корректно настроить политики. Отключать полностью не обязательно

Q: Как масштабировать кластер

A: Добавьте узлы, обновите discovery.seed_hosts и настройте репликацию индексов

Заключение

В этом руководстве описаны шаги установки и первичной защиты OpenSearch и OpenSearch Dashboards на Rocky Linux 9. Вы должны получить рабочую, защищённую инстанцию с базовой аутентификацией и TLS. Следующие шаги для вас: резервное копирование, мониторинг, план обновлений и тестирование восстановления.

Ресурсы для дальнейшего чтения

  • Официальная документация OpenSearch
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как выбрать мини‑ПК: руководство по ключевым критериям
Мини-ПК

Как выбрать мини‑ПК: руководство по ключевым критериям

Как посмотреть понравившиеся публикации в Instagram
Социальные сети

Как посмотреть понравившиеся публикации в Instagram

Замена сбойного диска в RAID1 — тест и восстановление
Системное администрирование

Замена сбойного диска в RAID1 — тест и восстановление

Исправить код 43 для NVIDIA или Intel GPU
Техподдержка

Исправить код 43 для NVIDIA или Intel GPU

Отключить сенсорный экран на iPhone и iPad
iOS

Отключить сенсорный экран на iPhone и iPad

OpenSearch на Rocky Linux 9 — установка и защита
Инфраструктура

OpenSearch на Rocky Linux 9 — установка и защита