
Introduction
Nous installerons Elasticsearch et Kibana. Nous utiliserons l'autorité de certification créée par Elasticsearch pour créer des certificats TLS à signature privée pour Elasticsearch et Kibana.selon la documentation originale. Nous utiliserons les adresses IP pour accéder à Elasticsearch et à Kibana.
Code source :Trouvé sur Github
Exigences
Dans la vidéo, nous avons utilisé une instance d'Ubuntu 24.04 exécutée sur une machine virtuelle dotée de 8 Go de mémoire. La machine virtuelle fonctionnera sur un réseau privé local. Nous installons Elastic et Kibana sur ce même serveur.
Mesures
Étape 1 - Mettre à jour Ubuntu
L'installation d'Ubuntu est toute récente. 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 zip gnupg gpg
Étape 2 - Installer Elasticsearch
Les 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/9.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-9.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.
Étape 3 - Configurer Elasticsearch
Modifier elasticsearch.yml
Aller à la /etc/elasticsearch/elasticsearch.yml
fichier. Modifiez les champs suivants :
...etc...
cluster.name: {anything you want}
...etc...
network.host: 0.0.0.0
...etc...
Remarque : vous pouvez également remplacer network.host: 0.0.0.0
avec l'adresse IP de la machine à laquelle vous souhaitez que d'autres systèmes fassent référence.
Changer de propriétaire
chown -R elasticsearch:elasticsearch /etc/elasticsearch
Étape 4 - Démarrer Elasticsearch
Démarrez elasticsearch avec ces commandes :
systemctl enable elasticsearch;
systemctl daemon-reload;
systemctl start elasticsearch;
Confirmez qu'Elasticsearch fonctionne avec cette commande :
curl -X GET -u elastic:<password from step 2> https://{ip address of server}:9200 --cacert /etc/elasticsearch/certs/http_ca.crt
Et vous devriez voir quelque chose comme ceci :
Étape 5 - FACULTATIF - Modifier le mot de passe Elastic
Vous pouvez modifier le mot de passe de votre instance Elasticsearch avec cette commande /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic -i
. Vous pouvez omettre le -i
drapeau si vous souhaitez générer automatiquement le mot de passe.
Étape 6 - Installer Kibana
Étant donné que Kibana utilise les mêmes dépendances qu'Elasticsearch, vous pouvez procéder directement à l'installation de Kibana comme suit :
apt-get install -y kibana;
Étape 7 : Créer des certificats pour Kibana
Créons des certificats pour Kibana. Vous aurez besoin de /usr/share/elasticsearch/bin/elasticsearch-certutil
Commande et les fichiers CA pour Elasticsearch. Kibana étant sur le même serveur qu'Elasticsearch, nous avons accès à toutes ces ressources.
Nous devons d'abord extraire le fichier de clé privée CA du /etc/elasticsearch/http.p12
. Pour ce faire, vous devez connaître le mot de passe de l'http.p12
Fichier stocké dans le keystore Elasticsearch. Consultez la liste de toutes les paires de keystores avec cette commande :
/usr/share/elasticsearch/bin/elasticsearch-keystore list
Le xpack.security.http.ssl.keystore.secure_password
C'est ce que vous voulez. Vous pouvez donc voir le mot de passe comme ceci :
/usr/share/elasticsearch/bin/elasticsearch-keystore show xpack.security.http.ssl.keystore.secure_password
Vous pouvez maintenant extraire la clé privée du http.p12
en utilisant cette commande openssl et en créant un http_ca.key
(entrez le mot de passe lorsque vous y êtes invité) :
openssl pkcs12 -in /etc/elasticsearch/certs/http.p12 -nodes -nocerts -out /etc/elasticsearch/certs/http_ca.key
Vous disposez désormais de la clé privée CA en tant que http_ca.key
. Garder http_ca.key
secret et ne le laissez jamais quitter le serveur Elasticsearch. Ou supprimez le http_ca.key
Dès que vous avez terminé, vous pouvez toujours le recréer en répétant les étapes ci-dessus.
Exécutez cette commande pour créer les fichiers TLS Kibana :
/usr/share/elasticsearch/bin/elasticsearch-certutil cert \
--out /etc/kibana/kibana.zip \
--name kibana \
--ca-cert /etc/elasticsearch/certs/http_ca.crt \
--ca-key /etc/elasticsearch/certs/http_ca.key \
--ip {ip address of server} \
--pem;
cd /etc/kibana/;
unzip kibana.zip
mv kibana certs
cp /etc/elasticsearch/certs/http_ca.crt /etc/kibana/certs/
chown -R kibana:kibana /etc/kibana
Étape 8 - Configurer Kibana
Aller à la /etc/kibana/kibana.yml
fichier. Modifiez les champs suivants :
Edit Kibana.yml
server.host: 0.0.0.0
server.publicBaseUrl: "https://{ip address of server}:5601"
server.ssl.enabled: true
server.ssl.key: /etc/kibana/certs/kibana.key
server.ssl.certificate: /etc/kibana/certs/kibana.crt
server.ssl.certificateAuthorities: /etc/kibana/certs/http_ca.crt
Démarrer Kibana
systemctl enable kibana
systemctl daemon-reload
systemctl start kibana
systemctl status kibana
Le systemctl status kibana
devrait afficher quelque chose comme ceci après une minute environ :
J'ai surligné en rouge l'URL que vous devez visiter, sauf remplacer 0.0.0.0
avec l'adresse IP réelle de votre machine. N'oubliez pas de copier également la chaîne de requête.?code=____
.
Sur la page Web, un jeton d'inscription vous sera demandé.
Créer un jeton d'inscription
Exécutez cette commande sur le serveur Elasticsearch :
/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
Collez ce jeton dans votre site Web Kibana et appuyez sur Configure
.
Si on vous demande un code de vérification, vous pouvez exécuter cette commande pour l'obtenir :
/usr/share/kibana/bin/kibana-verification-code
Vous pouvez désormais vous connecter à Kibana avec le elastic
nom d'utilisateur et mot de passe que vous avez définis précédemment.
Étape 9 - Masquer le jeton de service
Allez à votre /etc/kibana/kibana.yml
et localisez cette ligne :
Cette valeur doit être secrète. Utilisons le keystore de Kibana pour la masquer.
/usr/share/kibana/bin/kibana-keystore add elasticsearch.serviceAccountToken
Lorsque vous y êtes invité, collez le jeton de service.
Supprimez maintenant la ligne elasticsearch.serviceAccountToken: ...
de là kibana.yml
déposer.
Redémarrer Kibana
systemctl restart kibana
Retournez à votre navigateur Web et profitez-en !