Installer Elasticsearch et Kibana 8.x avec SSL auto-signé

Publié le 21/05/2023

« Voir toutes les conférences Contactez-nous
Install Elasticsearch and Kibana 8.x with Self Signed SSL

Introduction

Nous installerons Elasticsearch et Kibana et les sécuriserons avec des certificats SSL auto-signés.

Exigences

Dans la vidéo, nous avons utilisé deux instances d’Ubuntu 20.04 exécutées sur une machine virtuelle dans un service cloud.

Nous supposons que votre DNS contient également des enregistrements A qui associent un domaine à la machine virtuelle Elasticsearch et un autre à la machine virtuelle Kibana. Pour la démonstration ci-dessous, nous utiliserons elastic.evermight.net et kibana.evermight.net.

Mesures

Étape 1 - Mettre à jour Ubuntu [02:30]

Les deux installations d'Ubuntu sont neuves. Nous mettons à jour la distribution et installons certains outils que nous utilisons habituellement sur les deux machines.

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

Étape 2 - Installer Elasticsearch [02:50]

Les deux installations d'Ubuntu ont besoin de ces dépendances, alors exécutez ces commandes sur les deux :

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;

Une fois l’installation terminée, assurez-vous de noter le mot de passe.

Copy password for Elasticsearch

Étape 3 – Créer un certificat auto-signé pour Elasticsearch [04:50]

Créons des certificats SSL auto-signés pour elastic.evermight.net et kibana.evermight.net. Aller à la elastic.evermight.net coquille.

Créez l'autorité de certification avec cette commande :

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

Créons maintenant un certificat auto-signé pour elastic.evermight.net et signez-le avec notre 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

En option, si vous utilisez également une adresse IP, vous pouvez transmettre l'adresse IP.--ip option et indiquez votre adresse IP.

Étape 4 - Configurer Elasticsearch [03:50]

Modifier elasticsearch.yml

Aller à la /etc/elasticsearch/elasticsearch.yml fichier. Modifiez les champs suivants :

...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...

Changer de propriétaire

chown -R elasticsearch:elasticsearch /etc/elasticsearch

Étape 5 - Démarrer Elasticsearch [12:45]

Démarrez elasticsearch avec ces commandes :

systemctl enable elasticsearch; systemctl start elasticsearch;

Confirmez qu'Elasticsearch fonctionne avec cette commande :

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

Et vous devriez voir quelque chose comme ceci :

Confirm Elasticsearch Success

Étape 6 - Installer Kibana [16:10]

Exécutez cette commande sur le kibana.evermight.net machine:

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;

Étape 7 : Créer un certificat auto-signé pour Kibana

Créons maintenant un certificat auto-signé pour kibana.evermight.net et signez-le avec notre ca.crt. Allez à votre elastic.evermight.net machine et exécutez cette commande :

/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

Nous allons copier le /etc/elasticsearch/certs/kibana/* vers le kibana.evermight.net sous peu.

Étape 8 - Configurer Kibana [15:26]

Copier les certificats SSL :

Allez à votre kibana.evermight.net serveur et exécutez cette commande : mkdir /etc/kibana/certs/kibana

Copiez ensuite vos certificats SSL de l’étape 7 dans le répertoire ci-dessus.

Modifier kibana.yml

Aller à la /etc/kibana/kibana.yml fichier. Modifiez les champs suivants :

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"]

Créer un jeton de service

Exécutez cette commande sur le serveur Elasticsearch : /usr/share/elasticsearch/bin/elasticsearch-service-tokens create elastic/kibana kibana-token chown -R elasticsearch:elasticsearch /etc/elasticsearch Copiez le jeton que vous voyez.

Exécutez cette commande sur le serveur Kibana : /usr/share/kibana/bin/kibana add elasticsearch.serviceAccountToken Collez le jeton après l’invite.

Étape 9 - Démarrer Kibana [27:50]

systemctl enable kibana; systemctl start kibana;

Vous pouvez désormais visiter https://kibana.evermight.net:5601/ et connectez-vous avec elastic et le mot de passe de l'étape 3.