Guida alle tecnologie

Installare e proteggere OpenSearch su Rocky Linux 9

8 min read DevOps Aggiornato 30 Sep 2025
Installare e proteggere OpenSearch su Rocky Linux 9
Installare e proteggere OpenSearch su Rocky Linux 9

Intento principale e varianti correlate

  • Intento principale: installare e proteggere OpenSearch su Rocky Linux 9
  • Varianti: installazione OpenSearch RPM, configurare TLS OpenSearch, configurare OpenSearch Dashboards, autenticazione OpenSearch, guida single-node OpenSearch

Panoramica rapida

OpenSearch è un motore di ricerca e analisi open source (fork di Elasticsearch/Kibana) che fornisce funzioni quali sicurezza enterprise, alerting, SQL, machine learning e gestione degli indici. Questa guida copre un’installazione RPM single-node su Rocky Linux 9, l’abilitazione della sicurezza con certificati TLS e la connessione di OpenSearch Dashboards.

Important: esegui i comandi con un utente con privilegi sudo. Mantieni copie di backup dei file di configurazione prima di modificarli.

Sommario dei prerequisiti

  • Rocky Linux 9 con almeno 4 GB di RAM (esempio usa 8 GB).
  • Utente non-root con privilegi sudo.
  • SELinux impostato in permissive.
  • Accesso alla rete per scaricare repository OpenSearch.

Definizioni rapide

  • OpenSearch: motore di ricerca e analytics open source.
  • OpenSearch Dashboards: interfaccia web per visualizzazione e gestione (fork di Kibana).
  • TLS: Transport Layer Security, usato per cifrare le comunicazioni.

1. Preparare il sistema Rocky Linux

  1. Impostare hostname e FQDN. Nell’esempio: node-rock1 e node-rock1.hwdomain.lan. Sostituisci con i tuoi valori.
sudo hostnamectl set-hostname node-rock1
echo '192.168.5.25  node-rock1.hwdomain.lan  node-rock1' >> /etc/hosts

Disconnettiti e riconnettiti, poi verifica:

sudo hostname -f

Hostname e FQDN impostato

  1. Disabilitare SWAP (richiesto per i test bootstrap di OpenSearch):
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
sudo swapoff -a
free -m

Output che mostra swap disabilitato

  1. Aumentare vm.max_map_count (richiesto da OpenSearch):
echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
cat /proc/sys/vm/max_map_count

Valore vm.max_map_count impostato

Note: questi passaggi sono obbligatori per evitare controlli bootstrap falliti e per le prestazioni.

2. Installare OpenSearch tramite repository RPM

  1. Aggiungi il repository ufficiale e verifica:
sudo curl -SL https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/opensearch-2.x.repo -o /etc/yum.repos.d/opensearch-2.x.repo
sudo dnf repolist

Elenco repository con OpenSearch 2.x

  1. Controlla le informazioni del pacchetto:
sudo dnf info opensearch
  1. Installa OpenSearch:
sudo dnf install opensearch

Accetta il GPG key quando richiesto.

Installazione OpenSearch e accettazione GPG

  1. Ricarica systemd, abilita e avvia il servizio:
sudo systemctl daemon-reload
sudo systemctl start opensearch
sudo systemctl enable opensearch
sudo systemctl status opensearch

Servizio OpenSearch attivo

3. Configurare OpenSearch per single-node e ottimizzare JVM

  1. Modifica /etc/opensearch/opensearch.yml per bindare l’IP, impostare discovery.type e abilitare plugin sicurezza:
sudo nano /etc/opensearch/opensearch.yml

Aggiungi o modifica:

network.host: 192.168.5.25

discovery.type: single-node

plugins.security.disabled: false
  1. Aumenta la heap JVM in /etc/opensearch/jvm.options secondo la RAM disponibile (es. 2 GB):
sudo nano /etc/opensearch/jvm.options

Imposta:

-Xms2g
-Xmx2g
  1. Riavvia OpenSearch:
sudo systemctl restart opensearch
ss -tulpn

Configurazione OpenSearch aggiornata

4. Generare certificati TLS per cifrare nodo→nodo e REST

Note: in produzione usa una PKI centralizzata o CA aziendale. Qui mostriamo una PKI locale per il deployment di esempio.

Crea la directory per i certificati e spostati in essa:

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

4.1 Rimuovere certificati demo

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

Commentare la demo configuration di security se presente. Poi salva.

Rimozione certificati demo

4.2 Generare Root CA

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

Prodotto: root-ca-key.pem e root-ca.pem

4.3 Generare certificato admin

openssl genrsa -out admin-key-temp.pem 2048
openssl pkcs8 -inform PEM -outform PEM -in admin-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out admin-key.pem
openssl req -new -key admin-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=A" -out admin.csr
openssl x509 -req -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem -days 730

Risultati: admin-key.pem, admin.pem

4.4 Generare certificato nodo

openssl genrsa -out node-rock1-key-temp.pem 2048
openssl pkcs8 -inform PEM -outform PEM -in node-rock1-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out node-rock1-key.pem
openssl req -new -key node-rock1-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=node-rock1.hwdomain.lan" -out node-rock1.csr
echo 'subjectAltName=DNS:node-rock1.hwdomain.lan' > node-rock1.ext
openssl x509 -req -in node-rock1.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out node-rock1.pem -days 730 -extfile node-rock1.ext

Risultati: node-rock1.pem, node-rock1-key.pem

4.5 Pulizia e registrazione CA nel sistema

rm *temp.pem *csr *ext
openssl x509 -outform der -in root-ca.pem -out root-ca.crt
sudo cp root-ca.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust

Imposta permessi e proprietario:

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

Elenco certificati generati

5. Aggiungere le impostazioni TLS a opensearch.yml

Per evitare errori a mano, creiamo uno script che appende le impostazioni di TLS e sicurezza al file di configurazione.

nano add.sh

Incolla il contenuto (personalizza i path se necessario):

#! /bin/bash

echo "plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node-rock1.pem" | sudo tee -a /etc/opensearch/opensearch.yml
... (continua come nel file originale) ...

Rendi eseguibile ed esegui:

chmod +x add.sh
./add.sh

Verifica /etc/opensearch/opensearch.yml per le nuove righe.

Impostazioni TLS aggiunte a opensearch.yml

Important: verifica che i DN in plugins.security.nodes_dn corrispondano esattamente al CN dei certificati dei nodi.

6. Creare utenti amministrativi e applicare configurazioni di sicurezza

  1. Genera hash della password con lo script in tools:
cd /usr/share/opensearch/plugins/opensearch-security/tools
OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./hash.sh

Esegui due volte per avere hash per admin e per kibanaserver.

  1. Modifica /etc/opensearch/opensearch-security/internal_users.yml e sostituisci i default con gli utenti desiderati. Esempio:
admin:
  hash: ""
  reserved: true
  backend_roles:
  - "admin"
  description: "Admin user"

kibanaserver:
  hash: ""
  reserved: true
  description: "Kibana user"
  1. Riavvia OpenSearch e applica le modifiche di sicurezza:
sudo systemctl restart opensearch
cd /usr/share/opensearch/plugins/opensearch-security/tools
OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./securityadmin.sh -h 192.168.5.25 -p 9200 -cd /etc/opensearch/opensearch-security/ -cacert /etc/opensearch/certs/root-ca.pem -cert /etc/opensearch/certs/admin.pem -key /etc/opensearch/certs/admin-key.pem -icl -nhnv

Verifica con curl (sostituisci username/password reali):

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

Verifica utenti OpenSearch

Verifica utente kibanaserver

7. Installare OpenSearch Dashboards

  1. Aggiorna le crypto policies a LEGACY (richiesto dal repo che usa SHA1):
sudo update-crypto-policies --set LEGACY
  1. Aggiungi il repo Dashboards e installa:
sudo curl -SL https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.x/opensearch-dashboards-2.x.repo -o /etc/yum.repos.d/opensearch-dashboards-2.x.repo
sudo dnf repolist
sudo dnf install opensearch-dashboards

Accetta GPG key quando richiesto.

  1. Avvia e abilita il servizio:
sudo systemctl start opensearch-dashboards
sudo systemctl enable opensearch-dashboards
sudo systemctl status opensearch-dashboards

Installazione OpenSearch Dashboards

8. Configurare OpenSearch Dashboards

Modifica /etc/opensearch-dashboards/opensearch-dashboard.yml:

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

Imposta host, porte e connessione a OpenSearch:

server.port: 5601
server.host: "192.168.5.25"

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

Riavvia il servizio:

sudo systemctl restart opensearch-dashboards

Configurazione OpenSearch Dashboards

9. Aprire la porta 5601 firewall e accedere all’interfaccia

sudo firewall-cmd --add-port=5601/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Visita: http://192.168.5.25:5601 e autentica con l’utente kibanaserver.

Login OpenSearch Dashboards

Welcome OpenSearch Dashboards

Nel menu Management → Dev Tools esegui GET / per verificare la connessione.

Test Dev Tools GET /

10. Checklist operativa (per il deployment single-node sicuro)

  • Hostname e FQDN configurati correttamente.
  • SWAP disabilitato e vm.max_map_count impostato su 262144.
  • OpenSearch installato e servizio attivo.
  • Heap JVM adeguata alla memoria del server.
  • Certificati CA, nodo e admin generati e posizionati in /etc/opensearch/certs.
  • Permessi e proprietario dei certificati impostati (opensearch:opensearch, 0700/0600).
  • Impostazioni TLS aggiunte a /etc/opensearch/opensearch.yml.
  • Utenti interni creati e applicati con securityadmin.sh.
  • OpenSearch Dashboards installato, configurato e connesso.
  • Porta 5601 aperta su firewall.

11. Test di accettazione (criteri minimi)

  • OpenSearch risponde su https://:9200 con codice 200 usando utente admin.
  • OpenSearch Dashboards è accessibile su http://:5601 e consente il login con kibanaserver.
  • Connessione TLS: i certificati node e CA sono riconosciuti dal sistema quando verificazione abilitata.
  • Impostazioni di sicurezza applicate e non ci sono errori nei log di opensearch.

12. Troubleshooting comune

Problema: OpenSearch non si avvia dopo aver abilitato plugin.security

  • Controlla i log in /var/log/opensearch/opensearch.log.
  • Assicurati che i DN nei certificati corrispondano a plugins.security.nodes_dn.
  • Verifica permessi dei file in /etc/opensearch/certs.

Problema: securityadmin.sh fallisce con errore di connessione

  • Controlla che OpenSearch sia in ascolto su 9200 (ss -tulpn).
  • Verifica che il certificato admin.pem sia corretto e firmato dalla stessa CA.
  • Usa -nhnv per output più dettagliati.

Problema: OpenSearch Dashboards mostra errore di autenticazione

  • Verifica che l’hash password impostato in internal_users.yml sia valido.
  • Controlla che opensearch.username e opensearch.password in opensearch-dashboard.yml matchino l’utente.

Problema: repository non viene scaricato (DNF)

  • Controlla con curl il file .repo e la connettività internet.
  • Se l’host usa proxy, configura /etc/dnf/dnf.conf.

13. Alternative e approcci differenti

  • Docker: esiste un’immagine ufficiale per test e sviluppo. Utile per ambienti di prova o CI.
  • Tarball: utile se vuoi installare senza gestore di pacchetti.
  • Kubernetes: usare Helm chart o operator per cluster OpenSearch con replica e resilienza.

Quando scegliere cosa:

  • Single-node persistente su server fisico o VM → RPM (come qui).
  • Environment isolato e ripetibile → Docker o Kubernetes.
  • Ambiente di produzione con replica → Kubernetes/cluster multi-node.

14. Migrazione e compatibilità

  • Versioni: verifica la compatibilità tra OpenSearch e OpenSearch Dashboards (stessa major version preferibile).
  • Backup: esegui snapshot periodici e verifica le policy di snapshot/restore.
  • Migrazione da Elasticsearch: esamina mapping e plugin; alcune API differiscono.

15. Sicurezza e privacy (note GDPR)

  • Proteggi gli endpoint di gestione con firewall e VPN.
  • Limita accessi amministrativi ai soli ruoli necessari.
  • Conserva i log di accesso e i backup in modo cifrato se contengono dati personali.
  • Se gestisci dati personali, documenta basi giuridiche e retention policy.

16. Ruoli e responsabilità (checklist per team)

Amministratore sistema:

  • Configura hostname, swap, sysctl.
  • Installa pacchetti e gestisce servizi systemd.

Sicurezza/DevSecOps:

  • Genera e gestisce CA e certificati.
  • Applica permessi e audit logging.

SRE/DevOps:

  • Automatizza installazione e rollback.
  • Monitora salute e risorse (heap, file descriptors).

Sviluppatori/Analisti:

  • Verificano che gli indici siano accessibili e che Dashboards mostri i dati corretti.

17. Playbook di emergenza rapido (rollback)

Sintomi: OpenSearch non risponde dopo modifiche di sicurezza.

Passi rapidi:

  1. Ripristina /etc/opensearch/opensearch.yml dalla copia di backup.
  2. Rimuovi modifiche TLS se necessario e riavvia: sudo systemctl restart opensearch.
  3. Controlla log e assicurati che la porta 9200 risponda.
  4. Se non funzionante, ripristina snapshot dei dati se configurato.

18. Mini-metodologia per un deploy ripetibile

  1. Prepara immagine base o VM con Rocky Linux 9 e requisiti.
  2. Versiona i file di configurazione in Git (es. opensearch.yml.j2).
  3. Automatizza la generazione dei certificati tramite script o ACME/PKI aziendale.
  4. Applica la configurazione con Ansible/CI e verifica test di accettazione.
  5. Promuovi in produzione solo dopo test unit e di integrazione.

19. Esempi di comandi utili di controllo e diagnostica

  • Stato servizio:
    sudo systemctl status opensearch opensearch-dashboards
  • Log in tempo reale:
    sudo journalctl -u opensearch -f
  • Verifica porta:
    ss -tulpn | grep 9200
  • Test API:
    curl -k -u admin:password https://127.0.0.1:9200/

20. Glossario in 1 riga

  • CA: Certification Authority che firma i certificati.
  • CSR: Certificate Signing Request.
  • DN/CN: Distinguished Name / Common Name nel certificato.
  • PKCS#8: Formato per chiavi private compatibile con Java.

21. Decision tree per scegliere installazione

flowchart TD
  A[Devo installare OpenSearch?] --> B{Ambiente di produzione o test?}
  B -- Test --> C[Usa Docker o tarball per velocità]
  B -- Produzione --> D{Hai Kubernetes?}
  D -- Sì --> E[Usa Helm chart/operator multi-node]
  D -- No --> F[Installazione RPM su Rocky/ RHEL]
  C --> G[Automatizza con compose o script]
  F --> H[Configura TLS, security plugin, backup]
  E --> H
  G --> H

22. Rischi principali e mitigazioni

  • Rischio: certificati scaduti → Mitigazione: automatizza rinnovo e monitoraggio.
  • Rischio: backup non eseguiti → Mitigazione: implementa snapshot e verifica restore.
  • Rischio: esposizione endpoint senza autenticazione → Mitigazione: firewall, VPN, security plugin abilitato.

23. Conclusione

Hai installato OpenSearch e OpenSearch Dashboards su Rocky Linux 9, hai generato e applicato certificati TLS, e hai abilitato autenticazione e autorizzazione mediante il plugin di sicurezza. La guida include checklist, test di accettazione, playbook di rollback e suggerimenti per deploy ripetibili. Per approfondire, consulta la documentazione ufficiale di OpenSearch per la gestione di cluster multi-node, monitoring avanzato e policy di backup.


Riferimenti utili:

Fine della guida.

Autore
Redazione

Materiali simili

Guida: come scegliere il migliore Mini PC
Hardware

Guida: come scegliere il migliore Mini PC

Vedere i post a cui hai messo Mi piace su Instagram
Social Media

Vedere i post a cui hai messo Mi piace su Instagram

Sostituire e testare disco RAID1 con mdadm
System Administration

Sostituire e testare disco RAID1 con mdadm

Risolvere Errore Code 43 GPU NVIDIA/Intel
Risoluzione problemi

Risolvere Errore Code 43 GPU NVIDIA/Intel

Disattivare il touchscreen su iPhone e iPad
Guide tecniche

Disattivare il touchscreen su iPhone e iPad

Installare e proteggere OpenSearch su Rocky Linux 9
DevOps

Installare e proteggere OpenSearch su Rocky Linux 9