So installierst du OpenSearch unter Ubuntu 24.04

OpenSearch ist ein von der Community betriebenes Projekt von Amazon und ein Fork von Elasticsearch und Kibana. Es ist eine vollständig quelloffene Suchmaschine und Analyse-Suite mit reichhaltigen Features und innovativen Funktionen. Die Hauptkomponenten des OpenSearch-Projekts sind OpenSearch (eine Abspaltung von Elasticsearch) und die OpenSearch Dashboards (eine Abspaltung von Kibana). Beide Komponenten bieten Funktionen wie Unternehmenssicherheit, Alarmierung, maschinelles Lernen, SQL, Indexstatusverwaltung und mehr.

Diese Anleitung zeigt dir, wie du OpenSearch und OpenSearch Dashboard auf dem Ubuntu 24.04 Server installierst. Außerdem sicherst du OpenSearch mit TLS-Zertifikaten und aktivierst die Authentifizierung mit Benutzernamen und Passwort.

Voraussetzungen

Bevor du beginnst, stelle sicher, dass du Folgendes hast:

  • Einen Ubuntu 24.04 Server mit mindestens 8 GB RAM
  • Einen Nicht-Root-Benutzer mit einem Administrator-Server

Hinzufügen des OpenSearch-Repositorys

Um zu beginnen, musst du die Repositories OpenSearch und OpenSearch Dashboard zu deinem System hinzufügen. In diesem Beispiel verwenden wir die neueste stabile Version von OpenSearch.

Führe zunächst den folgenden Befehl aus, um die Basispakete auf deinem Ubuntu-System zu installieren.

sudo apt install lsb-release ca-certificates curl gnupg2 -y

Lade den GPG-Schlüssel für das OpenSearch-Repository mit dem folgenden Befehl herunter.

curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring

Füge die Repositories für OpenSearch und OpenSearch Dashboard mit dem folgenden Befehl zu deinem System hinzu. In diesem Beispiel verwendest du die stabile Version von OpenSearch 2.x.

echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-2.x.list
echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-dashboards-2.x.list

Zum Schluss führst du den Befehl„apt“ aus, um deinen Paketindex zu aktualisieren und neue OpenSearch-Paketinformationen abzurufen.

sudo apt update

Installation von OpenSearch und OpenSearch Dashboard

Nachdem das OpenSearch-Repository hinzugefügt wurde, installierst du OpenSearch und OpenSearch Dashboard über den APT-Paketmanager. Anschließend startest du beide Dienste über das Dienstprogramm„systemctl„.

Bevor du OpenSearch installierst, führe den folgenden Befehl aus, um ein zufälliges Passwort für die OpenSearch-Installation zu generieren. Achte darauf, dass du die Ausgabe kopierst und Großbuchstaben, Zahlen und Symbole einschließt.

sudo openssl rand -hex 16

Führe nun den unten stehenden Befehl aus, um die Pakete„opensearch“ und„opensearch-dashboard“ zu installieren. Achte darauf, dass du das„OPENSEARCH_INITIAL_ADMIN_PASSWORD“ änderst und gib„Y“ ein, um die Installation zu bestätigen.

sudo env OPENSEARCH_INITIAL_ADMIN_PASSWORD=B07e_af7e9f8fe12e@85ab797ddc1f174Dapt-get install opensearch opensearch-dashboard

Nachdem die Installation abgeschlossen ist, führe den Befehl„systemctl“ aus, um den systemd Manager neu zu laden und die neuen Dienstdateien anzuwenden.

sudo systemctl daemon-reload

Jetzt kannst du OpenSearch mit dem unten stehenden Befehl starten, aktivieren und überprüfen.

sudo systemctl enable --now opensearch
sudo systemctl status opensearch

Du kannst unten sehen, dass OpenSearch läuft.

Prüfung der Eröffnungssuche

Zuletzt kannst du den OpenSearch Dashboard-Dienst mit dem folgenden Befehl starten, aktivieren und überprüfen.

sudo systemctl enable --now opensearch-dashboards
sudo systemctl status opensearch-dashboards

In der folgenden Ausgabe kannst du sehen, dass der Dienst„opensearch-dashboards“ läuft.

Prüfen Sie das Dashboard der offenen Suche

OpenSearch konfigurieren

Wenn OpenSearch installiert ist, konfigurierst du die Installation über die Datei„/etc/opensearch/opensearch.yml„. Außerdem erhöhst du bei Bedarf die standardmäßige maximale JVM-Größe (Java Virtual Memory) für OpenSearch.

Öffne die standardmäßige OpenSearch-Konfiguration„/etc/opensearch/opensearch.yml“ mit dem Editor„nano„.

sudo nano /etc/opensearch/opensearch.yml

Ändere die folgenden OpenSearch-Konfigurationen:

  • * Ändere die Option’network.host‚ mit deiner lokalen IP-Adresse.
  • * Füge die Option‚discovery.type‚ als’single-node‚ hinzu, um OpenSearch auf einem einzigen Modus laufen zu lassen.
  • * Setze die Option‚plugins.security.disabled‚ auf‚false‚.
# Bind OpenSearch to the correct network interface. Use 0.0.0.0
# to include all available interfaces or specify an IP address
# assigned to a specific interface.
network.host: 192.168.10.60
# Unless you have already configured a cluster, you should set
# discovery.type to single-node, or the bootstrap checks will
# fail when you try to start the service.
discovery.type: single-node

# If you previously disabled the security plugin in opensearch.yml,
# be sure to re-enable it. Otherwise you can skip this setting.
plugins.security.disabled: false

Speichere die Datei und beende den Editor, wenn du fertig bist.

Als Nächstes öffnest du die JVM (Java Virtual Machine)-Konfiguration„/etc/opensearch/jvm.options“ mit dem Editor„nano„.

sudo nano /etc/opensearch/jvm.options

Erhöhe den standardmäßig eingestellten maximalen Speicher für OpenSearch nach Bedarf. Der Standardwert ist„1GB„.

-Xms2g
-Xmx2g

Speichere und beende die Datei.

Führe abschließend den folgenden„systemctl„-Befehl aus, um„opensearch“ neu zu starten und deine Änderungen zu übernehmen. Damit wird OpenSearch auf einer lokalen IP-Adresse im Einzelmodus ausgeführt.

sudo systemctl restart opensearch

OpenSearch mit TLS/SSL-Zertifikaten absichern

Nachdem du nun OpenSearch konfiguriert hast, musst du die Sicherheit von OpenSearch durch SSL/TLS-Zertifikate einrichten. In diesem Abschnitt deaktivierst du die Demo-Zertifikate und erstellst anschließend Root-Zertifikate, Admin-Zertifikate und Host/Server-Zertifikate.

Bevor du SSL-Zertifikate erstellst, löschst du die Demo-Zertifikate aus OpenSearch mit dem folgenden Befehl.

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

Bearbeite die OpenSearch-Konfiguration„/etc/opensearch/opensearch.yml“ mit dem Editor„nano„.

sudo nano /etc/opensearch/opensearch.yml

Kommentiere die„Demo„-Sicherheitskonfiguration für OpenSearch wie folgt.

Demo deaktivieren

Speichere die Datei und beende den Editor.

Erstelle nun ein neues Verzeichnis‚/etc/opensearch/certs‚ und wechsle in dieses Verzeichnis. In diesem Verzeichnis werden neue Zertifikate für OpenSearch gespeichert.

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

Root-Zertifikate generieren

Führe zunächst den folgenden Befehl aus, um Root-Zertifikate zu erzeugen, die zum Signieren deiner anderen Zertifikate wie Server- und Client-Zertifikate verwendet werden.

openssl genrsa -out root-ca-key.pem 2048

Führe nun den folgenden Befehl aus, um ein Root-Zertifikat aus deinem privaten Schlüssel zu erzeugen. Achte darauf, dass du die Option„-subj“ durch deine Serverdaten ersetzt.

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

Admin-Zertifikate generieren

Erstelle mit folgendem Befehl einen neuen privaten Schlüssel für dein Admin-Zertifikat.

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

Konvertiere deinen Admin-Schlüssel mit dem unten stehenden Befehl in das PKCS8-Format.

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

Als Nächstes erstellst du mit dem folgenden Befehl ein neues Signing Request Certificate (CSR) für das Admin-Zertifikat.

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

Führe nun den folgenden Befehl aus, um dein neues Admin-Zertifikat (CSR) mit dem Stammzertifikat zu signieren.

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

root ca und admin

Erzeugen von Host- oder Server-Zertifikaten

Erstelle den privaten Schlüssel für deine OpenSearch-Hosts/Server und konvertiere das Zertifikat in das PKCS8-Format.

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

Führe nun den folgenden Befehl aus, um eine Zertifikatsanforderung (CSR) für deinen Host zu erzeugen. Der CN oder Common Name sollte mit dem fqdn deines Hostservers übereinstimmen und nicht mit dem Hostnamen. In diesem Beispiel lautet der fqdn des Servers„ubuntu24.howtoforge.local„.

openssl req -new -key ubuntu24-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=ubuntu24.howtoforge.local" -out ubuntu24.csr

Als nächstes führst du den folgenden Befehl aus, um eine neue Erweiterungsdatei zu erstellen, die den DNS deines Hosts/Servers enthält.

echo 'subjectAltName=DNS:ubuntu24.howtoforge.local' > ubuntu24.ext

Zum Schluss führst du den folgenden Befehl aus, um das Host/Server-Zertifikat mit dem Root-Zertifikat zu signieren und die zuvor erstellte Erweiterungsdatei einzubinden.

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

Server-Zertifikat

Einrichten von Zertifikaten

Lösche die temporären Zertifikate, die CSR (Zertifikatsanforderungen) für den Admin und den Host sowie die Erweiterungsdatei mit folgendem Befehl.

rm *temp.pem *csr *ext
ls

Wandle nun das Zertifikat„root-ca.pem“ mit dem folgenden Befehl in die Datei„root-ca.crt“ um.

openssl x509 -outform der -in root-ca.pem -out root-ca.crt

Danach kopierst du das Zertifikat„root-ca.crt“ in das Verzeichnis„/usr/local/share/ca-certificates“ und lädst dein Root-Zertifikat auf den Server.

sudo cp root-ca.crt /usr/local/share/ca-certificates
sudo update-ca-certificates

root ca hinzufügen

Zum Schluss führst du den folgenden Befehl aus, um die richtigen Berechtigungen und Eigentümer der Zertifikatsdateien und -verzeichnisse einzurichten.

sudo chown -R opensearch:opensearch /etc/opensearch/certs
sudo chmod 0700 /etc/opensearch/certs
sudo chmod 0600 /etc/opensearch/certs/*.pem
sudo chmod 0600 /etc/opensearch/certs/*.crt

Hinzufügen von Zertifikaten zu OpenSearch

Nachdem du TLS-Zertifikate für OpenSearch erstellt hast, musst du der Datei„opensearch.yml“ eine neue Konfiguration hinzufügen. In diesem Fall fügst du mit dem Bash-Skript eine neue Konfiguration zur Datei „opensearch.yml“ hinzu.

Bevor du deinem OpenSearch-Server Zertifikate hinzufügst, führe den folgenden Befehl aus, um die Datei„opensearch.yml“ zu sichern und deinen Server fqdn einzurichten.

sudo cp /etc/opensearch/opensearch.yml /etc/opensearch/opensearch.yml.orig
sudo hostnamectl set-hostname ubuntu24.howtoforge.local

Erstelle nun eine neue Datei„add-cert.sh“ mit dem Editor„nano„.

nano add-cert.sh

Füge die folgenden Konfigurationen in die Datei ein. Damit fügst du neue Konfigurationen zur OpenSearch-Konfigurationsdatei‚opensearch.yml‚ hinzu

#! /bin/bash
# Before running this script, make sure to replace the CN in the
# node's distinguished name with a real DNS A record.

echo "plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/ubuntu24.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/ubuntu24-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/ubuntu24.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/ubuntu24-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=ubuntu24.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

Speichere die Datei und beende den Editor, wenn du fertig bist.

Mache nun die Datei„add-cert.sh“ ausführbar und führe sie mit dem folgenden Befehl aus. Die neuen Konfigurationen werden der Datei „opensearch.yml“ hinzugefügt.

chmod +x add-cert.sh
./add-cert.sh

Neue Konfiguration hinzufügen

OpenSearch mit Passwort-Authentifizierung absichern

Jetzt hast du OpenSearch mit SSL/TLS-Zertifikaten konfiguriert, und im nächsten Schritt richtest du die Passwortauthentifizierung für OpenSearch ein. Du legst zwei Benutzer fest, die sich bei OpenSearch anmelden und in das OpenSearch Dashboard integrieren.

Gehe in das Verzeichnis„/usr/share/opensearch/plugins/opensearch-security/tools“ und führe das Skript„hash.sh“ aus, um ein neues Passwort für OpenSearch zu erzeugen. Führe„hash.sh“ zweimal aus, um zwei Passwörter für OpenSearch und OpenSearch Dashboard zu erzeugen. Achte darauf, dass du das generierte Passwort auf deinen Zettel kopierst.

cd /usr/share/opensearch/plugins/opensearch-security/tools
OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./hash.sh

Öffne nun die Datei„/etc/opensearch/opensearch-security/internal_users.yml“ mit dem Editor„nano„.

sudo nano /etc/opensearch/opensearch-security/internal_users.yml

Ändere das Hash-Passwort für die Benutzer‚admin‚ und‚kibanaserver‚ mit deinem früheren Passwort. Der Benutzer„admin“ wird für die Anmeldung beim OpenSearch Dashboard verwendet, der Benutzer„kibanaserver“ für die Verbindung zwischen OpenSearch und OpenSearch Dashboard.

admin:
hash: "$2y$12$zPtsgbrpfmInPRuDEKvDKetuzhUzsQWyCpE9foT1uun5RTMW51p9K"
reserved: true
backend_roles:
- "admin"
description: "Admin user"
kibanaserver:
hash: "$2y$12$zPtsgbrpfmInPRuDEKvDKetuzhUzsQWyCpE9foT1uun5RTMW51p9K"
reserved: true
description: "Demo OpenSearch Dashboards user"

Speichere die Datei und beende den Editor, wenn du fertig bist.

Führe nun den folgenden Befehl aus, um den Dienst„opensearch“ neu zu starten und deine Änderungen zu übernehmen.

sudo systemctl restart opensearch

Sobald OpenSearch neu gestartet ist, führe den unten stehenden Befehl aus, um deine SSL-Zertifikate auf OpenSearch anzuwenden.

cd /usr/share/opensearch/plugins/opensearch-security/tools
OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./securityadmin.sh -h 192.168.10.60 -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

Wenn alles klappt, siehst du eine Ausgabe wie diese:

Ceerts hinzufügen

Zum Schluss führst du den Befehl„curl“ aus, um die Authentifizierung am OpenSearch-Server zu überprüfen.

curl https://192.168.10.60:9200 -u admin:password -k
curl https://node-rock1:9200 -u kibanaserver:kibanapass -k

Wenn sie erfolgreich war, kannst du mit deinem Benutzernamen und Passwort über das HTTPS-Protokoll auf OpenSearch zugreifen.

Zugang öffnen Suche

OpenSearch Dashboard konfigurieren

Nachdem die Passwortauthentifizierung konfiguriert ist, richtest du das OpenSearch Dashboard ein, indem du die Datei„opensearch-dashboard,yml“ bearbeitest.

Öffne die Konfiguration für OpenSearch Dashboard„/etc/opensearch-dashboards/opensearch-dashboard.yml“ mit dem Editor„nano„.

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

Gib deine lokale IP-Adresse in die Option„server.host“ wie folgt ein:

server.host: "192.168.10.60"

Achte darauf, dass du den OpenSearch-Host, den Benutzernamen und das Passwort mit deinen Daten änderst.

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

Speichere die Datei und beende den Editor.

Führe nun den unten stehenden„systemctl„-Befehl aus, um das OpenSearch Dashboard neu zu starten und deine Änderungen zu übernehmen. Damit sollte das OpenSearch Dashboard mit OpenSearch verbunden sein.

sudo systemctl restart opensearch-dashboards

Als Nächstes öffnest du deinen Webbrowser und besuchst http://192.168.10.60:5601. Wenn deine Installation erfolgreich war, siehst du die Anmeldeseite für das OpenSearch Dashboard.

Gib deinen Admin-Benutzer und dein Passwort ein und klicke dann auf„Anmelden„.

Anmeldung

Wenn du eingeloggt bist, wähle„Daten hinzufügen„, um neue Daten hinzuzufügen, oder klicke auf die Option„Eigene Erkundung„.

mein eigenes erforschen

Um die Verbindung zwischen OpenSearch und OpenSearch Dashboard sicherzustellen, musst du den OpenSearch-Status im Dashboard überprüfen.

Klicke im Bereich„Verwaltung“ auf„Dev Tools„.

Entwicklungswerkzeuge

Im Konsolenbereich gibst du„GET /“ ein und klickst auf die Schaltfläche „Play“. Wenn deine Verbindung zu OpenSearch und dem OpenSearch Dashboard erfolgreich ist, siehst du die folgende Seite.

query

Fazit

Herzlichen Glückwunsch! Du hast OpenSearch und das OpenSearch Dashboard auf dem Ubuntu 24.04 Server installiert. OpenSearch läuft im Einzelmodus und die Installation ist mit HTTPS gesichert. Schließlich hast du auch die Authentifizierung für OpenSearch konfiguriert und OpenSearch in das OpenSearch Dashboard integriert.

Das könnte dich auch interessieren …