Introduction
Les tutoriels précédents de cette série vous ont guidé à travers l’installation, la configuration et l’exécution de Suricata en tant que système de détection d’intrusion (IDS) et de prévention d’intrusion (IPS). Vous avez également appris sur les règles de Suricata et comment créer les vôtres.
Dans ce tutoriel, vous explorerez comment intégrer Suricata avec Elasticsearch, Kibana et Filebeat pour commencer à créer votre propre outil de gestion des informations et des événements de sécurité (SIEM) en utilisant l’empilement Elastic et Rocky Linux 8. Les outils SIEM sont utilisés pour collecter, agréger, stocker et analyser les données d’événements afin de rechercher des menaces de sécurité et des activités suspectes sur vos réseaux et serveurs.
Les composants que vous utiliserez pour construire votre propre SIEM sont :
- Elasticsearch pour stocker, indexer, corréler et rechercher les événements de sécurité provenant de votre serveur Suricata.
- Kibana pour afficher et naviguer dans les journaux d’événements de sécurité stockés dans Elasticsearch.
- Filebeat pour analyser le fichier journal
eve.json
de Suricata et envoyer chaque événement à Elasticsearch pour traitement. - Suricata pour scanner le trafic de votre réseau à la recherche d’événements suspects et soit enregistrer soit abandonner les paquets invalides.
Tout d’abord, vous installerez et configurerez Elasticsearch et Kibana avec certains paramètres d’authentification spécifiques. Ensuite, vous ajouterez Filebeat à votre système Suricata pour envoyer ses journaux eve.json
à Elasticsearch.
Enfin, vous apprendrez à vous connecter à Kibana en utilisant SSH et votre navigateur web, puis à charger et interagir avec les tableaux de bord de Kibana qui montrent les événements et les alertes de Suricata.
Prérequis
Si vous avez suivi cette série de tutoriels, vous devriez déjà avoir Suricata en cours d’exécution sur un serveur Rocky Linux. Ce serveur sera désigné comme votre serveur Suricata.
- Si vous devez encore installer Suricata, vous pouvez suivre ce tutoriel qui explique Comment installer Suricata sur Rocky Linux 8.
Vous aurez également besoin d’un deuxième serveur pour héberger Elasticsearch et Kibana. Ce serveur sera désigné comme votre serveur Elasticsearch. Il devrait s’agir d’un serveur Rocky Linux 8 avec :
- 4 Go de RAM et 2 CPU configurés avec un utilisateur sudo non root. Vous pouvez réaliser cela en suivant la Configuration initiale du serveur avec Rocky Linux 8.
À des fins de ce tutoriel, les deux serveurs doivent pouvoir communiquer en utilisant des adresses IP privées. Vous pouvez utiliser un VPN comme WireGuard pour connecter vos serveurs, ou utiliser un fournisseur de cloud qui propose un réseau privé entre les hôtes. Vous pouvez également choisir d’exécuter Elasticsearch, Kibana, Filebeat et Suricata sur le même serveur pour expérimenter.
Étape 1 — Installation d’Elasticsearch et de Kibana
La première étape de ce tutoriel consiste à installer Elasticsearch et Kibana sur votre serveur Elasticsearch. Pour commencer, ajoutez la clé GPG d’Elastic à votre serveur avec la commande suivante :
Ensuite, créez un fichier elasticsearch.repo
dans votre répertoire /etc/yum/yum.repos.d
avec le contenu suivant, en utilisant vi
ou votre éditeur préféré. Cela garantit que les référentiels Elasticsearch amont seront utilisés lors de l’installation de nouveaux packages via yum
:
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md
Si vous utilisez vi
, lorsque vous avez fini de faire des modifications, appuyez sur ESC
puis sur :x
pour écrire les modifications dans le fichier et quitter.
Installez maintenant Elasticsearch et Kibana en utilisant la commande dnf
. Appuyez sur Y
pour accepter toutes les invites concernant les empreintes digitales de la clé GPG :
L’option --enablerepo
est utilisée pour remplacer le paramètre par défaut désactivé dans le fichier /etc/yum.repos.d/elasticsearch.repo
. Cette approche garantit que les packages Elasticsearch et Kibana ne seront pas mis à niveau par erreur lorsque vous installez d’autres mises à jour de packages sur votre serveur.
Une fois que vous avez terminé d’installer les packages, trouvez et enregistrez l’adresse IP privée de votre serveur en utilisant la commande ip address show
:
Vous recevrez une sortie comme celle-ci:
Outputlo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 159.89.122.115/20 10.20.0.8/16 2604:a880:cad:d0::e56:8001/64 fe80::b832:69ff:fe46:7e5d/64
eth1 UP 10.137.0.5/16 fe80::b883:5bff:fe19:43f3/64
L’interface réseau privée dans cette sortie est le périphérique eth1
en surbrillance, avec l’adresse IPv4 10.137.0.5
. Le nom de votre périphérique et les adresses IP seront différents. Indépendamment du nom de votre périphérique et de l’adresse IP privée, l’adresse sera issue des blocs réservés suivants:
10.0.0.0
à10.255.255.255
(préfixe 10/8)172.16.0.0
à172.31.255.255
(préfixe 172.16/12)192.168.0.0
à192.168.255.255
(préfixe 192.168/16)
Si vous souhaitez en savoir plus sur la manière dont ces blocs sont attribués, consultez la spécification RFC 1918.
Enregistrez l’adresse IP privée de votre serveur Elasticsearch (dans ce cas 10.137.0.5
). Cette adresse sera désignée comme votre_adresse_ip_privée
dans le reste de ce tutoriel. Notez également le nom de l’interface réseau, dans ce cas eth1
. Dans la prochaine partie de ce tutoriel, vous configurerez Elasticsearch et Kibana pour écouter les connexions sur l’adresse IP privée provenant de votre serveur Suricata.
Étape 2 — Configuration d’Elasticsearch
Elasticsearch est configuré pour n’accepter que les connexions locales par défaut. De plus, aucune authentification n’est activée, donc des outils comme Filebeat ne pourront pas lui envoyer de journaux. Dans cette section du tutoriel, vous configurerez les paramètres réseau pour Elasticsearch, puis activerez le module de sécurité intégré xpack
d’Elasticsearch.
Configuration du réseau Elasticsearch
Comme vos serveurs Elasticsearch et Suricata sont séparés, vous devrez configurer Elasticsearch pour qu’il écoute les connexions sur son interface réseau privée.
Ouvrez le fichier /etc/elasticsearch/elasticsearch.yml
à l’aide de vi
ou de votre éditeur préféré :
Trouvez la ligne commentée #network.host: 192.168.0.1
entre les lignes 50 et 60 et ajoutez une nouvelle ligne après celle-ci qui configure le paramètre network.bind_host
, comme indiqué ci-dessous:
# Par défaut, Elasticsearch n'est accessible que sur localhost. Définissez une adresse différente
# ici pour exposer ce nœud sur le réseau:
#
#network.host: 192.168.0.1
network.bind_host: ["127.0.0.1", "your_private_ip"]
#
# Par défaut, Elasticsearch écoute le trafic HTTP sur le premier port libre qu'il
# trouve à partir de 9200. Définissez un port HTTP spécifique ici:
Remplacez votre adresse IP privée par l’adresse your_private_ip
. Cette ligne garantira qu’Elasticsearch est toujours disponible à son adresse locale afin que Kibana puisse y accéder, ainsi qu’à l’adresse IP privée de votre serveur.
Ensuite, allez à la fin du fichier en utilisant le raccourci vi
SHIFT+G
.
Ajoutez les lignes en surbrillance suivantes à la fin du fichier:
. . .
discovery.type: single-node
xpack.security.enabled: true
Le paramètre discovery.type
permet à Elasticsearch de s’exécuter en tant que nœud unique, par opposition à un cluster d’autres serveurs Elasticsearch. Le paramètre xpack.security.enabled
active certaines des fonctionnalités de sécurité incluses avec Elasticsearch.
Enregistrez et fermez le fichier lorsque vous avez fini de le modifier.
Enfin, ajoutez des règles de pare-feu pour vous assurer que votre serveur Elasticsearch est accessible sur son interface réseau privée. Si vous avez suivi les tutoriels préalables et utilisez firewalld
, exécutez les commandes suivantes:
Remplacez le nom de votre interface réseau privée à la place de eth1
dans la première commande si le vôtre est différent. Cette commande modifie les règles de l’interface pour utiliser la zone Firewalld internal
, qui est plus permissive que la zone public
par défaut.
Les commandes suivantes ajoutent des règles pour autoriser le trafic Elasticsearch sur les ports 9200 et 9300, ainsi que le trafic Kibana sur le port 5601.
La dernière commande recharge le service Firewalld avec les nouvelles règles permanentes en place.
Ensuite, vous démarrerez le démon Elasticsearch et configurerez les mots de passe à utiliser avec le module de sécurité xpack
.
Démarrage d’Elasticsearch
Maintenant que vous avez configuré le réseau et les paramètres de sécurité xpack
pour Elasticsearch, vous devez le démarrer pour que les modifications prennent effet.
Exécutez la commande systemctl
suivante pour démarrer Elasticsearch:
Une fois qu’Elasticsearch a fini de démarrer, vous pouvez passer à la section suivante de ce tutoriel où vous générerez des mots de passe pour les utilisateurs par défaut intégrés à Elasticsearch.
Configuration des mots de passe Elasticsearch
Maintenant que vous avez activé le paramètre xpack.security.enabled
, vous devez générer des mots de passe pour les utilisateurs Elasticsearch par défaut. Elasticsearch inclut un utilitaire dans le répertoire /usr/share/elasticsearch/bin
qui peut générer automatiquement des mots de passe aléatoires pour ces utilisateurs.
Exécutez la commande suivante pour vous cd
dans le répertoire, puis générez des mots de passe aléatoires pour tous les utilisateurs par défaut:
Vous recevrez une sortie comme celle-ci. Lorsqu’on vous demande de continuer, appuyez sur y
puis sur RETURN
ou ENTER
:
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
The passwords will be randomly generated and printed to the console.
Please confirm that you would like to continue [y/N]y
Changed password for user apm_system
PASSWORD apm_system = eWqzd0asAmxZ0gcJpOvn
Changed password for user kibana_system
PASSWORD kibana_system = 1HLVxfqZMd7aFQS6Uabl
Changed password for user kibana
PASSWORD kibana = 1HLVxfqZMd7aFQS6Uabl
Changed password for user logstash_system
PASSWORD logstash_system = wUjY59H91WGvGaN8uFLc
Changed password for user beats_system
PASSWORD beats_system = 2p81hIdAzWKknhzA992m
Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = 85HF85Fl6cPslJlA8wPG
Changed password for user elastic
PASSWORD elastic = 6kNbsxQGYZ2EQJiqJpgl
Vous ne pourrez pas exécuter à nouveau l’utilitaire, alors assurez-vous de noter ces mots de passe quelque part de sécurisé. Vous devrez utiliser le mot de passe de l’utilisateur kibana_system
dans la prochaine section de ce tutoriel, et le mot de passe de l’utilisateur elastic
dans l’étape de Configuration de Filebeat de ce tutoriel.
À ce stade du tutoriel, vous avez terminé la configuration d’Elasticsearch. La section suivante explique comment configurer les paramètres réseau de Kibana et son module de sécurité xpack
.
Étape 3 — Configuration de Kibana
Dans la section précédente de ce tutoriel, vous avez configuré Elasticsearch pour écouter les connexions sur l’adresse IP privée de votre serveur Elasticsearch. Vous devrez faire de même pour Kibana afin que Filebeats sur votre serveur Suricata puisse y accéder.
Tout d’abord, vous activerez la fonctionnalité de sécurité de xpack
de Kibana en générant quelques secrets que Kibana utilisera pour stocker des données dans Elasticsearch. Ensuite, vous configurerez les paramètres réseau de Kibana et les détails d’authentification pour se connecter à Elasticsearch.
Activation de xpack.security
dans Kibana
Pour commencer avec les paramètres de sécurité xpack
dans Kibana, vous devez générer quelques clés de chiffrement. Kibana utilise ces clés pour stocker les données de session (comme les cookies), ainsi que divers tableaux de bord enregistrés et vues des données dans Elasticsearch.
Vous pouvez générer les clés de chiffrement requises en utilisant l’utilitaire kibana-encryption-keys
qui est inclus dans le répertoire /usr/share/kibana/bin
. Exécutez ce qui suit pour cd
vers le répertoire, puis générer les clés :
Le drapeau -q
supprime les instructions de l’outil, et le drapeau --force
garantira que vous créez de nouvelles clés. Vous devriez recevoir une sortie comme suit:
Outputxpack.encryptedSavedObjects.encryptionKey: 66fbd85ceb3cba51c0e939fb2526f585
xpack.reporting.encryptionKey: 9358f4bc7189ae0ade1b8deeec7f38ef
xpack.security.encryptionKey: 8f847a594e4a813c4187fa93c884e92b
Copiez ces trois clés quelque part en sécurité. Vous les ajouterez maintenant au fichier de configuration /etc/kibana/kibana.yml
de Kibana.
Ouvrez le fichier en utilisant vi
ou votre éditeur préféré:
Allez à la fin du fichier en utilisant le raccourci vi
SHIFT+G
. Collez les trois lignes xpack
que vous avez copiées à la fin du fichier:
. . .
# Spécifie la langue à utiliser pour toutes les chaînes localisables, les dates et les formats numériques.
# Les langues prises en charge sont les suivantes : Anglais - en, par défaut, Chinois - zh-CN.
#i18n.locale: "en"
xpack.encryptedSavedObjects.encryptionKey: 66fbd85ceb3cba51c0e939fb2526f585
xpack.reporting.encryptionKey: 9358f4bc7189ae0ade1b8deeec7f38ef
xpack.security.encryptionKey: 8f847a594e4a813c4187fa93c884e92b
Gardez le fichier ouvert et passez à la section suivante où vous configurerez les paramètres réseau de Kibana.
Configuration du Réseau de Kibana
Pour configurer le réseau de Kibana afin qu’il soit disponible sur l’adresse IP privée de votre serveur Elasticsearch, trouvez la ligne commentée #server.host: "localhost"
dans /etc/kibana/kibana.yml
. La ligne se trouve près du début du fichier. Ajoutez une nouvelle ligne après avec l’adresse IP privée de votre serveur, comme indiqué ci-dessous:
# Kibana est servi par un serveur back-end. Ce paramètre spécifie le port à utiliser.
#server.port: 5601
# Spécifie l'adresse à laquelle le serveur Kibana se liera. Les adresses IP et les noms d'hôte sont tous deux des valeurs valides.
# La valeur par défaut est 'localhost', ce qui signifie généralement que les machines distantes ne pourront pas se connecter.
# Pour autoriser les connexions des utilisateurs distants, définissez ce paramètre sur une adresse non bouclable.
#server.host: "localhost"
server.host: "your_private_ip"
Remplacez votre adresse IP privée à la place de l’adresse your_private_ip
.
Enregistrez et fermez le fichier lorsque vous avez terminé de le modifier. Ensuite, vous devrez configurer le nom d’utilisateur et le mot de passe que Kibana utilise pour se connecter à Elasticsearch.
Configuration des identifiants de Kibana
Il existe deux façons de définir le nom d’utilisateur et le mot de passe que Kibana utilise pour s’authentifier auprès d’Elasticsearch. La première consiste à modifier le fichier de configuration /etc/kibana/kibana.yml
et à ajouter les valeurs là-bas. La deuxième méthode consiste à stocker les valeurs dans le keystore de Kibana, qui est un fichier obfusqué que Kibana peut utiliser pour stocker des secrets.
Nous utiliserons la méthode du keystore dans ce tutoriel car elle évite de modifier directement le fichier de configuration de Kibana.
Si vous préférez modifier le fichier à la place, les paramètres à configurer sont elasticsearch.username
et elasticsearch.password
.
Si vous choisissez de modifier le fichier de configuration, ignorez le reste des étapes de cette section.
Pour ajouter un secret au keystore en utilisant l’utilitaire kibana-keystore
, tout d’abord cd
vers le répertoire /usr/share/kibana/bin
. Ensuite, exécutez la commande suivante pour définir le nom d’utilisateur pour Kibana:
Vous recevrez une invite comme suit :
Enter value for elasticsearch.username: *************
Entrez kibana_system
lorsque vous y êtes invité, soit en le copiant et en le collant, soit en saisissant le nom d’utilisateur avec soin. Chaque caractère que vous tapez sera masqué avec un caractère *
astérisque. Appuyez sur ENTRÉE
ou RETOUR
lorsque vous avez terminé d’entrer le nom d’utilisateur.
À présent, répétez le processus, cette fois-ci pour enregistrer le mot de passe. Assurez-vous de copier le mot de passe pour l’utilisateur kibana_system
que vous avez généré dans la section précédente de ce tutoriel. Pour référence, dans ce tutoriel, le mot de passe exemple est 1HLVxfqZMd7aFQS6Uabl
.
Exécutez la commande suivante pour définir le mot de passe:
Lorsque vous y êtes invité, collez le mot de passe pour éviter toute erreur de transcription:
Enter value for elasticsearch.password: ********************
Démarrage de Kibana
Maintenant que vous avez configuré le réseau et les paramètres de sécurité xpack
pour Kibana, ainsi que ajouté des informations d’identification au keystore, vous devez le démarrer pour que les modifications prennent effet.
Exécutez la commande systemctl
suivante pour redémarrer Kibana:
Une fois que Kibana démarre, vous pouvez passer à la section suivante de ce tutoriel où vous configurerez Filebeat sur votre serveur Suricata pour envoyer ses journaux à Elasticsearch.
Étape 4 — Installation de Filebeat
Maintenant que vos processus Elasticsearch et Kibana sont configurés avec les paramètres réseau et d’authentification corrects, la prochaine étape consiste à installer et configurer Filebeat sur votre serveur Suricata.
Pour commencer l’installation de Filebeat, ajoutez la clé GPG Elastic à votre serveur Suricata avec la commande suivante :
Ensuite, créez un fichier elasticsearch.repo
dans votre répertoire /etc/yum/yum.repos.d
avec le contenu suivant, en utilisant vi
ou votre éditeur préféré :
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md
Une fois que vous avez terminé d’apporter des modifications, enregistrez et quittez le fichier. Maintenant, installez le package Filebeat en utilisant la commande dnf
:
Ensuite, vous devrez configurer Filebeat pour qu’il se connecte à Elasticsearch et Kibana. Ouvrez le fichier de configuration /etc/filebeat/filebeat.yml
à l’aide de vi
ou de votre éditeur préféré :
Recherchez la section Kibana
du fichier vers la ligne 100. Ajoutez une ligne après la ligne commentée #host: "localhost:5601"
qui pointe vers l’adresse IP privée et le port de votre instance Kibana :
. . .
# À partir de la version 6.0.0 de Beats, les tableaux de bord sont chargés via l'API Kibana.
# Cela nécessite une configuration de point de terminaison Kibana.
setup.kibana:
# Hôte Kibana
# Le schéma et le port peuvent être omis et seront définis sur les valeurs par défaut (http et 5601)
# Au cas où vous spécifieriez un chemin supplémentaire, le schéma est requis : http://localhost:5601/path
# Les adresses IPv6 doivent toujours être définies comme : https://[2001:db8::1]:5601
#host: "localhost:5601"
host: "your_private_ip:5601"
. . .
Ce changement permettra à Filebeat de se connecter à Kibana afin de créer les différents index SIEM, tableaux de bord et pipelines de traitement dans Elasticsearch pour gérer vos journaux Suricata.
Ensuite, trouvez la section Sortie Elasticsearch
du fichier vers la ligne 130 et modifiez les paramètres hosts
, username
et password
pour correspondre aux valeurs de votre serveur Elasticsearch :
output.elasticsearch:
# Tableau des hôtes à connecter.
hosts: ["your_private_ip:9200"]
# Protocole - soit `http` (par défaut) soit `https`.
#protocol: "https"
# Informations d'authentification - soit clé API, soit nom d'utilisateur/mot de passe.
#api_key: "id:api_key"
username: "elastic"
password: "6kNbsxQGYZ2EQJiqJpgl"
. . .
Remplacez l’adresse IP privée de votre serveur Elasticsearch sur la ligne hosts
. Décommentez le champ username
et laissez-le défini sur l’utilisateur elastic
. Modifiez le champ password
de changeme
au mot de passe de l’utilisateur elastic
que vous avez généré dans la section Configuration des mots de passe Elasticsearch de ce tutoriel.
Enregistrez et fermez le fichier lorsque vous avez terminé de le modifier. Ensuite, activez le module Suricata intégré de Filebeat avec la commande suivante :
Maintenant que Filebeat est configuré pour se connecter à Elasticsearch et Kibana, avec le module Suricata activé, la prochaine étape consiste à charger les tableaux de bord SIEM et les pipelines dans Elasticsearch.
Exécutez la commande filebeat setup
. Cela peut prendre quelques minutes pour charger tout :
Une fois que la commande est terminée, vous devriez recevoir une sortie comme suit :
OutputOverwriting ILM policy is disabled. Set `setup.ilm.overwrite: true` for enabling.
Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
Setting up ML using setup --machine-learning is going to be removed in 8.0.0. Please use the ML app instead.
See more: https://www.elastic.co/guide/en/machine-learning/current/index.html
It is not possble to load ML jobs into an Elasticsearch 8.0.0 or newer using the Beat.
Loaded machine learning job configurations
Loaded Ingest pipelines
S’il n’y a pas d’erreurs, utilisez la commande systemctl
pour démarrer Filebeat. Il commencera à envoyer des événements depuis le journal eve.json
de Suricata vers Elasticsearch une fois qu’il sera en cours d’exécution.
Maintenant que vous avez configuré Filebeat, Kibana et Elasticsearch pour traiter vos journaux Suricata, la dernière étape de ce tutoriel est de se connecter à Kibana et d’explorer les tableaux de bord SIEM.
Étape 5 — Navigation dans les tableaux de bord SIEM de Kibana
Kibana est le composant graphique de la pile Elastic. Vous utiliserez Kibana avec votre navigateur pour explorer les données d’événements et d’alertes de Suricata. Étant donné que vous avez configuré Kibana pour qu’il soit disponible uniquement via l’adresse IP privée de votre serveur Elasticsearch, vous devrez utiliser un tunnel SSH pour vous connecter à Kibana.
Connexion à Kibana avec SSH
SSH dispose d’une option -L
qui vous permet de faire transiter le trafic réseau sur un port local via sa connexion vers une adresse IP et un port distants sur un serveur. Vous utiliserez cette option pour faire transiter le trafic de votre navigateur vers votre instance Kibana.
Sur Linux, macOS et les versions mises à jour de Windows 10 et supérieures, vous pouvez utiliser le client SSH intégré pour créer le tunnel. Vous utiliserez cette commande chaque fois que vous voudrez vous connecter à Kibana. Vous pouvez fermer cette connexion à tout moment, puis exécuter à nouveau la commande SSH pour rétablir le tunnel.
Exécutez la commande suivante dans un terminal sur votre ordinateur de bureau ou portable local pour créer le tunnel SSH vers Kibana :
Les différents arguments de SSH sont :
- Le drapeau
-L
redirige le trafic vers votre système local sur le port5601
vers le serveur distant. - La partie
votre_ip_privée:5601
de la commande spécifie le service sur votre serveur Elasticsearch vers lequel votre trafic sera redirigé. Dans ce cas, ce service est Kibana. Assurez-vous de substituer l’adresse IP privée de votre serveur Elasticsearch à la place devotre_ip_privée
. - L’adresse
203.0.113.5
est l’adresse IP publique que vous utilisez pour vous connecter et administrer votre serveur. Substituez l’adresse IP publique de votre serveur Elasticsearch à sa place. - Le drapeau
-N
indique à SSH de ne pas exécuter une commande comme un shell interactif/bin/bash
, et de simplement maintenir la connexion ouverte. Il est généralement utilisé lors de la redirection de ports comme dans cet exemple.
Si vous souhaitez fermer le tunnel à tout moment, appuyez sur CTRL+C
.
Sous Windows, votre terminal devrait ressembler à la capture d’écran suivante :
Note : Vous pouvez être invité à entrer un mot de passe si vous n’utilisez pas de clé SSH. Tapez ou collez-le dans l’invite, puis appuyez sur ENTRÉE
ou RETOUR
.
Sur macOS et Linux, votre terminal ressemblera à la capture d’écran suivante :
Une fois que vous êtes connecté à votre serveur Elasticsearch via SSH avec le transfert de port en place, ouvrez votre navigateur et visitez http://127.0.0.1:5601. Vous serez redirigé vers la page de connexion de Kibana :
Si votre navigateur ne peut pas se connecter à Kibana, vous recevrez un message comme celui-ci dans votre terminal :
Outputchannel 3: open failed: connect failed: No route to host
Cette erreur indique que votre tunnel SSH ne peut pas atteindre le service Kibana sur votre serveur. Assurez-vous d’avoir spécifié la bonne adresse IP privée pour votre serveur Elasticsearch et rechargez la page dans votre navigateur.
Connectez-vous à votre serveur Kibana en utilisant elastic
pour le nom d’utilisateur et le mot de passe que vous avez copié précédemment dans ce tutoriel pour l’utilisateur.
Navigation dans les tableaux de bord SIEM de Kibana
Une fois connecté à Kibana, vous pouvez explorer les tableaux de bord Suricata que Filebeat a configurés pour vous.
Dans le champ de recherche en haut de la page d’accueil de Kibana, saisissez les termes de recherche type:dashboard suricata
. Cette recherche renverra deux résultats : les tableaux de bord Suricata Events et Suricata Alerts comme indiqué sur la capture d’écran suivante :
Cliquez sur le résultat [Filebeat Suricata] Vue d'ensemble des événements
pour visiter le tableau de bord Kibana qui affiche une vue d’ensemble de tous les événements Suricata enregistrés :
Pour visiter le tableau de bord des alertes Suricata, répétez la recherche ou cliquez sur le lien Alertes
inclus dans le tableau de bord des événements. Votre page devrait ressembler à la capture d’écran suivante :
Si vous souhaitez inspecter les événements et les alertes affichés par chaque tableau de bord, faites défiler jusqu’au bas de la page où vous trouverez un tableau répertoriant chaque événement et alerte. Vous pouvez développer chaque entrée pour afficher l’entrée de journal d’origine de Suricata et examiner en détail les différents champs tels que les adresses IP source et destination pour une alerte, le type d’attaque, l’ID de signature Suricata, et autres.
Kibana dispose également d’un ensemble intégré de tableaux de bord de sécurité auxquels vous pouvez accéder en utilisant le menu sur le côté gauche de la fenêtre du navigateur. Naviguez jusqu’au tableau de bord Réseau pour obtenir une vue d’ensemble des événements affichés sur une carte, ainsi que des données agrégées sur les événements de votre réseau. Votre tableau de bord devrait ressembler à la capture d’écran suivante :
Vous pouvez faire défiler jusqu’au bas du tableau de bord Réseau pour trouver un tableau répertoriant tous les événements correspondant à votre plage de recherche spécifiée. Vous pouvez également examiner chaque événement en détail ou sélectionner un événement pour générer une chronologie Kibana, que vous pouvez ensuite utiliser pour enquêter sur des flux de trafic spécifiques, des alertes ou des identifiants de communauté.
Conclusion
Dans ce tutoriel, vous avez installé et configuré Elasticsearch et Kibana sur un serveur autonome. Vous avez configuré les deux outils pour être disponibles sur une adresse IP privée. Vous avez également configuré les paramètres d’authentification d’Elasticsearch et de Kibana en utilisant le module de sécurité xpack
inclus avec chaque outil.
Après avoir terminé les étapes de configuration d’Elasticsearch et de Kibana, vous avez également installé et configuré Filebeat sur votre serveur Suricata. Vous avez utilisé Filebeat pour alimenter les tableaux de bord de Kibana et commencer à envoyer les journaux Suricata vers Elasticsearch.
Enfin, vous avez créé un tunnel SSH vers votre serveur Elasticsearch et vous êtes connecté à Kibana. Vous avez localisé les nouveaux tableaux de bord Suricata Events and Alerts, ainsi que le tableau de bord Network.
Le dernier tutoriel de cette série vous guidera à travers l’utilisation de la fonctionnalité SIEM de Kibana pour traiter vos alertes Suricata. Vous explorerez comment créer des cas pour suivre des alertes spécifiques, des chronologies pour corréler les flux réseau, et des règles pour correspondre à des événements Suricata spécifiques que vous souhaitez suivre ou analyser plus en détail.