En aquest tema, aprendrem com assegurar Elasticsearch per protegir les dades i garantir que només els usuaris autoritzats tinguin accés. La seguretat és un aspecte crític en qualsevol sistema de gestió de dades, i Elasticsearch no és una excepció. A continuació, desglossarem els conceptes clau i les pràctiques recomanades per assegurar Elasticsearch.

Conceptes Clau

  1. Autenticació: Verificació de la identitat dels usuaris que intenten accedir al sistema.
  2. Autorització: Determinació dels permisos i nivells d'accés dels usuaris autenticats.
  3. Xifratge: Protecció de les dades en trànsit i en repòs mitjançant tècniques de xifratge.
  4. Seguretat de la Xarxa: Configuració de la xarxa per limitar l'accés a Elasticsearch només a usuaris i sistemes autoritzats.

Configuració de la Seguretat Bàsica

  1. Instal·lació del Mòdul de Seguretat

Elasticsearch inclou un mòdul de seguretat anomenat "Elastic Security". Per activar-lo, cal assegurar-se que el mòdul està instal·lat i configurat correctament.

# Instal·lació del mòdul de seguretat (si no està ja instal·lat)
bin/elasticsearch-plugin install x-pack

  1. Configuració de l'Autenticació

Per configurar l'autenticació, cal definir usuaris i rols. Això es pot fer mitjançant el fitxer elasticsearch.yml o utilitzant l'API de seguretat.

Exemple de Configuració en elasticsearch.yml:

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /path/to/keystore.p12
xpack.security.transport.ssl.truststore.path: /path/to/truststore.p12

Creació d'Usuaris i Rols amb l'API:

# Creació d'un usuari
curl -X POST "localhost:9200/_security/user/john_doe" -H 'Content-Type: application/json' -d'
{
  "password" : "password123",
  "roles" : [ "admin" ],
  "full_name" : "John Doe",
  "email" : "[email protected]"
}
'

# Creació d'un rol
curl -X POST "localhost:9200/_security/role/admin" -H 'Content-Type: application/json' -d'
{
  "cluster": ["all"],
  "indices": [
    {
      "names": [ "*" ],
      "privileges": ["all"]
    }
  ]
}
'

  1. Xifratge de les Comunicacions

Per assegurar que les dades en trànsit estan protegides, és important configurar el xifratge TLS (Transport Layer Security).

Generació de Certificats TLS:

# Generació d'un certificat autofirmat
bin/elasticsearch-certutil ca
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

Configuració del TLS en elasticsearch.yml:

xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: /path/to/keystore.p12
xpack.security.http.ssl.truststore.path: /path/to/truststore.p12

  1. Seguretat de la Xarxa

Configura el tallafocs i les regles de seguretat de la xarxa per limitar l'accés a Elasticsearch només a les adreces IP de confiança.

Exemple de Configuració del Tallafocs:

# Permetre només connexions des de l'adreça IP 192.168.1.100
sudo ufw allow from 192.168.1.100 to any port 9200

Exercicis Pràctics

Exercici 1: Configuració Bàsica de Seguretat

  1. Instal·la el mòdul de seguretat d'Elasticsearch.
  2. Configura l'autenticació i crea un usuari amb rol d'administrador.
  3. Habilita el xifratge TLS per a les comunicacions HTTP.

Exercici 2: Configuració de la Xarxa

  1. Configura el tallafocs per permetre l'accés a Elasticsearch només des d'una adreça IP específica.

Solucions

Solució a l'Exercici 1

  1. Instal·lació del mòdul de seguretat:
bin/elasticsearch-plugin install x-pack
  1. Configuració de l'autenticació en elasticsearch.yml:
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /path/to/keystore.p12
xpack.security.transport.ssl.truststore.path: /path/to/truststore.p12
  1. Creació d'un usuari i rol amb l'API:
curl -X POST "localhost:9200/_security/user/john_doe" -H 'Content-Type: application/json' -d'
{
  "password" : "password123",
  "roles" : [ "admin" ],
  "full_name" : "John Doe",
  "email" : "[email protected]"
}
'

curl -X POST "localhost:9200/_security/role/admin" -H 'Content-Type: application/json' -d'
{
  "cluster": ["all"],
  "indices": [
    {
      "names": [ "*" ],
      "privileges": ["all"]
    }
  ]
}
'
  1. Habilitació del xifratge TLS:
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: /path/to/keystore.p12
xpack.security.http.ssl.truststore.path: /path/to/truststore.p12

Solució a l'Exercici 2

  1. Configuració del tallafocs:
sudo ufw allow from 192.168.1.100 to any port 9200

Conclusió

En aquesta secció, hem après com assegurar Elasticsearch mitjançant la configuració de l'autenticació, l'autorització, el xifratge de les comunicacions i la seguretat de la xarxa. Aquests passos són essencials per protegir les dades i garantir que només els usuaris autoritzats tinguin accés al sistema. En el proper tema, explorarem com configurar l'autenticació i l'autorització d'usuaris en més detall.

© Copyright 2024. Tots els drets reservats