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
- 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
- Disabilitare SWAP (richiesto per i test bootstrap di OpenSearch):
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
sudo swapoff -a
free -m
- 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
Note: questi passaggi sono obbligatori per evitare controlli bootstrap falliti e per le prestazioni.
2. Installare OpenSearch tramite repository RPM
- 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
- Controlla le informazioni del pacchetto:
sudo dnf info opensearch
- Installa OpenSearch:
sudo dnf install opensearch
Accetta il GPG key quando richiesto.
- Ricarica systemd, abilita e avvia il servizio:
sudo systemctl daemon-reload
sudo systemctl start opensearch
sudo systemctl enable opensearch
sudo systemctl status opensearch
3. Configurare OpenSearch per single-node e ottimizzare JVM
- 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
- 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
- Riavvia OpenSearch:
sudo systemctl restart opensearch
ss -tulpn
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.
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
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.
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
- 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.
- 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"
- 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
7. Installare OpenSearch Dashboards
- Aggiorna le crypto policies a LEGACY (richiesto dal repo che usa SHA1):
sudo update-crypto-policies --set LEGACY
- 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.
- Avvia e abilita il servizio:
sudo systemctl start opensearch-dashboards
sudo systemctl enable opensearch-dashboards
sudo systemctl status 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
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.
Nel menu Management → Dev Tools esegui GET / per verificare la connessione.
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:
- Ripristina /etc/opensearch/opensearch.yml dalla copia di backup.
- Rimuovi modifiche TLS se necessario e riavvia: sudo systemctl restart opensearch.
- Controlla log e assicurati che la porta 9200 risponda.
- Se non funzionante, ripristina snapshot dei dati se configurato.
18. Mini-metodologia per un deploy ripetibile
- Prepara immagine base o VM con Rocky Linux 9 e requisiti.
- Versiona i file di configurazione in Git (es. opensearch.yml.j2).
- Automatizza la generazione dei certificati tramite script o ACME/PKI aziendale.
- Applica la configurazione con Ansible/CI e verifica test di accettazione.
- 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:
- Documentazione ufficiale OpenSearch: https://opensearch.org
Fine della guida.
Materiali simili

Guida: come scegliere il migliore Mini PC

Vedere i post a cui hai messo Mi piace su Instagram
Sostituire e testare disco RAID1 con mdadm
Risolvere Errore Code 43 GPU NVIDIA/Intel

Disattivare il touchscreen su iPhone e iPad
