Introduzione
Nell'era digitale, la protezione dei dati in transito e inattivi è fondamentale per qualsiasi organizzazione. Elasticsearch, un popolare motore di ricerca e analisi open source, non fa eccezione. È ampiamente utilizzato per l'analisi dei dati di log o eventi, per la ricerca full-text e per query complesse. Tuttavia, senza adeguate misure di sicurezza, i dati sensibili possono essere vulnerabili all’intercettazione e all’accesso non autorizzato. Abilitare SSL/TLS ( Transport Layer Security ) in Elasticsearch è un passaggio cruciale per salvaguardare i tuoi dati.
Questa guida completa descrive i passaggi per configurare SSL/TLS, garantendo una maggiore sicurezza per il tuo cluster Elasticsearch.
Prerequisiti
Prima di iniziare, assicurati di avere quanto segue:
- Un cluster Elasticsearch configurato e funzionante.
- Accesso amministrativo ai file di configurazione Elasticsearch.
- Un certificato SSL/TLS valido. È possibile ottenere un certificato da un'autorità di certificazione (CA) o generare un certificato autofirmato a scopo di test.
Passaggio 1: genera certificati SSL/TLS
Il primo passaggio è generare certificati SSL/TLS per i tuoi nodi Elasticsearch. Se utilizzi certificati autofirmati per i test, lo strumento elasticsearch-certutil di Elasticsearch può semplificare questo processo. Per gli ambienti di produzione, si consiglia di utilizzare certificati emessi da una CA attendibile.
Crea un'autorità di certificazione (CA) : questo passaggio è fondamentale in quanto ti consente di firmare i tuoi certificati Elasticsearch. Elasticsearch fornisce uno strumento chiamato elasticsearch-certutil a questo scopo.
./bin/elasticsearch-certutil ca
Quando viene richiesto il nome del file CA, premere Invio per utilizzare l'impostazione predefinita o impostare un nuovo nome.
Genera certificato SSL per Elasticsearch : utilizzando la CA creata, ora genera un certificato specifico per i tuoi nodi Elasticsearch.
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
Sostituisci elastic-stack-ca.p12 con il percorso effettivo in cui è archiviato il certificato CA. Questo comando produce un file .p12 (PKCS#12), che incapsula il certificato del nodo, la chiave privata e il certificato CA. Potrebbe essere necessario generare certificati specifici per ciascun nodo nel cluster, a seconda della configurazione.
Passaggio 2: configura Elasticsearch per utilizzare il certificato SSL
Una volta ottenuti i certificati SSL/TLS, devi configurare Elasticsearch per utilizzarli. Ciò comporta la modifica del file di configurazione elasticsearch.yml su ciascun nodo del cluster.
Aggiungi le seguenti configurazioni a elasticsearch.yml su ciascun nodo:
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.client_authentication: required
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: elastic-certificates.p12
xpack.security.http.ssl.truststore.path: elastic-certificates.p12
Sostituisci "elastic-certificates.p12" con il nome del file del certificato creato nel passaggio precedente.
Passaggio 3: riavvia Elasticsearch
Dopo aver configurato tutti i nodi, riavvia il cluster Elasticsearch per applicare le modifiche. Assicurati che il cluster venga avviato senza errori e che tutti i nodi possano comunicare tra loro tramite SSL/TLS.
Passaggio 4: verifica la configurazione SSL/TLS
Per verificare che SSL/TLS sia abilitato e funzioni correttamente, utilizza uno strumento come curl per effettuare una richiesta all'API HTTP Elasticsearch:
curl -k https://localhost:9200
L'opzione -k
consente a curl di connettersi senza verifica del certificato, utile per i test iniziali con certificati autofirmati. Se tutto è configurato correttamente, dovresti ricevere una risposta JSON da Elasticsearch.
Conclusione
Proteggere il tuo cluster Elasticsearch con SSL/TLS è un passaggio fondamentale nella protezione dei tuoi dati. Seguendo i passaggi descritti in questa guida, puoi garantire che i tuoi dati rimangano sicuri durante il trasporto, mitigando i potenziali rischi di intercettazione o manomissione dei dati. Ricorda sempre di utilizzare certificati di CA attendibili per ambienti di produzione per garantire il massimo livello di sicurezza e affidabilità.