OpenSearch Installation · 28 min read · Oct 12, 2025
So installieren Sie OpenSearch auf Debian 12

OpenSearch ist ein Open-Source-Fork von Elasticsearch und Kibana, der von Amazon entwickelt wurde. Es ist eine Echtzeit-, verteilte und skalierbare Suchmaschine, die sowohl Volltextsuche als auch Analysen ermöglicht. Es wird verwendet, um große Datenmengen zu indizieren und zu durchsuchen. Es wird häufig zusammen mit OpenSearch Dashboards (einem Fork von Kibana) bereitgestellt, einem leistungsstarken Datenvisualisierungs-Dashboard für OpenSearch. OpenSearch Dashboards ermöglicht es Ihnen, die OpenSearch-Protokolldaten zu erkunden und Dashboards und Abfragen zu erstellen, um Einblicke in Ihre Anwendung zu gewinnen.
Dieses Tutorial zeigt Ihnen, wie Sie OpenSearch auf einem Debian 12-Server installieren. Sie lernen auch, wie Sie Ihre Installation mit benutzerdefinierten TLS-Zertifikaten sichern und die Authentifizierung in OpenSearch aktivieren.
Voraussetzungen
Ein Server, der Debian 12 mit mindestens 4 GB RAM ausführt.
Ein Nicht-Root-Benutzer mit Sudo-Rechten.
Die unkomplizierte Firewall (UFW) ist aktiviert und läuft.
Ein vollständig qualifizierter Domainname (FQDN) wie
opensearch.example.com, der auf Ihren Server zeigt. Dies ist vorteilhaft, wenn Sie OpenSearch Dashboards über SSL mit einem Proxy-Server bereitstellen möchten.Alles ist aktualisiert.
$ sudo apt update && sudo apt upgradeEinige essentielle Pakete sind erforderlich, damit das Tutorial und Craft CMS ausgeführt werden können. Einige davon sind möglicherweise bereits auf Ihrem Server vorhanden.
$ sudo apt install curl wget nano software-properties-common dirmngr apt-transport-https ca-certificates lsb-release debian-archive-keyring gnupg2 ufw unzip -y
Schritt 1 - Firewall konfigurieren
Der erste Schritt vor der Installation von Paketen besteht darin, die Firewall so zu konfigurieren, dass HTTP- und HTTPS-Verbindungen erlaubt sind.
Überprüfen Sie den Status der Firewall.
$ sudo ufw statusSie sollten etwas Ähnliches wie Folgendes sehen.
Status: aktiv
Zu Aktion Von
-- ------ ----
OpenSSH ERLAUBEN Überall
OpenSSH (v6) ERLAUBEN Überall (v6)Erlauben Sie HTTP- und HTTPS-Ports.
$ sudo ufw allow http
$ sudo ufw allow httpsÜberprüfen Sie den Status erneut zur Bestätigung.
$ sudo ufw status
Status: aktiv
Zu Aktion Von
-- ------ ----
OpenSSH ERLAUBEN Überall
80/tcp ERLAUBEN Überall
443/tcp ERLAUBEN Überall
OpenSSH (v6) ERLAUBEN Überall (v6)
80/tcp (v6) ERLAUBEN Überall (v6)
443/tcp (v6) ERLAUBEN Überall (v6)Schritt 2 - System vorbereiten
Bevor wir OpenSearch installieren, müssen wir unser System darauf vorbereiten und optimieren. Es sind mehrere Schritte erforderlich, darunter das Deaktivieren des Swap-Speichers, falls vorhanden, das Festlegen der Anzahl der Speicherkarten für Ihr System und das Einrichten des System-Hostnamens.
Überprüfen Sie zunächst, ob Sie Swap-Speicher aktiviert haben.
$ free -mWenn Sie Swap aktiviert haben, sollten Sie eine ähnliche Ausgabe sehen.
total used free shared buff/cache available
Mem: 7945 1083 6492 34 636 6861
Swap: 4242 0 4242Führen Sie die folgenden Befehle aus, um den Swap-Speicher dauerhaft zu deaktivieren.
$ sudo swapoff -a
$ sudo sed -i '/ swap / s/^\(.*\)$/#
1/g' /etc/fstabÜberprüfen Sie erneut den Swap-Speicher, und es sollte Folgendes angezeigt werden.
total used free shared buff/cache available
Mem: 7945 1113 6449 37 651 6831
Swap: 0 0 0OpenSearch verwendet standardmäßig ein mapfs-Verzeichnis, um seine Indizes zu speichern. Die Standardbetriebssystemgrenzen für nmap-Zählungen sind zu niedrig, was zu Speichermangelfehlern führen kann.
Überprüfen Sie den aktuellen Wert der Variablen vm.max_map_count.
$ sysctl -n vm.max_map_count
65530Um die Anzahl der von jedem Prozess verwendeten Speicherkarten zu erhöhen, führen Sie den folgenden Befehl aus.
$ sudo sysctl -w vm.max_map_count=262144Dies funktioniert nur bis zum Neustart des Systems. Um diesen Wert dauerhaft zu machen, fügen Sie die Zeile vm.max_map_count=262144 in die Datei /etc/sysctl.conf mit dem folgenden Befehl ein.
$ echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.confSie können die Änderung dauerhaft machen, indem Sie entweder das System neu starten oder den folgenden Befehl ausführen.
$ sudo sysctl -pDer letzte Schritt besteht darin, den Hostnamen einzurichten. Je nachdem, wo Sie Ihren Server hosten, erlauben einige Cloud-Anbieter, dass Sie Ihren Hostnamen direkt über ihr Kontrollfeld festlegen. Es ist jedoch besser, dies über das Terminal zu tun.
Führen Sie den folgenden Befehl aus, um den Hostnamen festzulegen.
$ sudo hostnamectl set-hostname opensearchFügen Sie den FQDN (Fully Qualified Domain Name) zur Datei /etc/hosts hinzu. Hierzu verknüpfen wir den Hostnamen opensearch mit dem Domainnamen opensearch.example.com und weisen ihn der Server-IP-Adresse zu. Ersetzen Sie im folgenden Befehl durch die IP-Adresse Ihres Servers.
$ echo " opensearch.example.com opensearch" | sudo tee -a /etc/hosts Überprüfen Sie den Hostnamen und den FQDN mit den folgenden Befehlen.
$ hostname
opensearch
$ hostname -f
opensearch.example.comDamit ist der Prozess der Optimierung unseres Systems für die Arbeit mit OpenSearch abgeschlossen.
Schritt 3 - OpenSearch installieren
Importieren Sie den OpenSearch GPG-Schlüssel, der zum Signieren des Installationspakets verwendet wird.
$ curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyringErstellen Sie die OpenSearch APT-Repository-Datei.
$ 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.listAktualisieren Sie die System-Repository-Liste.
$ sudo apt updateÜberprüfen Sie alle verfügbaren Versionen von OpenSearch.
$ sudo apt list -a opensearch
Listing... Done
opensearch/stable 2.12.0 amd64
opensearch/stable 2.11.1 amd64
opensearch/stable 2.11.0 amd64
opensearch/stable 2.10.0 amd64
opensearch/stable 2.9.0 amd64
opensearch/stable 2.8.0 amd64
opensearch/stable 2.7.0 amd64
opensearch/stable 2.6.0 amd64
opensearch/stable 2.5.0 amd64Die neueste Version von OpenSearch v2.12.0 erfordert, dass Sie das Admin-Demo-Passwort vor der Installation festlegen, da es sonst fehlschlägt.
Sie können die neueste Version von OpenSearch mit dem folgenden Befehl installieren. Wir können das Admin-Demo-Passwort mit der Umgebungsvariable im Installationsbefehl selbst festlegen. Wählen Sie ein starkes Passwort.
$ sudo env OPENSEARCH_INITIAL_ADMIN_PASSWORD= apt install opensearch Wenn Sie während der Installation die folgende Warnung sehen, können Sie diese sicher ignorieren.
......
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
......Oder Sie können eine bestimmte Version installieren.
$ sudo apt install opensearch=2.11.1Laden Sie den Dienstdaemon neu.
$ sudo systemctl daemon-reloadAktivieren Sie den OpenSearch-Dienst.
$ sudo systemctl enable opensearchStarten Sie den OpenSearch-Dienst.
$ sudo systemctl start opensearchÜberprüfen Sie den Status des OpenSearch-Dienstes.
$ sudo systemctl status opensearchSie sollten die folgende Ausgabe erhalten.
? opensearch.service - OpenSearch
Loaded: loaded (/lib/systemd/system/opensearch.service; enabled; preset: enabled)
Active: active (running) since Sat 2024-03-02 06:37:01 UTC; 5s ago
Docs: https://opensearch.org/
Main PID: 31109 (java)
Tasks: 75 (limit: 4652)
Memory: 1.3G
CPU: 1min 3.128s
CGroup: /system.slice/opensearch.service
??31109 /usr/share/opensearch/jdk/bin/java -Xshare:auto -Dopensearch.networkaddress.cache.ttl=60 -Dopensearch.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true...Schritt 4 - OpenSearch testen
Bevor wir weiter machen, lassen Sie uns überprüfen, ob die Installation einwandfrei funktioniert. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob OpenSearch wie gewünscht läuft.
$ curl -X GET https://localhost:9200 -u 'admin:' --insecure Sie sollten eine ähnliche Ausgabe erhalten.
{
"name" : "opensearch",
"cluster_name" : "opensearch",
"cluster_uuid" : "3oFvYn96St2MOpDP3Sf29g",
"version" : {
"distribution" : "opensearch",
"number" : "2.12.0",
"build_type" : "deb",
"build_hash" : "2c355ce1a427e4a528778d4054436b5c4b756221",
"build_date" : "2024-02-20T02:18:31.541484890Z",
"build_snapshot" : false,
"lucene_version" : "9.9.2",
"minimum_wire_compatibility_version" : "7.10.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "Das OpenSearch-Projekt: https://opensearch.org/"
}Abfragen Sie den OpenSearch-Plugins-Endpunkt, um die Liste der verfügbaren Plugins anzuzeigen.
$ curl -X GET https://localhost:9200/_cat/plugins?v -u 'admin:' --insecure Sie können auch den folgenden Befehl dafür verwenden.
$ /usr/share/opensearch/bin/opensearch-plugin listSie sollten eine ähnliche Ausgabe erhalten.
name component version
opensearch opensearch-alerting 2.12.0.0
opensearch opensearch-anomaly-detection 2.12.0.0
opensearch opensearch-asynchronous-search 2.12.0.0
opensearch opensearch-cross-cluster-replication 2.12.0.0
opensearch opensearch-custom-codecs 2.12.0.0
opensearch opensearch-flow-framework 2.12.0.0
opensearch opensearch-geospatial 2.12.0.0
opensearch opensearch-index-management 2.12.0.0
opensearch opensearch-job-scheduler 2.12.0.0
opensearch opensearch-knn 2.12.0.0
opensearch opensearch-ml 2.12.0.0
opensearch opensearch-neural-search 2.12.0.0
opensearch opensearch-notifications 2.12.0.0
opensearch opensearch-notifications-core 2.12.0.0
opensearch opensearch-observability 2.12.0.0
opensearch opensearch-performance-analyzer 2.12.0.0
opensearch opensearch-reports-scheduler 2.12.0.0
opensearch opensearch-security 2.12.0.0
opensearch opensearch-security-analytics 2.12.0.0
opensearch opensearch-skills 2.12.0.0
opensearch opensearch-sql 2.12.0.0Sie können zusätzliche Plugins mit dem folgenden Befehl installieren.
$ /usr/share/opensearch/bin/opensearch-plugin install Sie finden die Liste der verfügbaren OpenSearch-Plugins auf ihrer offiziellen Website.
Schritt 5 - OpenSearch konfigurieren
Die Standardeinstellungen von OpenSearch sind nicht für eine Produktionsumgebung geeignet. Standardmäßig ist OpenSearch nicht an eine Netzwerkschnittstelle gebunden und von außen nicht erreichbar. Darüber hinaus werden Standardbenutzernamen und -passwörter verwendet, die Sicherheitsprobleme verursachen können, wenn sie direkt in einer Produktionsumgebung verwendet werden.
OpenSearch speichert seine Konfiguration in der Datei /etc/opensearch/opensearch.yml. Öffnen Sie sie zur Bearbeitung.
$ sudo nano /etc/opensearch/opensearch.ymlSuchen Sie die Zeile #network.host: 192.168.0.1 und entfernen Sie das Kommentarzeichen (#) davor und ändern Sie ihren Wert wie gezeigt. Dies bindet OpenSearch an alle verfügbaren Schnittstellen. Sie können auch eine spezifische IP-Adresse eingeben, um es an eine bestimmte Schnittstelle zu binden.
# Setzen Sie die Bindungsadresse auf eine spezifische IP (IPv4 oder IPv6):
#
network.host: 0.0.0.0Fügen Sie die folgenden Zeilen am Ende der Datei hinzu.
# Sofern Sie nicht bereits einen Cluster konfiguriert haben, sollten Sie discovery.type auf single-node setzen, oder die Bootstrap-Überprüfungen schlagen fehl, wenn Sie versuchen, den Dienst zu starten.
discovery.type: single-node
# Wenn Sie das Sicherheits-Plugin in opensearch.yml zuvor deaktiviert haben, stellen Sie sicher, dass Sie es wieder aktivieren. Andernfalls können Sie diese Einstellung überspringen.
plugins.security.disabled: falseDa wir auf einem einzelnen Server installieren, haben wir discovery.type auf single-node gesetzt. Das Setzen von plugins.security.disabled auf false aktiviert das Sicherheits-Plugin von OpenSearch.
Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Wir müssen auch die anfänglichen und maximalen JVM (Java Virtual Memory) Heap-Größen angeben. Diese Einstellung hängt von der RAM-Größe Ihres Servers ab. Zum Beispiel verwenden wir einen Server mit 4 GB RAM, also setzen wir die Heap-Größe auf 3 GB.
Erstellen und öffnen Sie die Datei heapsize.options im Verzeichnis /etc/opensearch/jvm.options.d zur Bearbeitung. Sie wird den Standardwert in der Datei /etc/opensearch/jvm.options überschreiben.
$ sudo nano /etc/opensearch/jvm.options.d/heapsize.optionsFügen Sie die folgenden Zeilen hinzu.
-Xms3g
-Xmx3gSpeichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Starten Sie den OpenSearch-Dienst neu, um die Änderungen zu implementieren.
$ sudo systemctl restart opensearchSie können die aktuelle Heap-Größe und den maximalen Speicher mit dem folgenden Befehl überprüfen.
$ curl -sS "https://localhost:9200/_cat/nodes?h=heap*&v" -u 'admin:' --insecure Sie sollten die folgende Ausgabe erhalten.
heap.current heap.percent heap.max
345.5mb 11 3gbSchritt 6 - TLS für OpenSearch konfigurieren
Hier werden wir Zertifikate generieren, um OpenSearch abzusichern. TLS-Zertifikate bieten Sicherheit, indem sie es Clients ermöglichen, die Identität von Hosts zu bestätigen und den Datenverkehr zwischen einem Client und dem Host zu verschlüsseln. Wir werden die folgenden Zertifikate generieren:
- Root-CA-Zertifikate - Dies sind die primären Zertifikate, die alle anderen Zertifikate signieren.
- Admin-Zertifikate - Diese Zertifikate werden verwendet, um erhöhte Rechte für die Durchführung administrativer Aufgaben im Zusammenhang mit dem Sicherheits-Plugin zu erhalten.
- Node-Zertifikate - Diese Zertifikate werden für die Kommunikation zwischen einem Knoten und dem Client verwendet.
Alle OpenSearch-Zertifikate werden im Verzeichnis /etc/opensearch gespeichert. Der erste Schritt besteht darin, die während der Installation von OpenSearch festgelegten Standardzertifikate zu entfernen.
Wechseln Sie in das OpenSearch-Verzeichnis.
$ cd /etc/opensearchEntfernen Sie die Standardzertifikate.
$ sudo rm -f *.pemÖffnen Sie die OpenSearch-Konfigurationsdatei zur Bearbeitung.
$ sudo nano opensearch.ymlKommentieren Sie den folgenden Code am Ende der Datei aus, indem Sie ein Hash-Zeichen vor jede Zeile im Abschnitt OpenSearch Security Demo Configuration setzen, wie unten gezeigt.
######## Start OpenSearch Security Demo Configuration ########
# WARNUNG: Überprüfen Sie alle Zeilen unten, bevor Sie in die Produktion gehen
#plugins.security.ssl.transport.pemcert_filepath: esnode.pem
#plugins.security.ssl.transport.pemkey_filepath: esnode-key.pem
#plugins.security.ssl.transport.pemtrustedcas_filepath: root-ca.pem
#plugins.security.ssl.transport.enforce_hostname_verification: false
#plugins.security.ssl.http.enabled: true
#plugins.security.ssl.http.pemcert_filepath: esnode.pem
#plugins.security.ssl.http.pemkey_filepath: esnode-key.pem
#plugins.security.ssl.http.pemtrustedcas_filepath: root-ca.pem
#plugins.security.allow_unsafe_democertificates: true
#plugins.security.allow_default_init_securityindex: true
#plugins.security.authcz.admin_dn: ['CN=kirk,OU=client,O=client,L=test,C=de']
#plugins.security.audit.type: internal_opensearch
#plugins.security.enable_snapshot_restore_privilege: true
#plugins.security.check_snapshot_restore_write_privileges: true
#plugins.security.restapi.roles_enabled: [all_access, security_rest_api_access]
#plugins.security.system_indices.enabled: true
#plugins.security.system_indices.indices: [.plugins-ml-config, .plugins-ml-connector,
# .plugins-ml-model-group, .plugins-ml-model, .plugins-ml-task, .plugins-ml-conversation-meta,
# .plugins-ml-conversation-interactions, .plugins-ml-memory-meta, .plugins-ml-memory-message,
# .opendistro-alerting-config, .opendistro-alerting-alert*, .opendistro-anomaly-results*,
# .opendistro-anomaly-detector*, .opendistro-anomaly-checkpoints, .opendistro-anomaly-detection-state,
# .opendistro-reports-*, .opensearch-notifications-*, .opensearch-notebooks, .opensearch-observability,
# .ql-datasources, .opendistro-asynchronous-search-response*, .replication-metadata-store,
# .opensearch-knn-models, .geospatial-ip2geo-data*, .plugins-flow-framework-config,
# .plugins-flow-framework-templates, .plugins-flow-framework-state]
#node.max_local_storage_nodes: 3
######## Ende der OpenSearch Security Demo-Konfiguration ########Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Erstellen Sie als Nächstes ein Verzeichnis zum Speichern der Zertifikate im Verzeichnis /etc/opensearch.
$ sudo mkdir /etc/opensearch/certsÄndern Sie die Berechtigung des Verzeichnisses auf den aktuell angemeldeten Benutzer, um zu vermeiden, dass Sie sudo verwenden, während Sie die Zertifikate generieren.
$ sudo chown $USER:$USER /etc/opensearch/certs -RWechseln Sie in das Zertifikatsverzeichnis.
$ cd /etc/opensearch/certsRoot-Zertifikate generieren
Generieren Sie einen privaten Schlüssel für das Root-Zertifikat.
$ openssl genrsa -out root-ca-key.pem 2048Generieren Sie ein selbstsigniertes Root-CA-Zertifikat. Wir verwenden den Parameter -subj, um Informationen bereitzustellen, die im Zertifikat eingebettet sind. Wenn Sie das Flag -subj nicht verwenden, werden Sie nach all diesen Informationen gefragt.
$ 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 730Sie können die Informationen an Ihre spezifische Hostumgebung anpassen.
Die Variablen im Parameter -subj bedeuten Folgendes.
C = Ländercode (2 Buchstaben), ST = Bundesland oder Provinzname (vollständiger Name), L = Ortsname (z.B. Stadt), O = Name der Organisation, OU = Name der organisatorischen Einheit (z.B. Abteilung), CN = Gemeinsamer Name (z.B. Server-FQDN)
Ihr Root-Zertifikat ist jetzt aktiv.
Admin-Zertifikate generieren
Generieren Sie den privaten Schlüssel für das Admin-Zertifikat mit dem folgenden Befehl.
$ openssl genrsa -out admin-key-temp.pem 2048Konvertieren Sie den privaten Schlüssel in das PKCS#8-Format zur Verwendung in Java mit einem PKCS#12-kompatiblen Algorithmus (3DES).
$ openssl pkcs8 -inform PEM -outform PEM -in admin-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out admin-key.pemGenerieren Sie die Admin-CSR (Certificate Signing Request) aus dem privaten Schlüssel. Da dieses Zertifikat nicht an Hosts gebunden ist und zur Authentifizierung von erhöhtem Zugriff verwendet wird, verwenden wir den Wert A für den Common Name (CN).
$ openssl req -new -key admin-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=A" -out admin.csrSignieren Sie die Admin-CSR mit dem Root-Zertifikat und dem privaten Schlüssel, den Sie gerade erstellt haben.
$ openssl x509 -req -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem -days 730
Zertifikatsanforderung Selbstsignatur ok
subject=C = CA, ST = ONTARIO, L = TORONTO, O = ORG, OU = UNIT, CN = ANode-Zertifikate generieren
Generieren Sie einen privaten Schlüssel für das Node-Zertifikat.
$ openssl genrsa -out node1-key-temp.pem 2048Konvertieren Sie den privaten Schlüssel des Knotens in das PKCS#8-Format.
$ openssl pkcs8 -inform PEM -outform PEM -in node1-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out node1-key.pemErstellen Sie eine neue CSR für das Node-Zertifikat aus dem privaten Schlüssel. Stellen Sie sicher, dass Sie den Wert der CN-Variablen mit dem Hostnamen Ihres Knotens ändern. Dieses Zertifikat ist an Ihre Hosts gebunden und sollte mit dem Hostnamen oder der IP-Adresse des Knotens übereinstimmen.
$ openssl req -new -key node1-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=opensearch.example.com" -out node1.csrErstellen Sie eine SAN (Subject Alternative Name)-Erweiterungsdatei, die den Hostnamen oder FQDN oder die IP-Adresse des Knotens enthält.
$ sh -c 'echo subjectAltName=DNS:opensearch.example.com > node1.ext'Signieren Sie die Node-Zertifikats-CSR mit dem Root-Zertifikat und dem privaten Schlüssel, den Sie gerade erstellt haben.
$ 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
Zertifikatsanforderung Selbstsignatur ok
subject=C = CA, ST = ONTARIO, L = TORONTO, O = ORG, OU = UNIT, CN = opensearch.example.comZertifikate für die Installation vorbereiten
Entfernen Sie alle temporären Zertifikate, CSRs und die SAN-Erweiterungsdatei.
$ rm -f *temp.pem *csr *extAls Nächstes werden wir das Root-CA-Zertifikat auf dem Server installieren. Dazu konvertieren wir das Root-CA-Zertifikat in das .crt-Format.
$ openssl x509 -outform der -in root-ca.pem -out root-ca.crtKopieren Sie die Datei root-ca.crt in das Verzeichnis /usr/local/share/ca-certificates/.
$ sudo cp root-ca.crt /usr/local/share/ca-certificates/Fügen Sie das Root-CA-Zertifikat zu Ihrem Debian-Server mit dem folgenden Befehl hinzu.
$ sudo update-ca-certificatesSie sollten die folgende Ausgabe sehen ( 1 hinzugefügt), die bestätigt, dass das Root-CA-Zertifikat zu Ihrem System hinzugefügt wurde.
Aktualisierung der Zertifikate in /etc/ssl/certs...
rehash: warning: skipping ca-certificates.crt,it does not contain exactly one certificate or CRL
rehash: warning: skipping root-ca.pem,it does not contain exactly one certificate or CRL
1 hinzugefügt, 0 entfernt; fertig.
Ausführen von Hooks in /etc/ca-certificates/update.d...
fertig.Ändern Sie den Besitz des Verzeichnisses zurück auf den Benutzer opensearch.
$ sudo chown opensearch:opensearch /etc/opensearch/certs -RÄndern Sie die Berechtigung des Verzeichnisses auf 0700.
$ sudo chmod 0700 /etc/opensearch/certsÄndern Sie die Berechtigung der Zertifikate auf 0600.
$ sudo chmod 0600 /etc/opensearch/certs/{admin-key,admin,node1-key,node1,root-ca-key,root-ca}.pem
$ sudo chmod 0600 /etc/opensearch/certs/root-ca.crtSchritt 7 - TLS in OpenSearch installieren
Jetzt, da alle Zertifikate generiert und eingerichtet sind, ist es an der Zeit, die Zertifikate zu installieren und zu Ihrer OpenSearch-Installation hinzuzufügen.
Der erste Schritt besteht darin, ein Bash-Skript zu erstellen, das alle erstellten Zertifikate und die TLS-Sicherheitseinstellungen in die OpenSearch-Konfigurationsdatei (/etc/opensearch/opensearch.yml) hinzufügt.
Erstellen Sie eine Datei mit dem Namen add-opensearch-tls.sh und öffnen Sie sie zur Bearbeitung.
$ cd ~
$ nano add-opensearch-tls.shFügen Sie den folgenden Code ein.
#! /bin/bash
# Bevor Sie dieses Skript ausführen, stellen Sie sicher, dass Sie den CN im
# Distinguished Name des Knotens durch einen echten DNS-A-Eintrag ersetzen.
echo "plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node1.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node1-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/node1.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node1-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=opensearch.example.com,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.ymlSpeichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Machen Sie die Datei ausführbar.
$ chmod +x add-opensearch-tls.shFühren Sie das Skript aus.
$ ./add-opensearch-tls.shSie sollten die folgende Ausgabe erhalten.
plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.allow_default_init_securityindex: true
plugins.security.authcz.admin_dn:
- 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.nodes_dn:
- 'CN=opensearch.example.com,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.audit.type: internal_opensearch
plugins.security.enable_snapshot_restore_privilege: true
plugins.security.check_snapshot_restore_write_privileges: true
plugins.security.restapi.roles_enabled: ["all_access", "security_rest_api_access"]Öffnen Sie die Datei /etc/opensearch/opensearch.yml, um zu überprüfen, ob Ihre Einstellungen angewendet wurden.
$ sudo nano /etc/opensearch/opensearch.ymlScrollen Sie zum Ende der Datei, und Sie sollten Folgendes sehen.
# Wenn Sie das Sicherheits-Plugin in opensearch.yml zuvor deaktiviert haben,
# stellen Sie sicher, dass Sie es wieder aktivieren. Andernfalls können Sie diese Einstellung überspringen.
plugins.security.disabled: false
....
plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.allow_default_init_securityindex: true
plugins.security.authcz.admin_dn:
- 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.nodes_dn:
- 'CN=opensearch.example.com,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.audit.type: internal_opensearch
plugins.security.enable_snapshot_restore_privilege: true
plugins.security.check_snapshot_restore_write_privileges: true
plugins.security.restapi.roles_enabled: ["all_access", "security_rest_api_access"]Sobald Sie zufrieden sind, speichern Sie die Datei, indem Sie Strg + X drücken.
Schritt 8 - OpenSearch-Benutzer erstellen
In diesem Schritt werden wir alle Demobenutzer außer dem admin-Benutzer entfernen und das Standard-Admin-Passwort mit einem Skript ersetzen.
Wechseln Sie in das Verzeichnis der OpenSearch-Sicherheits-Plugin-Tools.
$ cd /usr/share/opensearch/plugins/opensearch-security/toolsFühren Sie das Skript hash.sh aus, um ein neues Passwort zu generieren.
$ ./hashDas Skript schlägt fehl, und Sie erhalten die folgende Fehlermeldung, da der Pfad zur Java-Executable (JDK) nicht definiert wurde.
************************************************************************
Dieses Tool wird in der nächsten Hauptversion von OpenSearch nicht mehr unterstützt
https://github.com/opensearch-project/security/issues/1755
**********************************************************************
WARNUNG: weder OPENSEARCH_JAVA_HOME noch JAVA_HOME ist gesetzt, wird verwenden
./hash.sh: Zeile 35: java: Befehl nicht gefundenFühren Sie den Befehl erneut aus, indem Sie die Umgebungsvariable OPENSEARCH_JAVA_HOME mit dem Speicherort des JDK deklarieren.
$ OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./hash.shSie erhalten eine ähnliche Ausgabe.
********************************************************************** Dieses Tool wird in der nächsten Hauptversion von OpenSearch nicht mehr unterstützt https://github.com/opensearch-project/security/issues/1755 ********************************************************************** [Passwort:] $2y$12$4NL0LqEnN4FXaUdQQC.gOupeCQT2IuMo9gN0b5d3nxdMVbLX088f2
Es wird der Passwort-Hash generiert, den wir später benötigen.
Öffnen Sie die OpenSearch-Benutzerkonfigurationsdatei internal_users.yml im Verzeichnis /etc/opensearch/opensearch-security/ zur Bearbeitung.
$ sudo nano /etc/opensearch/opensearch-security/internal_users.ymlKommentieren Sie alle Demobenutzer aus, indem Sie ein Hash-Zeichen davor setzen, wie gezeigt.
---
# Dies ist die interne Benutzerdatenbank
# Der Hashwert ist ein bcrypt-Hash und kann mit plugin/tools/hash.sh generiert werden
_meta:
type: "internalusers"
config_version: 2
# Definieren Sie hier Ihre internen Benutzer
## Demobenutzer
#admin:
# hash: "$2y$12$Twy84uxOX0SQ1QMQ68og8O/i1MvqWItt/phZX3DiJMjpBoT9u9KX6"
# reserved: true
# backend_roles:
# - "admin"
# description: "Demo-Admin-Benutzer"
#anomalyadmin:Fügen Sie den Admin-Benutzer mit dem Hash hinzu, den Sie oben generiert haben, wie gezeigt.
---
# Dies ist die interne Benutzerdatenbank
# Der Hashwert ist ein bcrypt-Hash und kann mit plugin/tools/hash.sh generiert werden
_meta:
type: "internalusers"
config_version: 2
# Definieren Sie hier Ihre internen Benutzer
admin:
hash: "$2y$12$4NL0LqEnN4FXaUdQQC.gOupeCQT2IuMo9gN0b5d3nxdMVbLX088f2"
reserved: true
backend_roles:
- "admin"
description: "Admin-Benutzer"
## Demobenutzer
#admin:Sobald Sie fertig sind, speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Jetzt, da die TLS-Zertifikate installiert und die Demobenutzer entfernt oder neuen Passwörtern zugewiesen wurden, ist es an der Zeit, die Konfigurationsänderungen anzuwenden. Um die Änderungen anzuwenden, rufen wir das Skript securityadmin.sh im Verzeichnis /usr/share/opensearch/plugins/opensearch-security/tools auf. Das Skript erfordert, dass der OpenSearch-Dienst läuft.
Starten Sie den OpenSearch-Dienst neu.
$ sudo systemctl restart opensearchWechseln Sie in das Verzeichnis /usr/share/opensearch/plugins/opensearch-security/tools.
$ cd /usr/share/opensearch/plugins/opensearch-security/toolsFühren Sie das Skript mit dem folgenden Befehl aus.
$ sudo OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./securityadmin.sh -h opensearch.nspeaks.com -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 -nhnvDas Sicherheits-Plugin speichert seine Konfiguration - einschließlich Benutzer, Berechtigungen, Rollen und Backend-Einstellungen - in einem Systemindex im OpenSearch-Cluster. Das Speichern dieser Einstellungen im Cluster ermöglicht es Ihnen, Einstellungen zu ändern, ohne den Cluster neu zu starten, und beseitigt die Notwendigkeit, die Konfigurationsdatei auf jedem Knoten zu bearbeiten. Dies wird erreicht, indem das Skript securityadmin.sh ausgeführt wird.
- Die Option
-cdgibt an, wo sich die Konfigurationsdateien des Sicherheits-Plugins befinden. - Die Option
-icl(--ignore-clustername) weist das Sicherheits-Plugin an, die Konfiguration unabhängig vom Cluster-Namen hochzuladen. Sie können auch den Cluster-Namen angeben, anstatt die Option-cn(--clustername) zu verwenden. - Da die Zertifikate selbstsigniert sind, verwenden wir die Option
-nhnv(--disable-host-name-verification). - Die Optionen
--cacert,--certund--keydefinieren den Speicherort des Root-Zertifikats, des Admin-Zertifikats und des privaten Schlüssels für das Admin-Zertifikat. Wenn der private Schlüssel ein Passwort hat, können Sie es mit der Option-keypassangeben.
Sie können mehr über die Konfiguration des Sicherheits-Plugins in der OpenSearch-Dokumentation erfahren.
Sie sollten eine ähnliche Ausgabe wie unten gezeigt mit dem obigen Befehl erhalten.
********************************************************************** Dieses Tool wird in der nächsten Hauptversion von OpenSearch nicht mehr unterstützt https://github.com/opensearch-project/security/issues/1755 ************************************************************************ Security Admin v7 Wird sich mit opensearch:9200 verbinden ... fertig Verbunden als "CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA" OpenSearch-Version: 2.12.0 Kontaktaufnahme mit dem opensearch-Cluster 'opensearch' und warten auf den YELLOW-Clusterstatus ... Clustername: opensearch Clusterstatus: GRÜN Anzahl der Knoten: 1 Anzahl der Datenknoten: 1 .opendistro_security-Index existiert bereits, daher müssen wir keinen erstellen. Konfiguration aus /etc/opensearch/opensearch-security/ befüllen Wird '/config' mit /etc/opensearch/opensearch-security/config.yml aktualisiert SUCC: Konfiguration für 'config' erstellt oder aktualisiert Wird '/roles' mit /etc/opensearch/opensearch-security/roles.yml aktualisiert SUCC: Konfiguration für 'roles' erstellt oder aktualisiert Wird '/rolesmapping' mit /etc/opensearch/opensearch-security/roles_mapping.yml aktualisiert SUCC: Konfiguration für 'rolesmapping' erstellt oder aktualisiert Wird '/internalusers' mit /etc/opensearch/opensearch-security/internal_users.yml aktualisiert SUCC: Konfiguration für 'internalusers' erstellt oder aktualisiert Wird '/actiongroups' mit /etc/opensearch/opensearch-security/action_groups.yml aktualisiert SUCC: Konfiguration für 'actiongroups' erstellt oder aktualisiert Wird '/tenants' mit /etc/opensearch/opensearch-security/tenants.yml aktualisiert SUCC: Konfiguration für 'tenants' erstellt oder aktualisiert Wird '/nodesdn' mit /etc/opensearch/opensearch-security/nodes_dn.yml aktualisiert SUCC: Konfiguration für 'nodesdn' erstellt oder aktualisiert Wird '/whitelist' mit /etc/opensearch/opensearch-security/whitelist.yml aktualisiert SUCC: Konfiguration für 'whitelist' erstellt oder aktualisiert Wird '/audit' mit /etc/opensearch/opensearch-security/audit.yml aktualisiert SUCC: Konfiguration für 'audit' erstellt oder aktualisiert Wird '/allowlist' mit /etc/opensearch/opensearch-security/allowlist.yml aktualisiert SUCC: Konfiguration für 'allowlist' erstellt oder aktualisiert SUCC: Erwartete 10 Konfigurationstypen für Knoten {"updated_config_types":["allowlist","tenants","rolesmapping","nodesdn","audit","roles","whitelist","internalusers","actiongroups","config"],"updated_config_size":10,"message":null} ist 10 (["allowlist","tenants","rolesmapping","nodesdn","audit","roles","whitelist","internalusers","actiongroups","config"]) aufgrund: null Fertig mit Erfolg
Überprüfen Sie die neuen Anmeldeinformationen mit dem folgenden Befehl.
Während des vorherigen Tests haben wir Anfragen an localhost gerichtet. Jetzt, da die TLS-Zertifikate eingerichtet sind und die neuen Zertifikate auf den tatsächlichen DNS-Eintrag des Hosts verweisen, werden die Anfragen an localhost die CN-Überprüfung nicht bestehen, und das Zertifikat wird als ungültig betrachtet. Daher fügen Sie Ihren tatsächlichen DNS-Eintrag im folgenden Befehl hinzu, um zu überprüfen.
$ curl https://your.host.address:9200 -u admin:yournewpassword -kSie sollten die folgende Antwort sehen.
{
"name" : "opensearch",
"cluster_name" : "opensearch",
"cluster_uuid" : "3oFvYn96St2MOpDP3Sf29g",
"version" : {
"distribution" : "opensearch",
"number" : "2.12.0",
"build_type" : "deb",
"build_hash" : "2c355ce1a427e4a528778d4054436b5c4b756221",
"build_date" : "2024-02-20T02:18:31.541484890Z",
"build_snapshot" : false,
"lucene_version" : "9.9.2",
"minimum_wire_compatibility_version" : "7.10.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "Das OpenSearch-Projekt: https://opensearch.org/"
}Schritt 9 - OpenSearch Dashboards installieren
Da wir OpenSearch bereits installiert haben, können wir den Schritt des Imports des OpenSearch GPG-Schlüssels überspringen.
Um OpenSearch Dashboards zu installieren, führen Sie den folgenden Befehl aus, um ein APT-Repository dafür zu erstellen.
$ 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.listAktualisieren Sie die System-Repository-Liste.
$ sudo apt updateListen Sie alle verfügbaren Versionen von OpenSearch Dashboards auf.
$ sudo apt list -a opensearch-dashboardsSie sollten eine ähnliche Ausgabe sehen.
Listing... Done
opensearch-dashboards/stable 2.12.0 amd64
opensearch-dashboards/stable 2.11.1 amd64
opensearch-dashboards/stable 2.11.0 amd64
opensearch-dashboards/stable 2.10.0 amd64
opensearch-dashboards/stable 2.9.0 amd64
opensearch-dashboards/stable 2.8.0 amd64
opensearch-dashboards/stable 2.7.0 amd64
opensearch-dashboards/stable 2.6.0 amd64
opensearch-dashboards/stable 2.5.0 amd64Installieren Sie die neueste Version von OpenSearch Dashboard.
$ sudo apt install opensearch-dashboardsOder installieren Sie eine bestimmte Version von OpenSearch Dashboard.
$ sudo apt install opensearch-dashboards=2.12.0Die Version von OpenSearch Dashboards und OpenSearch sollte gleich sein, andernfalls können Sie auf mehrere Probleme stoßen.
Laden Sie den Dienstdaemon neu.
$ sudo systemctl daemon-reloadAktivieren Sie den OpenSearch Dashboards-Dienst.
$ sudo systemctl enable opensearch-dashboardsStarten Sie den OpenSearch Dashboards-Dienst.
$ sudo systemctl start opensearch-dashboardsÜberprüfen Sie den Status des OpenSearch Dashboards-Dienstes.
$ sudo systemctl status opensearch-dashboardsSie sollten die folgende Ausgabe sehen.
? opensearch-dashboards.service - "OpenSearch Dashboards"
Loaded: loaded (/lib/systemd/system/opensearch-dashboards.service; enabled; preset: enabled)
Active: active (running) since Sat 2024-03-02 16:01:25 UTC; 4s ago
Main PID: 7098 (node)
Tasks: 11 (limit: 9484)
Memory: 175.4M
CPU: 5.389s
CGroup: /system.slice/opensearch-dashboards.service
??7098 /usr/share/opensearch-dashboards/node/bin/node /usr/share/opensearch-dashboards/src/cli/dist
Mar 02 16:01:25 opensearch systemd[1]: Started opensearch-dashboards.service - "OpenSearch Dashboards".Schritt 10 - OpenSearch Dashboards konfigurieren
OpenSearch Dashboards speichert seine Konfiguration in der Datei /etc/opensearch-dashboards/opensearch_dashboards.yml. Öffnen Sie sie zur Bearbeitung.
$ sudo nano /etc/opensearch-dashboards/opensearch_dashboards.ymlSuchen Sie die Zeile # server.host: "localhost" und entfernen Sie das Kommentarzeichen (#) davor und ändern Sie ihren Wert wie gezeigt.
# Gibt die Adresse an, an die der OpenSearch Dashboards-Server gebunden wird. IP-Adressen und Hostnamen sind beide gültige Werte.
# Der Standardwert ist 'localhost', was normalerweise bedeutet, dass entfernte Maschinen keine Verbindung herstellen können.
# Um Verbindungen von entfernten Benutzern zuzulassen, setzen Sie diesen Parameter auf eine nicht-loopback-Adresse.
server.host: 0.0.0.0Das Setzen des Wertes von server.host auf 0.0.0.0 bindet OpenSearch Dashboard an jede externe IP, was es über das World Wide Web zugänglich macht. Wenn Sie die Dashboards über SSL mit einem Reverse-Proxy bereitstellen möchten, lassen Sie diesen Wert unverändert.
Scrollen Sie nach unten, um den folgenden Abschnitt zu finden.
opensearch.hosts: [https://localhost:9200]
opensearch.ssl.verificationMode: none
opensearch.username: kibanaserver
opensearch.password: kibanaserver
opensearch.requestHeadersWhitelist: [authorization, securitytenant]Ändern Sie die Werte entsprechend unserer OpenSearch-Installation.
opensearch.hosts: [https://opensearch:9200]
opensearch.ssl.verificationMode: none
opensearch.username: admin
opensearch.password:
opensearch.requestHeadersWhitelist: [authorization, securitytenant] Sobald Sie fertig sind, speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Starten Sie den OpenDashboards-Dienst neu.
$ sudo systemctl restart opensearch-dashboardsÖffnen Sie den Port 5601 in der UFW-Firewall.
$ sudo ufw allow 5601Öffnen Sie die URL http:// oder http://opensearch.example.com:5601, um die OpenSearch Dashboards-Website zu starten.

Wenn Sie damit zufrieden sind, auf OpenSearch Dashboards über HTTP und mit einer Portnummer in der URL zuzugreifen, können Sie hier aufhören. Es ist jedoch besser, Dashboards über SSL bereitzustellen. Dazu werden wir Nginx als Reverse-Proxy installieren und SSL darüber bereitstellen.
Schritt 11 - Nginx installieren
Debian 12 wird mit einer älteren Version von Nginx ausgeliefert. Sie müssen das offizielle Nginx-Repository herunterladen, um die neueste Version zu installieren.
Importieren Sie den Signaturschlüssel von Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/nullFügen Sie das Repository für die Hauptversion von Nginx hinzu.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.listAktualisieren Sie die System-Repositories.
$ sudo apt updateInstallieren Sie Nginx.
$ sudo apt install nginxÜberprüfen Sie die Installation. Auf Debian-Systemen funktioniert der folgende Befehl nur mit sudo.
$ sudo nginx -v
nginx version: nginx/1.25.4Starten Sie den Nginx-Server.
$ sudo systemctl start nginxÜberprüfen Sie den Dienststatus.
$ sudo systemctl status nginx
? nginx.service - nginx - Hochleistungs-Webserver
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled)
Active: active (running) since Sat 2024-03-02 12:53:57 UTC; 4s ago
Docs: https://nginx.org/en/docs/
Process: 3976 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 3977 (nginx)
Tasks: 3 (limit: 9484)
Memory: 2.7M
CPU: 9ms
CGroup: /system.slice/nginx.service
??3977 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
??3978 "nginx: worker process"
??3979 "nginx: worker process"
Mar 02 12:53:57 opensearch systemd[1]: Starting nginx.service - nginx - Hochleistungs-Webserver...
Mar 02 12:53:57 opensearch systemd[1]: Started nginx.service - nginx - Hochleistungs-Webserver.Schritt 12 - SSL installieren
Wir müssen Certbot installieren, um das SSL-Zertifikat zu generieren. Sie können Certbot entweder mit dem Repository von Debian installieren oder die neueste Version mit dem Snapd-Tool herunterladen. Wir werden die Snapd-Version verwenden.
Debian 12 wird nicht mit Snapd installiert. Installieren Sie das Snapd-Paket.
$ sudo apt install snapdFühren Sie die folgenden Befehle aus, um sicherzustellen, dass Ihre Version von Snapd auf dem neuesten Stand ist.
$ sudo snap install core && sudo snap refresh coreInstallieren Sie Certbot.
$ sudo snap install --classic certbotVerwenden Sie den folgenden Befehl, um sicherzustellen, dass der Certbot-Befehl ausgeführt werden kann, indem Sie einen symbolischen Link zum Verzeichnis /usr/bin erstellen.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbotÜberprüfen Sie, ob Certbot ordnungsgemäß funktioniert.
$ certbot --version
certbot 2.9.0Führen Sie den folgenden Befehl aus, um ein SSL-Zertifikat zu generieren.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d craftcms.example.comDer obige Befehl lädt ein Zertifikat in das Verzeichnis /etc/letsencrypt/live/craftcms.example.com auf Ihrem Server herunter.
Generieren Sie ein Diffie-Hellman-Gruppe-Zertifikat.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096Überprüfen Sie den Zeitplan für den Certbot-Erneuerungsdienst.
$ sudo systemctl list-timersSie finden snap.certbot.renew.service als einen der Dienste, die geplant sind, um ausgeführt zu werden.
NÄCHSTER LINKS LETZTER VERGANGEN EINHEIT AKTIVIERT ---------------------------------------------------------------------------------------------------------------------------------------
Sat 2024-03-02 16:25:00 UTC 3h 27min left - - snap.certbot.renew.timer snap.certbot.renew.service
Sat 2024-03-02 23:00:51 UTC 10h left Sat 2024-03-02 06:29:02 UTC 6h ago apt-daily.timer apt-daily.service
Sun 2024-03-03 00:00:00 UTC 11h left - - dpkg-db-backup.timer dpkg-db-backup.service
.....Führen Sie einen Testlauf des Prozesses durch, um zu überprüfen, ob die SSL-Erneuerung einwandfrei funktioniert.
$ sudo certbot renew --dry-runWenn Sie keine Fehler sehen, sind Sie bereit. Ihr Zertifikat wird automatisch erneuert.
Schritt 13 - Nginx konfigurieren
Öffnen Sie die Datei /etc/nginx/nginx.conf zur Bearbeitung.
$ sudo nano /etc/nginx/nginx.confFügen Sie die folgende Zeile vor der Zeile include /etc/nginx/conf.d/*.conf; hinzu.
server_names_hash_bucket_size 64;Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Erstellen und öffnen Sie die Datei /etc/nginx/conf.d/opensearch.conf zur Bearbeitung.
$ sudo nano /etc/nginx/conf.d/opensearch.confFügen Sie den folgenden Code ein. Ersetzen Sie opensearch.example.com durch Ihren Domainnamen.
server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
http3 on;
quic_retry on;
server_name opensearch.example.com;
access_log /var/log/nginx/opensearch.access.log;
error_log /var/log/nginx/opensearch.error.log;
ssl_certificate /etc/letsencrypt/live/opensearch.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/opensearch.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/opensearch.example.com/chain.pem;
ssl_session_timeout 5m;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_early_data on;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
location / {
proxy_pass http://localhost:5601;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
# HTTPS erzwingen
server {
listen 80;
listen [::]:80;
server_name opensearch.example.com;
return 301 https://$host$request_uri;
}Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Überprüfen Sie Ihre Nginx-Konfiguration.
$ sudo nginx -tStarten Sie den Nginx-Server neu.
$ sudo systemctl restart nginxBesuchen Sie https://opensearch.example.com in Ihrem Browser, um OpenSearch Dashboards zu starten.
Schritt 14 - Zugriff auf OpenSearch Dashboards und Nutzung
Wenn Sie Nginx verwendet haben, greifen Sie auf die Dashboards über die URL https://opensearch.example.com zu oder verwenden Sie http://opensearch.example.com:5601, und Sie sollten die Anmeldeseite erhalten.

Geben Sie admin und das benutzerdefinierte Admin-Passwort ein, das Sie in Schritt 4 für OpenSearch konfiguriert haben, und klicken Sie auf die Schaltfläche Anmelden, um fortzufahren.

Klicken Sie auf die Schaltfläche Daten hinzufügen, um direkt Daten hinzuzufügen, oder klicken Sie auf den Link Selbst erkunden, wenn Sie zuerst stöbern möchten. Wir werden zuerst stöbern, und es sollte Sie zu einem Popup führen, das über den Dunkelmodus von OpenSearch Dashboards spricht.

Klicken Sie auf die Schaltfläche Schließen, um fortzufahren. Als Nächstes werden Sie aufgefordert, einen Mandanten auszuwählen.

Mandanten in OpenSearch Dashboards sind Bereiche zum Speichern von Indexmustern, Visualisierungen, Dashboards und anderen OpenSearch Dashboards-Objekten. Jeder Benutzer kann mehrere Mandanten für verschiedene Zwecke erstellen. Mandanten sind nützlich, um Ihre Arbeit sicher mit anderen Benutzern von OpenSearch Dashboards zu teilen. OpenSearch gibt Ihnen die Möglichkeit, zwischen drei Optionen zu wählen.
- Global - Dieser Mandant wird zwischen allen Benutzern von OpenSearch Dashboards geteilt.
- Privat - Dieser Mandant ist exklusiv für jeden Benutzer und kann nicht geteilt werden.
- Benutzerdefiniert - Administratoren können benutzerdefinierte Mandanten erstellen und bestimmten Rollen zuweisen. Nach der Erstellung können Sie diese Mandanten verwenden, um bestimmten Benutzern Räume bereitzustellen.
Für den Moment bleiben wir bei der Standardoption eines privaten Mandanten. Klicken Sie auf die Schaltfläche Bestätigen, um fortzufahren. Sie werden mit der folgenden Seite begrüßt.

Als Nächstes werden wir die Verbindung zwischen OpenSearch und den OpenSearch Dashboards überprüfen.
Klicken Sie auf die Schaltfläche Entwicklertools in der oberen rechten Ecke, und Ihnen wird ein Mini-Popup über die Konsolenbenutzeroberfläche für die OpenSearch Dashboards angezeigt.

Klicken Sie auf die Schaltfläche Schließen, geben Sie die Abfrage GET / in die Konsole auf der linken Seite ein und klicken Sie auf die kleine Wiedergabetaste in der Mitte. Sie sollten die folgende Ausgabe auf der rechten Seite sehen.

Dies bestätigt, dass OpenSearch Dashboards Daten von OpenSearch erhält und beide einwandfrei funktionieren. Sie können ab hier mit dem Hinzufügen von Daten beginnen.
Fazit
Damit endet das Tutorial zur Installation von OpenSearch auf einem Debian 12-Server. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.