OpenSearch Install · 28 min read · Oct 12, 2025

Come installare OpenSearch su Debian 12

OpenSearch è un fork open-source di Elasticsearch e Kibana sviluppato da Amazon. È un motore di ricerca distribuito, scalabile e in tempo reale che consente la ricerca full-text e l’analisi. Viene utilizzato per indicizzare e cercare grandi quantità di dati. È comunemente distribuito insieme a OpenSearch Dashboards (un fork di Kibana), un potente cruscotto di visualizzazione dei dati per OpenSearch. OpenSearch Dashboards ti consente di esplorare i dati di log di OpenSearch e di costruire cruscotti e query per ottenere informazioni sulla tua applicazione.

Questo tutorial ti mostrerà come installare OpenSearch su un server Debian 12. Imparerai anche come proteggere la tua installazione con certificati TLS personalizzati e abilitare l’autenticazione su OpenSearch.

Prerequisiti

  • Un server che esegue Debian 12 con un minimo di 4 GB di RAM.

  • Un utente non root con privilegi sudo.

  • Il firewall Uncomplicated Firewall (UFW) è abilitato e in esecuzione.

  • Un nome di dominio completamente qualificato (FQDN) come opensearch.example.com che punta al tuo server. Questo è utile se desideri servire OpenSearch Dashboards tramite SSL utilizzando un server proxy.

  • Tutto è aggiornato. $ sudo apt update && sudo apt upgrade

  • Sono necessari alcuni pacchetti essenziali per il tutorial e per il funzionamento di Craft CMS. Alcuni di questi saranno già presenti sul tuo server. $ sudo apt install curl wget nano software-properties-common dirmngr apt-transport-https ca-certificates lsb-release debian-archive-keyring gnupg2 ufw unzip -y

Passo 1 - Configura il Firewall

Il primo passo prima di installare qualsiasi pacchetto è configurare il firewall per consentire le connessioni HTTP e HTTPS.

Controlla lo stato del firewall.

$ sudo ufw status

Dovresti vedere qualcosa di simile al seguente.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Consenti le porte HTTP e HTTPS.

$ sudo ufw allow http
$ sudo ufw allow https

Controlla di nuovo lo stato per confermare.

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)

Passo 2 - Prepara il Sistema

Prima di installare OpenSearch, dobbiamo preparare e ottimizzare il nostro sistema per esso. Ci sono diversi passaggi coinvolti che includono la disabilitazione di qualsiasi memoria swap se ce l’hai, impostare il numero di mappe di memoria per il tuo sistema e configurare il nome host del sistema.

Innanzitutto, controlla se hai la memoria swap abilitata.

$ free -m

Se hai la swap abilitata, dovresti vedere un output simile.

               total        used        free      shared  buff/cache   available
Mem:            7945        1083        6492          34         636        6861
Swap:           4242           0        4242

Esegui i seguenti comandi per disabilitare permanentemente lo spazio swap.

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

Controlla di nuovo la memoria swap e dovrebbe mostrare quanto segue.

               total        used        free      shared  buff/cache   available
Mem:            7945        1113        6449          37         651        6831
Swap:              0           0           0

OpenSearch utilizza una directory mapfs per impostazione predefinita per memorizzare i suoi indici. I limiti predefiniti del sistema operativo sui conteggi nmap sono troppo bassi, il che può causare errori di memoria esaurita.

Controlla il valore esistente per la variabile vm.max_map_count.

$ sysctl -n vm.max_map_count
65530

Per aumentare il numero di mappe di memoria utilizzate da ciascun processo, esegui il seguente comando.

$ sudo sysctl -w vm.max_map_count=262144

Questo funzionerà solo fino al riavvio del sistema. Per rendere questo valore permanente, aggiungi la riga vm.max_map_count=262144 nel file /etc/sysctl.conf utilizzando il seguente comando.

$ echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf

Puoi rendere la modifica permanente riavviando il sistema o eseguendo il seguente comando.

$ sudo sysctl -p

L’ultimo passo è impostare il nome host. A seconda di dove stai ospitando il tuo server, alcune aziende cloud ti consentono di impostare il tuo nome host direttamente tramite il loro pannello di controllo. Tuttavia, è meglio farlo tramite il terminale.

Esegui il seguente comando per impostare il nome host.

$ sudo hostnamectl set-hostname opensearch

Aggiungi il FQDN (Fully qualified domain name) al file /etc/hosts. Qui, mappiamo il nome host opensearch al nome di dominio opensearch.example.com e lo puntiamo all’indirizzo IP del server. Sostituisci nel comando qui sotto con l’indirizzo IP del tuo server.

$ echo "  opensearch.example.com  opensearch" | sudo tee -a /etc/hosts

Controlla il nome host e il FQDN utilizzando i seguenti comandi.

$ hostname
opensearch
$ hostname -f
opensearch.example.com

Questo conclude il processo di ottimizzazione del nostro sistema per lavorare con OpenSearch.

Passo 3 - Installa OpenSearch

Importa la chiave GPG di OpenSearch utilizzata per firmare il pacchetto di installazione.

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

Crea il file del repository APT di OpenSearch.

$ 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

Aggiorna l’elenco dei repository di sistema.

$ sudo apt update

Controlla tutte le versioni disponibili di 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 amd64

L’ultima versione di OpenSearch v2.12.0 richiede di impostare la password demo dell’amministratore prima dell’installazione o fallirà.

Puoi installare l’ultima versione di OpenSearch utilizzando il seguente comando. Possiamo impostare la password demo dell’amministratore utilizzando la variabile di ambiente nel comando di installazione stesso. Scegli una password forte.

$ sudo env OPENSEARCH_INITIAL_ADMIN_PASSWORD= apt install opensearch

Se vedi il seguente avviso durante l’installazione, puoi ignorarlo in sicurezza.

......
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’
......

Oppure puoi installare una versione specifica.

$ sudo apt install opensearch=2.11.1

Ricarica il demone del servizio.

$ sudo systemctl daemon-reload

Abilita il servizio OpenSearch.

$ sudo systemctl enable opensearch

Avvia il servizio OpenSearch.

$ sudo systemctl start opensearch

Verifica lo stato del servizio OpenSearch.

$ sudo systemctl status opensearch

Dovresti ottenere il seguente output.

? 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...

Passo 4 - Testa OpenSearch

Prima di procedere oltre, controlliamo se l’installazione funziona correttamente. Esegui il seguente comando per verificare se OpenSearch sta funzionando come previsto.

$ curl -X GET https://localhost:9200 -u 'admin:' --insecure

Dovresti ottenere un output simile.

{
  "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" : "Il progetto OpenSearch: https://opensearch.org/"
}

Interroga l’endpoint dei plugin di OpenSearch per vedere l’elenco dei plugin disponibili.

$ curl -X GET https://localhost:9200/_cat/plugins?v -u 'admin:' --insecure

Puoi anche usare il seguente comando per lo stesso.

$ /usr/share/opensearch/bin/opensearch-plugin list

Dovresti ottenere un output simile.

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.0

Puoi installare plugin aggiuntivi utilizzando il seguente comando.

$ /usr/share/opensearch/bin/opensearch-plugin install 

Puoi trovare l’elenco dei plugin OpenSearch disponibili sul loro sito ufficiale.

Passo 5 - Configura OpenSearch

Le impostazioni predefinite di OpenSearch non sono adatte per un ambiente di produzione. Per impostazione predefinita, OpenSearch non è legato a un’interfaccia di rete ed è irraggiungibile dall’esterno. Inoltre, vengono utilizzati nomi utente e password predefiniti che possono causare problemi di sicurezza se utilizzati direttamente in un ambiente di produzione.

OpenSearch memorizza la sua configurazione nel file /etc/opensearch/opensearch.yml. Aprilo per la modifica.

$ sudo nano /etc/opensearch/opensearch.yml

Trova la riga #network.host: 192.168.0.1 e decommentala rimuovendo l’hash (#) davanti ad essa e cambiando il suo valore come mostrato. Questo lega OpenSearch a tutte le interfacce disponibili. Puoi anche scegliere di inserire un IP specifico per legarlo a un’interfaccia specifica.

# Imposta l'indirizzo di binding su un IP specifico (IPv4 o IPv6):
#
network.host: 0.0.0.0

Aggiungi le seguenti righe in fondo al file.

# A meno che tu non abbia già configurato un cluster, dovresti impostare
# discovery.type su single-node, altrimenti i controlli di avvio falliranno
# quando provi a avviare il servizio.
discovery.type: single-node

# Se in precedenza hai disabilitato il plugin di sicurezza in opensearch.yml,
# assicurati di riattivarlo. Altrimenti puoi saltare questa impostazione.
plugins.security.disabled: false

Poiché stiamo installando su un singolo server, abbiamo impostato discovery.type su single-node. Impostare plugins.security.disabled su false abilita il plugin di sicurezza di OpenSearch.

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Dobbiamo anche specificare le dimensioni iniziali e massime dell’heap JVM (Java Virtual Memory). Questa impostazione dipende dalla dimensione della RAM del tuo server. Ad esempio, stiamo utilizzando un server con 4 GB di RAM, quindi impostiamo la dimensione dell’heap a 3 GB.

Crea e apri il file heapsize.options nella directory /etc/opensearch/jvm.options.d per la modifica. Sovrascriverà il valore predefinito impostato nel file /etc/opensearch/jvm.options.

$ sudo nano /etc/opensearch/jvm.options.d/heapsize.options

Aggiungi le seguenti righe ad esso.

-Xms3g
-Xmx3g

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Riavvia il servizio OpenSearch per implementare le modifiche.

$ sudo systemctl restart opensearch

Puoi controllare la dimensione attuale dell’heap e la memoria massima utilizzando il seguente comando.

$ curl -sS "https://localhost:9200/_cat/nodes?h=heap*&v" -u 'admin:' --insecure

Dovresti ottenere il seguente output.

heap.current heap.percent heap.max
     345.5mb           11      3gb

Passo 6 - Configura TLS per OpenSearch

Qui genereremo certificati per proteggere OpenSearch. I certificati TLS forniscono sicurezza consentendo ai client di confermare l’identità degli host e crittografare il traffico tra un client e l’host. Genereremo i seguenti certificati:

  1. Certificati CA Root - Questi sono i certificati principali che firmeranno tutti gli altri certificati.
  2. Certificati Admin - Questi certificati vengono utilizzati per ottenere diritti elevati per eseguire attività amministrative relative al plugin di sicurezza.
  3. Certificati Node - Questi certificati vengono utilizzati per la comunicazione tra un nodo e il client.

Tutti i certificati OpenSearch sono memorizzati nella directory /etc/opensearch. Il primo passo è rimuovere i certificati predefiniti impostati durante l’installazione di OpenSearch.

Passa alla directory di OpenSearch.

$ cd /etc/opensearch

Rimuovi i certificati predefiniti.

$ sudo rm -f *.pem

Apri il file di configurazione di OpenSearch per la modifica.

$ sudo nano opensearch.yml

Commenta il seguente codice in fondo al file mettendo un hash davanti a ciascuna riga all’interno della sezione OpenSearch Security Demo Configuration come mostrato di seguito.

######## Inizio configurazione demo di sicurezza OpenSearch ########
# ATTENZIONE: rivedi tutte le righe sottostanti prima di andare in produzione
#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
######## Fine configurazione demo di sicurezza OpenSearch ########

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Successivamente, crea una directory per memorizzare i certificati all’interno della directory /etc/opensearch.

$ sudo mkdir /etc/opensearch/certs

Cambia il permesso della directory all’utente attualmente connesso per evitare di utilizzare sudo durante la generazione dei certificati.

$ sudo chown $USER:$USER /etc/opensearch/certs -R

Passa alla directory dei certificati.

$ cd /etc/opensearch/certs

Genera Certificati Root

Genera una chiave privata per il certificato root.

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

Genera un certificato CA root autofirmato. Stiamo utilizzando il parametro -subj per fornire informazioni che sono incorporate nel certificato. Se non utilizzi il flag -subj, ti verrà chiesto di fornire tutte queste informazioni.

$ 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

Puoi cambiare le informazioni per adattarle al tuo host specifico.

Le variabili nel parametro -subj significano quanto segue.

C = Nome del paese (codice di 2 lettere), ST = Nome dello stato o della provincia (nome completo), L = Nome della località (ad es., città), O = Nome dell’organizzazione, OU = Nome dell’unità organizzativa (ad es., sezione), CN = Nome comune (ad es., FQDN del server)

Il tuo certificato root è ora attivo.

Genera Certificati Admin

Genera la chiave privata per il certificato Admin utilizzando il seguente comando.

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

Converti la chiave privata nel formato PKCS#8 per l’uso in Java utilizzando un algoritmo compatibile con PKCS#12 (3DES).

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

Genera il CSR (Certificate Signing Request) Admin dalla chiave privata. Poiché questo certificato non è legato a nessun host ed è utilizzato per autenticare l’accesso elevato, stiamo utilizzando un valore di A per il Nome Comune (CN).

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

Firma il CSR Admin con il certificato root e la chiave privata che hai appena creato.

$ openssl x509 -req -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem -days 730
Certificate request self-signature ok
subject=C = CA, ST = ONTARIO, L = TORONTO, O = ORG, OU = UNIT, CN = A

Genera Certificati Node

Genera una chiave privata per il certificato node.

$ openssl genrsa -out node1-key-temp.pem 2048

Converti la chiave privata del nodo nel formato PKCS#8.

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

Crea un nuovo CSR per il certificato Node dalla chiave privata. Assicurati di cambiare il valore della variabile CN con il nome host del tuo nodo. Questo certificato è legato ai tuoi host e deve corrispondere al nome host o all’indirizzo IP del nodo.

$ openssl req -new -key node1-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=opensearch.example.com" -out node1.csr

Crea un file di estensione SAN (Subject Alternative Name) che contiene il nome host del nodo o FQDN o indirizzo IP.

$ sh -c 'echo subjectAltName=DNS:opensearch.example.com > node1.ext'

Firma il CSR del certificato node con il certificato root e la chiave privata che hai appena creato.

$ 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
Certificate request self-signature ok
subject=C = CA, ST = ONTARIO, L = TORONTO, O = ORG, OU = UNIT, CN = opensearch.example.com

Preparazione dei Certificati per l’Installazione

Rimuovi eventuali certificati temporanei, CSR e il file di estensione SAN.

$ rm -f *temp.pem *csr *ext

Successivamente, installeremo il certificato CA root sul server. Per farlo, converti il certificato CA root nel formato .crt.

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

Copia il file root-ca.crt nella directory /usr/local/share/ca-certificates/.

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

Aggiungi il certificato CA root al tuo server Debian utilizzando il seguente comando.

$ sudo update-ca-certificates

Dovresti vedere il seguente output ( 1 added) che conferma che il certificato CA root è stato aggiunto al tuo sistema.

Updating certificates 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 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.

Cambia la proprietà della directory di nuovo all’utente opensearch.

$ sudo chown opensearch:opensearch /etc/opensearch/certs -R

Cambia il permesso sulla directory in 0700.

$ sudo chmod 0700 /etc/opensearch/certs

Cambia il permesso sui certificati in 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.crt

Passo 7 - Installa TLS in OpenSearch

Ora che tutti i certificati sono stati generati e configurati, è tempo di installare e aggiungere i certificati alla tua installazione di OpenSearch.

Il primo passo è creare uno script bash che aggiungerà tutti i certificati creati e le impostazioni del plugin di sicurezza TLS al file di configurazione di OpenSearch (/etc/opensearch/opensearch.yml).

Crea un file chiamato add-opensearch-tls.sh e aprilo per la modifica.

$ cd ~
$ nano add-opensearch-tls.sh

Incolla il seguente codice in esso.

#! /bin/bash

# Prima di eseguire questo script, assicurati di sostituire il CN nel 
# nome distinto del nodo con un vero record DNS A.

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.yml

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Rendi il file eseguibile.

$ chmod +x add-opensearch-tls.sh

Esegui lo script.

$ ./add-opensearch-tls.sh

Dovresti ottenere il seguente output.

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"]

Apri il file /etc/opensearch/opensearch.yml per controllare se le tue impostazioni sono state applicate.

$ sudo nano /etc/opensearch/opensearch.yml

Scorri fino in fondo al file e dovresti vedere quanto segue.

# Se in precedenza hai disabilitato il plugin di sicurezza in opensearch.yml,
# assicurati di riattivarlo. Altrimenti puoi saltare questa impostazione.
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"]

Una volta soddisfatto, salva il file premendo Ctrl + X.

Passo 8 - Creazione Utente OpenSearch

In questo passo, rimuoveremo tutti gli utenti demo tranne l’utente admin e sostituiremo la password predefinita admin utilizzando uno script.

Passa alla directory degli strumenti del plugin di sicurezza di OpenSearch.

$ cd /usr/share/opensearch/plugins/opensearch-security/tools

Esegui lo script hash.sh per generare una nuova password.

$ ./hash

Lo script fallirà e riceverai il seguente errore perché il percorso all’eseguibile Java (JDK) non è stato definito.

************************************************************************
 Questo strumento sarà deprecato nella prossima versione principale di OpenSearch 
 https://github.com/opensearch-project/security/issues/1755           
**********************************************************************
WARNING: nor OPENSEARCH_JAVA_HOME nor JAVA_HOME is set, will use 
./hash.sh: line 35: java: command not found

Esegui di nuovo il comando dichiarando la variabile di ambiente OPENSEARCH_JAVA_HOME con la posizione del JDK.

$ OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./hash.sh

Otterrai un output simile.

**********************************************************************
 Questo strumento sarà deprecato nella prossima versione principale di OpenSearch 
 https://github.com/opensearch-project/security/issues/1755           
**********************************************************************
[Password:]
$2y$12$4NL0LqEnN4FXaUdQQC.gOupeCQT2IuMo9gN0b5d3nxdMVbLX088f2

Genererà l’hash della password di cui avremo bisogno in seguito.

Apri il file di configurazione degli utenti OpenSearch internal_users.yml nella directory /etc/opensearch/opensearch-security/ per la modifica.

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

Commenta tutti gli utenti demo aggiungendo un hash davanti a loro come mostrato.

---
# Questo è il database utenti interni
# Il valore hash è un hash bcrypt e può essere generato con plugin/tools/hash.sh

_meta:
  type: "internalusers"
  config_version: 2

# Definisci i tuoi utenti interni qui

## Utenti demo

#admin:
#  hash: "$2y$12$Twy84uxOX0SQ1QMQ68og8O/i1MvqWItt/phZX3DiJMjpBoT9u9KX6"
#  reserved: true
#  backend_roles:
#  - "admin"
#  description: "Utente admin demo"

#anomalyadmin:

Aggiungi l’utente admin con l’hash che hai generato sopra come mostrato.

---
# Questo è il database utenti interni
# Il valore hash è un hash bcrypt e può essere generato con plugin/tools/hash.sh

_meta:
  type: "internalusers"
  config_version: 2

# Definisci i tuoi utenti interni qui

admin:
  hash: "$2y$12$4NL0LqEnN4FXaUdQQC.gOupeCQT2IuMo9gN0b5d3nxdMVbLX088f2"
  reserved: true
  backend_roles:
  - "admin"
  description: "Utente admin"

## Utenti demo

#admin:

Una volta terminato, salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Ora che i certificati TLS sono installati e gli utenti demo rimossi o assegnati nuove password, è tempo di applicare le modifiche di configurazione. Per applicare le modifiche, invocheremo lo script securityadmin.sh all’interno della directory /usr/share/opensearch/plugins/opensearch-security/tools. Lo script richiede che il servizio OpenSearch sia in esecuzione.

Riavvia il servizio OpenSearch.

$ sudo systemctl restart opensearch

Passa alla directory /usr/share/opensearch/plugins/opensearch-security/tools.

$ cd /usr/share/opensearch/plugins/opensearch-security/tools

Esegui lo script utilizzando il seguente comando.

$ 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 -nhnv

Il plugin di sicurezza memorizza la sua configurazione - inclusi utenti, permessi, ruoli e impostazioni di backend in un indice di sistema sul cluster OpenSearch. Memorizzare queste impostazioni nel cluster ti consente di modificare le impostazioni senza riavviare il cluster ed elimina la necessità di modificare il file di configurazione su ogni nodo. Questo viene realizzato eseguendo lo script securityadmin.sh.

  • L’opzione -cd specifica dove si trovano i file di configurazione del plugin di sicurezza.
  • L’opzione -icl ( --ignore-clustername) dice al plugin di sicurezza di caricare la configurazione indipendentemente dal nome del cluster. Puoi anche specificare il nome del cluster invece di utilizzare l’opzione -cn ( --clustername).
  • Poiché i certificati sono autofirmati, utilizziamo l’opzione -nhnv ( --disable-host-name-verification).
  • Le opzioni --cacert, --cert e --key definiscono la posizione del certificato root, del certificato admin e della chiave privata per il certificato admin. Se la chiave privata ha una password, puoi definirla utilizzando l’opzione -keypass.

Puoi saperne di più sulla configurazione del plugin di sicurezza nella documentazione di OpenSearch.

Dovresti aver ottenuto un output simile a quello mostrato di seguito con il comando sopra.

**********************************************************************
 Questo strumento sarà deprecato nella prossima versione principale di OpenSearch 
 https://github.com/opensearch-project/security/issues/1755           
************************************************************************
Security Admin v7
Will connect to opensearch:9200 ... done
Connected as "CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA"
OpenSearch Version: 2.12.0
Contacting opensearch cluster 'opensearch' and wait for YELLOW clusterstate ...
Clustername: opensearch
Clusterstate: GREEN
Number of nodes: 1
Number of data nodes: 1
.opendistro_security index already exists, so we do not need to create one.
Populate config from /etc/opensearch/opensearch-security/
Will update '/config' with /etc/opensearch/opensearch-security/config.yml 
   SUCC: Configuration for 'config' created or updated
Will update '/roles' with /etc/opensearch/opensearch-security/roles.yml 
   SUCC: Configuration for 'roles' created or updated
Will update '/rolesmapping' with /etc/opensearch/opensearch-security/roles_mapping.yml 
   SUCC: Configuration for 'rolesmapping' created or updated
Will update '/internalusers' with /etc/opensearch/opensearch-security/internal_users.yml 
   SUCC: Configuration for 'internalusers' created or updated
Will update '/actiongroups' with /etc/opensearch/opensearch-security/action_groups.yml 
   SUCC: Configuration for 'actiongroups' created or updated
Will update '/tenants' with /etc/opensearch/opensearch-security/tenants.yml 
   SUCC: Configuration for 'tenants' created or updated
Will update '/nodesdn' with /etc/opensearch/opensearch-security/nodes_dn.yml 
   SUCC: Configuration for 'nodesdn' created or updated
Will update '/whitelist' with /etc/opensearch/opensearch-security/whitelist.yml 
   SUCC: Configuration for 'whitelist' created or updated
Will update '/audit' with /etc/opensearch/opensearch-security/audit.yml 
   SUCC: Configuration for 'audit' created or updated
Will update '/allowlist' with /etc/opensearch/opensearch-security/allowlist.yml 
   SUCC: Configuration for 'allowlist' created or updated
SUCC: Expected 10 config types for node {"updated_config_types":["allowlist","tenants","rolesmapping","nodesdn","audit","roles","whitelist","internalusers","actiongroups","config"],"updated_config_size":10,"message":null} is 10 (["allowlist","tenants","rolesmapping","nodesdn","audit","roles","whitelist","internalusers","actiongroups","config"]) due to: null
Done with success

Verifica le nuove credenziali utilizzando il seguente comando.

Durante il test precedente, abbiamo diretto le richieste a localhost. Ora che i certificati TLS sono stati configurati e i nuovi certificati si riferiscono al record DNS effettivo dell’host, le richieste a localhost falliranno il controllo CN e il certificato sarà considerato non valido. Pertanto, aggiungi il tuo record DNS effettivo nel comando qui sotto per verificare.

$ curl https://your.host.address:9200 -u admin:yournewpassword -k

Dovresti vedere la seguente risposta.

{
  "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" : "Il progetto OpenSearch: https://opensearch.org/"
}

Passo 9 - Installa OpenSearch Dashboards

Poiché abbiamo già installato OpenSearch, possiamo saltare il passaggio di importazione della chiave GPG di OpenSearch.

Per installare i cruscotti OpenSearch, esegui il seguente comando per creare un repository APT per esso.

$ 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

Aggiorna l’elenco dei repository di sistema.

$ sudo apt update

Elenca tutte le versioni disponibili di OpenSearch Dashboards.

$ sudo apt list -a opensearch-dashboards

Dovresti vedere un output simile.

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 amd64

Installa l’ultima versione di OpenSearch Dashboard.

$ sudo apt install opensearch-dashboards

Oppure installa una versione specifica di OpenSearch Dashboard.

$ sudo apt install opensearch-dashboards=2.12.0

La versione di OpenSearch Dashboards e OpenSearch dovrebbe essere la stessa, altrimenti potresti affrontare diversi problemi.

Ricarica il demone del servizio.

$ sudo systemctl daemon-reload

Abilita il servizio OpenSearch Dashboards.

$ sudo systemctl enable opensearch-dashboards

Avvia il servizio OpenSearch Dashboards.

$ sudo systemctl start opensearch-dashboards

Verifica lo stato del servizio OpenSearch Dashboards.

$ sudo systemctl status opensearch-dashboards

Dovresti vedere il seguente output.

? 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".

Passo 10 - Configura OpenSearch Dashboards

OpenSearch Dashboards memorizza la sua configurazione nel file /etc/opensearch-dashboards/opensearch_dashboards.yml. Aprilo per la modifica.

$ sudo nano /etc/opensearch-dashboards/opensearch_dashboards.yml

Trova la riga # server.host: "localhost" e decommentala rimuovendo l’hash davanti ad essa e cambiando il suo valore come mostrato.

# Specifica l'indirizzo a cui il server OpenSearch Dashboards si binderà. Gli indirizzi IP e i nomi host sono entrambi valori validi.
# Il valore predefinito è 'localhost', il che significa che di solito le macchine remote non saranno in grado di connettersi.
# Per consentire connessioni da utenti remoti, imposta questo parametro su un indirizzo non loopback.
server.host: 0.0.0.0

Impostare il valore di server.host su 0.0.0.0 lega OpenSearch Dashboard a qualsiasi IP esterno, rendendolo accessibile su Internet. Se desideri servire i cruscotti tramite SSL utilizzando un proxy inverso, lascia questo valore invariato.

Scorri verso il basso per trovare la seguente sezione.

opensearch.hosts: [https://localhost:9200]
opensearch.ssl.verificationMode: none
opensearch.username: kibanaserver
opensearch.password: kibanaserver
opensearch.requestHeadersWhitelist: [authorization, securitytenant]

Cambia i valori come configurato per la nostra installazione di OpenSearch.

opensearch.hosts: [https://opensearch:9200]
opensearch.ssl.verificationMode: none
opensearch.username: admin
opensearch.password: 
opensearch.requestHeadersWhitelist: [authorization, securitytenant]

Una volta terminato, salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Riavvia il servizio OpenDashboards.

$  sudo systemctl restart opensearch-dashboards

Apri la porta 5601 nel firewall UFW.

$ sudo ufw allow 5601

Apri l’URL http://:5601 o http://opensearch.example.com:5601 per avviare il sito web di OpenSearch Dashboards.

Login OpenSearch Dashboards

Se sei contento di accedere a OpenSearch Dashboards tramite HTTP e con un numero di porta nell’URL, puoi fermarti qui. Tuttavia, è meglio servire i cruscotti tramite SSL. Per questo, installeremo Nginx come proxy inverso e serviremo SSL tramite esso.

Passo 11 - Installa Nginx

Debian 12 viene fornito con una versione più vecchia di Nginx. Devi scaricare il repository ufficiale di Nginx per installare l’ultima versione.

Importa la chiave di firma di Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Aggiungi il repository per la versione principale di Nginx.

$ 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.list

Aggiorna i repository di sistema.

$ sudo apt update

Installa Nginx.

$ sudo apt install nginx

Verifica l’installazione. Nei sistemi Debian, il seguente comando funzionerà solo con sudo.

$ sudo nginx -v
nginx version: nginx/1.25.4

Avvia il server Nginx.

$ sudo systemctl start nginx

Controlla lo stato del servizio.

$ sudo systemctl status nginx
? nginx.service - nginx - server web ad alte prestazioni
     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 - server web ad alte prestazioni...
Mar 02 12:53:57 opensearch systemd[1]: Started nginx.service - nginx - server web ad alte prestazioni.

Passo 12 - Installa SSL

Dobbiamo installare Certbot per generare il certificato SSL. Puoi installare Certbot utilizzando il repository di Debian o scaricare l’ultima versione utilizzando lo strumento Snapd. Utilizzeremo la versione Snapd.

Debian 12 non viene fornito con Snapd installato. Installa il pacchetto Snapd.

$ sudo apt install snapd

Esegui i seguenti comandi per assicurarti che la tua versione di Snapd sia aggiornata.

$ sudo snap install core && sudo snap refresh core

Installa Certbot.

$ sudo snap install --classic certbot

Usa il seguente comando per assicurarti che il comando Certbot possa essere eseguito creando un collegamento simbolico alla directory /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Verifica se Certbot funziona correttamente.

$ certbot --version
certbot 2.9.0

Esegui il seguente comando per generare un certificato SSL.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d craftcms.example.com

Il comando sopra scaricherà un certificato nella directory /etc/letsencrypt/live/craftcms.example.com sul tuo server.

Genera un certificato di gruppo Diffie-Hellman.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Controlla il servizio di pianificazione del rinnovo di Certbot.

$ sudo systemctl list-timers

Troverai snap.certbot.renew.service come uno dei servizi programmati per essere eseguiti.

NEXT                        LEFT           LAST                        PASSED    UNIT                         ACTIVATES                   ---------------------------------------------------------------------------------------------------------------------------------------  
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
.....

Fai un tentativo di prova del processo per controllare se il rinnovo SSL funziona correttamente.

$ sudo certbot renew --dry-run

Se non vedi errori, sei a posto. Il tuo certificato si rinnoverà automaticamente.

Passo 13 - Configura Nginx

Apri il file /etc/nginx/nginx.conf per la modifica.

$ sudo nano /etc/nginx/nginx.conf

Aggiungi la seguente riga prima della riga include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size 64;

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Crea e apri il file /etc/nginx/conf.d/opensearch.conf per la modifica.

$ sudo nano /etc/nginx/conf.d/opensearch.conf

Incolla il seguente codice in esso. Sostituisci opensearch.example.com con il tuo nome di dominio.

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;
    }
}
# forzare HTTPS
server {
    listen 80;
    listen [::]:80;
    server_name  opensearch.example.com;
    return 301   https://$host$request_uri;
}

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Verifica la tua configurazione Nginx.

$ sudo nginx -t

Riavvia il server Nginx.

$ sudo systemctl restart nginx

Visita https://opensearch.example.com nel tuo browser per avviare OpenSearch Dashboards.

Passo 14 - Accedi e utilizza OpenSearch Dashboards

Se hai utilizzato Nginx, accedi ai cruscotti tramite l’URL https://opensearch.example.com oppure utilizza http://opensearch.example.com:5601 e dovresti ottenere la pagina di accesso.

Credenziali di accesso OpenSearch Dashboards

Inserisci admin e la password admin personalizzata che hai configurato per OpenSearch nel passo 4 e fai clic sul pulsante Accedi per procedere.

Pagina Aggiungi Dati OpenSearch Dashboards

Fai clic sul pulsante Aggiungi dati per iniziare ad aggiungere dati direttamente o fai clic sul link Esplora da solo se desideri navigare prima. Navigheremo prima e dovrebbe portarti a un popup che parla della modalità scura di OpenSearch Dashboards.

Popup Tema OpenSearch Dashboards

Fai clic sul pulsante Ignora per procedere. Successivamente, ti verrà chiesto di scegliere un inquilino.

Schermata di Selezione Inquilino OpenSearch Dashboards

Gli inquilini in OpenSearch Dashboards sono spazi per salvare modelli di indice, visualizzazioni, cruscotti e altri oggetti di OpenSearch Dashboards. Ogni utente può creare più inquilini per usi multipli. Gli inquilini sono utili per condividere in modo sicuro il tuo lavoro con altri utenti di OpenSearch Dashboards. OpenSearch ti offre l’opzione di scegliere tra tre opzioni.

  • Globale - Questo inquilino è condiviso tra tutti gli utenti di OpenSearch Dashboards.
  • Privato - Questo inquilino è esclusivo per ogni utente e non può essere condiviso.
  • Personalizzato - Gli amministratori possono creare inquilini personalizzati e assegnarli a ruoli specifici. Una volta creati, puoi utilizzare questi inquilini per fornire spazi a un insieme specifico di utenti.

Per ora, ci atteniamo all’opzione predefinita di un inquilino privato. Fai clic sul pulsante Conferma per procedere. Sarai accolto con la seguente pagina.

Homepage OpenSearch Dashboards

Successivamente, verificheremo la connessione tra OpenSearch e OpenSearch Dashboards.

Fai clic sul pulsante Strumenti di sviluppo nell’angolo in alto a destra e ti verrà mostrato un mini popup sull’interfaccia della console per OpenSearch Dashboards.

Popup Console Strumenti di Sviluppo OpenSearch Dashboards

Fai clic sul pulsante Ignora, inserisci la query GET / nella console a sinistra e fai clic sul piccolo pulsante di riproduzione al centro. Dovresti vedere il seguente output a destra.

Verifica Connessione Console OpenSearch Dashboards

Questo conferma che OpenSearch Dashboards sta ricevendo dati da OpenSearch e entrambi funzionano correttamente. Puoi iniziare ad aggiungere dati da qui in poi.

Conclusione

Questo conclude il tutorial su come installare OpenSearch su un server Debian 12. Se hai domande, pubblicale nei commenti qui sotto.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.