From 8d3823ac57848749dfe05de757482cbf4ee07bf5 Mon Sep 17 00:00:00 2001 From: SailorUpiter Date: Wed, 1 Apr 2026 22:42:52 +0300 Subject: [PATCH 1/2] first page --- docs/openshearch/install.md | 25 +++++++++++++++++++++++++ docs/openshearch/release.txt | 2 ++ 2 files changed, 27 insertions(+) create mode 100644 docs/openshearch/install.md create mode 100644 docs/openshearch/release.txt diff --git a/docs/openshearch/install.md b/docs/openshearch/install.md new file mode 100644 index 0000000..96248e5 --- /dev/null +++ b/docs/openshearch/install.md @@ -0,0 +1,25 @@ +# Установка Opensearch +Ссылка на офф доку https://docs.opensearch.org/latest/install-and-configure/install-opensearch/tar/ +Установка опенсерча производится из архива. +Стендэлон +Подготавливаем ноду для установки. Все это дело работает на джаве. И хоть в архиве опенсерча уже есть жаба лучше поставить ее прямо на машину, что бы было проще работать +``` +sudo apt update && sudo apt upgrade -y +sudo apt install openjdk-25-jdk +``` +Отключим свап и настроем виртуальную память хоста +``` +sudo vim /etc/sysctl.conf + +vm.max_map_count=262144 + +sudo sysctl -p +cat /proc/sys/vm/max_map_count +``` +После обновления и установки жабы, лучше всего перезагрузится. Далее мы качаем архив с опенсерчем с оффсайта +``` +wget https://artifacts.opensearch.org/releases/bundle/opensearch/3.5.0/opensearch-3.5.0-linux-x64.tar.gz +``` +``` +Распакуем архив +``` \ No newline at end of file diff --git a/docs/openshearch/release.txt b/docs/openshearch/release.txt new file mode 100644 index 0000000..e746aca --- /dev/null +++ b/docs/openshearch/release.txt @@ -0,0 +1,2 @@ +opensearch=3.5.0 +jdk=25.0.2+10-LTS From 984d8cf33bb5cc345b4a8b0aab606f32a79a686b Mon Sep 17 00:00:00 2001 From: SailorUpiter Date: Thu, 2 Apr 2026 07:41:46 +0300 Subject: [PATCH 2/2] add script, config --- docs/openshearch/install.md | 14 +++++- docs/openshearch/templates/opensearch.yml | 17 +++++++ docs/openshearch/templates/ssl.sh | 61 +++++++++++++++++++++++ 3 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 docs/openshearch/templates/opensearch.yml create mode 100644 docs/openshearch/templates/ssl.sh diff --git a/docs/openshearch/install.md b/docs/openshearch/install.md index 96248e5..9dace85 100644 --- a/docs/openshearch/install.md +++ b/docs/openshearch/install.md @@ -21,5 +21,15 @@ cat /proc/sys/vm/max_map_count wget https://artifacts.opensearch.org/releases/bundle/opensearch/3.5.0/opensearch-3.5.0-linux-x64.tar.gz ``` ``` -Распакуем архив -``` \ No newline at end of file +Распакуем архив в папку +``` +tar -xvf opensearch-3.5.0-linux-x64.tar.gz -С /etc/opensearch +``` +Создадим папку для хранения сертификатов и перейдем в нее. +``` +sudo mkdir /etc/opensearch/ssl +cd /etc/opensearch/ssl +bash ssl.sh +``` +Выполним скрипт ssl.sh (лежит в доке как пример) для создания самоподписанных сертификатов и хранилища сертификатов. СОздадутся корневой сертификат ЦА. Так же создастся на его основе админский сертификат и сертификаты для каждой ноды. Это нужно что бы общение между нодами и дашбордой были зашифрованы. Так же выпустится админский серт для зашифрованного подключения админа. +После завершения подготовки требуется нарисовать кофниг. Конфиг имеет формат YAML и различается в зависимости от кластера или стендэлон опенсерча \ No newline at end of file diff --git a/docs/openshearch/templates/opensearch.yml b/docs/openshearch/templates/opensearch.yml new file mode 100644 index 0000000..6bd7abf --- /dev/null +++ b/docs/openshearch/templates/opensearch.yml @@ -0,0 +1,17 @@ +cluster.name: kal-cluster # Имя кластера +node.name: opensearch-1 # Имя ноды кластера + +# Включение плагина безопасности для шифрования трафика между нодами +plugins.security.ssl.transport.keystore_filepath: /etc/opensearch/config/ssl/keystore.jks # Путь к файлу keystore.jks, который содержит ключи к сертификатам +plugins.security.ssl.transport.keystore_password: MyCertPassword # Пароль от кейстора +plugins.security.ssl.transport.keystore_keypassword: MyCertPassword # Пароль от приватного ключа внутри кейстора +plugins.security.ssl.transport.truststore_filepath: /etc/opensearch/config/ssl/truststore.jks # Путь к хранилищу сертификатов +plugins.security.ssl.transport.truststore_password: MyCertPassword # Пароль от хранилища сертификатов + +#Включение плагина безопасности для шифрования трафика между дашбордом и опенсерчом +#plugins.security.ssl.http.enabled: # Включение шифрования при обращении к REST api. По умолчанию выключено. При включении http будет принудительно отключен и всегда будет использоваться https +plugins.security.ssl.http.keystore_filepath: /etc/opensearch/config/ssl/keystore.jks # Путь к файлу keystore.jks, который содержит ключи к сертификатам +plugins.security.ssl.http.keystore_password: MyCertPassword # Пароль от кейстора +plugins.security.ssl.http.keystore_keypassword: MyCertPassword # Пароль от приватного ключа внутри кейстора +plugins.security.ssl.http.truststore_filepath: /etc/opensearch/config/ssl/truststore.jks # Путь к хранилищу сертификатов +plugins.security.ssl.http.truststore_password: MyCertPassword # Пароль от хранилища сертификатов \ No newline at end of file diff --git a/docs/openshearch/templates/ssl.sh b/docs/openshearch/templates/ssl.sh new file mode 100644 index 0000000..fa7dca2 --- /dev/null +++ b/docs/openshearch/templates/ssl.sh @@ -0,0 +1,61 @@ +#!/bin/sh +# Root CA +openssl genrsa -out root-ca-key.pem 2048 +openssl req -new -x509 -sha256 -key root-ca-key.pem -subj "/C=RU/ST=Moscow/L=Moscow/O=Sailor Lab/OU=Lab/CN=opensearch-1.sailor.com" -out root-ca.pem -days 730 \ + -addext 'basicConstraints = critical, CA:TRUE, pathlen:0' \ + -addext 'keyUsage = critical, keyCertSign, cRLSign' \ + -addext 'authorityKeyIdentifier = keyid' +# Admin cert +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=RU/ST=Moscow/L=Moscow/O=Sailor Lab/OU=Lab/CN=grigory/emailAddress=medik19999@mail.ru" -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 +# Node cert 1 +openssl genrsa -out node1-key-temp.pem 2048 +openssl pkcs8 -inform PEM -outform PEM -in node1-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out node1-key.pem +openssl req -new -key node1-key.pem -subj "/C=RU/ST=Moscow/L=Moscow/O=Sailor Lab/OU=Lab/CN=opensearch-1.sailor.com" -out node1.csr +echo 'subjectAltName=DNS:opensearch-1.sailor.com' > node1.ext +openssl x509 -req -in node1.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out node1.pem -days 730 -extfile node1.ext +# Node cert 2 +openssl genrsa -out node2-key-temp.pem 2048 +openssl pkcs8 -inform PEM -outform PEM -in node2-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out node2-key.pem +openssl req -new -key node2-key.pem -subj "/C=RU/ST=Moscow/L=Moscow/O=Sailor Lab/OU=Lab/CN=opensearch-2.sailor.com" -out node2.csr +echo 'subjectAltName=DNS:opensearch-2.sailor.com' > node2.ext +openssl x509 -req -in node2.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out node2.pem -days 730 -extfile node2.ext +# Client cert +openssl genrsa -out client-key-temp.pem 2048 +openssl pkcs8 -inform PEM -outform PEM -in client-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out client-key.pem +openssl req -new -key client-key.pem -subj "/C=RU/ST=Moscow/L=Moscow/O=Sailor Lab/OU=Lab/CN=opensearch-2.sailor.com" -out client.csr +echo 'subjectAltName=DNS:opensearch-3.sailor.com' > client.ext +openssl x509 -req -in client.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out client.pem -days 730 -extfile client.ext +# Convert node certificate +cat root-ca.pem node1.pem node1-key.pem > combined-node1.pem +echo "Enter password for node1-cert.p12" +openssl pkcs12 -export -in combined-node1.pem -out node1-cert.p12 -name node1 +echo "Enter password for keystore.jks" +keytool -importkeystore -srckeystore node1-cert.p12 -srcstoretype pkcs12 -destkeystore keystore.jks + +# Convert admin certificate +cat root-ca.pem admin.pem admin-key.pem > combined-admin.pem +echo "Enter password for admin-cert.p12" +openssl pkcs12 -export -in combined-admin.pem -out admin-cert.p12 -name admin +echo "Enter password for keystore.jks" +keytool -importkeystore -srckeystore admin-cert.p12 -srcstoretype pkcs12 -destkeystore keystore.jks + +# Import certificates to truststore +keytool -importcert -keystore truststore.jks -file root-ca.pem -storepass changeit -trustcacerts -deststoretype pkcs12 # Сменить пароль + +# Cleanup +rm admin-key-temp.pem +rm admin.csr +rm node1-key-temp.pem +rm node1.csr +rm node1.ext +rm node2-key-temp.pem +rm node2.csr +rm node2.ext +rm client-key-temp.pem +rm client.csr +rm client.ext +rm combined-admin.pem +rm combined-node1.pem