Instalar Elasticsearch y Kibana 8.x con SSL autofirmado

Publicado el 21/05/2023

« Ver todas las conferencias Contáctenos
Install Elasticsearch and Kibana 8.x with Self Signed SSL

Introducción

Instalaremos Elasticsearch y Kibana y los protegeremos con certificados SSL autofirmados.

Requisitos

En el video, usamos dos instancias de Ubuntu 20.04 ejecutándose en una VM en un servicio en la nube.

Suponemos que también tiene registros A en su DNS que asignan un dominio a la máquina virtual de Elasticsearch y otro a la máquina virtual de Kibana. Para la demostración a continuación, usaremos elastic.evermight.net y kibana.evermight.net.

Pasos

Paso 1 - Actualizar Ubuntu [02:30]

Ambas instalaciones de Ubuntu son completamente nuevas. Actualizamos la distribución e instalamos algunas herramientas que solemos usar en ambas máquinas.

apt-get update && apt dist-upgrade -y && apt-get install -y vim curl gnupg gpg

Paso 2: Instalar Elasticsearch [02:50]

Ambas instalaciones de Ubuntu necesitan estas dependencias, así que ejecute estos comandos en ambas:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg; echo 'deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main' | sudo tee /etc/apt/sources.list.d/elastic-8.x.list; apt-get update; apt-get install -y apt-transport-https; apt-get install -y elasticsearch;

Cuando se complete la instalación, asegúrese de anotar la contraseña.

Copy password for Elasticsearch

Paso 3: Crear un certificado autofirmado para Elasticsearch [04:50]

Hagamos certificados SSL autofirmados para elastic.evermight.net y kibana.evermight.net. Ir a la elastic.evermight.net caparazón.

Cree la autoridad de certificación con este comando:

/usr/share/elasticsearch/bin/elasticsearch-certutil ca --pem --out /etc/elasticsearch/certs/ca.zip cd /etc/elasticsearch/certs/ unzip ca.zip

Ahora vamos a crear un certificado autofirmado para elastic.evermight.net y firmarlo con nuestro ca.crt:

/usr/share/elasticsearch/bin/elasticsearch-certutil cert \ --out /etc/elasticsearch/certs/elastic.zip \ --name elastic \ --ca-cert /etc/elasticsearch/certs/ca/ca.crt \ --ca-key /etc/elasticsearch/certs/ca/ca.key \ --dns elastic.evermight.net \ --pem; cd /etc/elasticsearch/certs/; unzip elastic.zip

Opcionalmente, si también utiliza una dirección IP, puede pasarla --ip Opción e indique su dirección IP.

Paso 4: Configurar Elasticsearch [03:50]

Editar elasticsearch.yml

Ir a la /etc/elasticsearch/elasticsearch.yml archivo. Edite los siguientes campos:

...etc... cluster.name: <anything you want> ...etc... network.host: elastic.evermight.net ...etc... http.port: 9200 ...etc... xpack.security.http.ssl: enabled: true key: certs/elastic/elastickey. certificate: certs/elastic/elastic.crt certificate_authorities: certs/ca/ca.crt ...etc...

Cambiar de propietario

chown -R elasticsearch:elasticsearch /etc/elasticsearch

Paso 5: Iniciar Elasticsearch [12:45]

Inicie elasticsearch con estos comandos:

systemctl enable elasticsearch; systemctl start elasticsearch;

Confirme que elasticsearch está funcionando con este comando:

curl -X GET -u elastic:<password from step 2> https://elastic.evermight.net:9200 --cacert /etc/elasticsearc/cert/ca/ca.crt

Deberías ver algo como esto:

Confirm Elasticsearch Success

Paso 6 - Instalar Kibana [16:10]

Ejecute este comando en el kibana.evermight.net máquina:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg; echo 'deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main' | sudo tee /etc/apt/sources.list.d/elastic-8.x.list; apt-get install -y apt-transport-https; apt-get install -y kibana;

Paso 7: Crear un certificado autofirmado para Kibana

Ahora vamos a crear un certificado autofirmado para kibana.evermight.net y firmarlo con nuestro ca.crt. Ve a tu elastic.evermight.net máquina y ejecute este comando:

/usr/share/elasticsearch/bin/elasticsearch-certutil cert \ --out /etc/elasticsearch/certs/kibana.zip \ --name elastic \ --ca-cert /etc/elasticsearch/certs/ca/ca.crt \ --ca-key /etc/elasticsearch/certs/ca/ca.key \ --dns kibana.evermight.net \ --pem; cd /etc/elasticsearch/certs/; unzip kibana.zip

Copiaremos el /etc/elasticsearch/certs/kibana/* A la kibana.evermight.net En breve.

Paso 8 - Configurar Kibana [15:26]

Copiar certificados SSL:

Ve a tu kibana.evermight.net Servidor y ejecute este comando: mkdir /etc/kibana/certs/kibana

Luego copie los certificados SSL del Paso 7 en el directorio de arriba.

Editar kibana.yml

Ir a la /etc/kibana/kibana.yml archivo. Edite los siguientes campos:

server.port: 5601 server.host: 0.0.0.0 server.publicBaseUrl: "https://kibana.evermight.net:5601" server.ssl.enabled: true server.ssl.key: /etc/kibana/certs/kibana/kibana.key server.ssl.certificate: /etc/kibana/certs/kibana/kibana.crt server.ssl.certificateAuthorities: /etc/kibana/certs/ca/ca.crt elasticsearch.hosts: ["https://elastic.evermight.net:9200"] elasticsearch.ssl.verificationMode: full elasticsearch.ssl.certificateAuthorities: ["/etc/kibana/certs/ca/ca.crt"]

Crear token de servicio

Ejecute este comando en el servidor Elasticsearch: /usr/share/elasticsearch/bin/elasticsearch-service-tokens create elastic/kibana kibana-token chown -R elasticsearch:elasticsearch /etc/elasticsearch Copia el token que ves.

Ejecute este comando en el servidor Kibana: /usr/share/kibana/bin/kibana add elasticsearch.serviceAccountToken Pegue el token después del mensaje.

Paso 9 - Iniciar Kibana [27:50]

systemctl enable kibana; systemctl start kibana;

Ya puedes visitarnos https://kibana.evermight.net:5601/ e iniciar sesión con elastic y la contraseña del paso 3.