
I. Présentation
Graylog est capable de stocker, d’indexer et d’analyser les journaux de vos appareils. Ce n’est pas tout : il peut aussi vous envoyer une notification lorsqu’un événement spécifique est détecté. La solution peut envoyer des notifications par e-mail, sur Slack, sur Microsoft Teams, ainsi que d’autres méthodes.
Dans ce tutoriel, nous allons apprendre à configurer Graylog pour qu’il soit capable d’envoyer des e-mails via un serveur SMTP, puis nous verrons comment configurer une première alerte. Ici, nous prendrons l’exemple suivant : recevoir un e-mail quand une connexion SSH en échec est détectée sur un hôte.
Nous partons du principe que le serveur Graylog est en place et qu’une machine Linux envoi ses logs sur ce serveur par l’intermédiaire de Rsyslog.
D’autres articles sur la thématique Graylog sont disponibles sur notre site, notamment :
II. Graylog : configuration SMTP pour envoyer des e-mails
La première étape consiste à ajuster la configuration de Graylog pour qu’il soit capable d’envoyer des e-mails. Vous allez voir configurer le serveur SMTP, le numéro de port, l’adresse e-mail de l’expéditeur, etc… dans le fichier de configuration “server.conf” de Graylog.
Connectez-vous au terminal de votre serveur Graylog afin d’éditer le fichier de configuration :
sudo nano /etc/graylog/server/server.conf
Au sein de ce fichier, les paramètres pour configurer le serveur SMTP sont déjà présents, mais ils sont commentés (et donc inactifs). L’envoi des e-mails est désactivé par défaut, ce qui est normal puisque c’est à vous de configurer les notifications en fonction de votre environnement. Les paramètres à éditer ont un nom qui commence par “transport_email”.
Vous devez activer l’envoi par e-mail (transport_email_enabled) et configurer les différents paramètres afin de préciser le nom du serveur SMTP (transport_email_hostname), le numéro de port à utiliser (transport_email_port) et les identifiants. Si vous souhaitez vous authentifier via Gmail (Google), vous pouvez utiliser un mot de passe d’application (recommandé), sinon adaptez à votre environnement. Indiquez un nom d’utilisateur (transport_email_auth_username), un mot de passe (transport_email_auth_password), ainsi qu’une adresse e-mail expéditeur qui sera utilisée par Graylog (transport_email_from_email).
transport_email_enabled = true
transport_email_hostname = smtp.gmail.com
transport_email_port = 587
transport_email_use_auth = true
transport_email_auth_username = [email protected]
transport_email_auth_password = VotreMotDePasse
transport_email_from_email = [email protected]
transport_email_socket_connection_timeout = 10s
transport_email_socket_timeout = 10s
Pour utiliser une connexion sécurisée basée sur TLS, activez aussi ce paramètre (il se situe un peu plus bas) :
transport_email_use_tls = true
Descendez dans le fichier de configuration afin de configurer ce paramètre :
transport_email_web_interface_url = http://192.168.10.220:9000
Vous devez définir l’adresse IP ou le nom de domaine et le port permettant d’accéder à Graylog. Il s’agit de l’URL qui sera utilisée dans les alertes envoyées par e-mail afin de vous rediriger directement vers le portail Graylog.
Quand c’est fait, enregistrez les modifications et redémarrez Graylog :
sudo systemctl restart graylog-server.service
La suite de la configuration est à effectuer sur l’interface Web de Graylog.
III. Graylog : configuration des alertes par e-mail
A. Créer un nouveau Stream
Désormais, nous allons créer un nouveau Stream pour récupérer les messages de logs correspondants à nos besoins. En l’occurrence, les messages faisant référence à une connexion SSH échouée. Si l’on configure un nouveau Stream, ce n’est pas un hasard : une alerte se configure vis-à-vis d’un Stream.
À partir de Graylog, cliquez sur le menu “Streams” puis créez un nouveau Stream. Nommez ce Stream, par exemple “Erreurs de connexion SSH”. Conservez l’index nommé “Default index set”, sauf si vous avez déjà un stream particulier pour les journaux Linux (c’est le cas si vous avez suivi les précédents tutoriels). Pour ma part, l’index nommé “Linux Index” sera sélectionné.
Dans la liste des Streams, identifiez celui que vous venez de créer, puis en bout de ligne, cliquez sur “More” et après sur “Manage Rules”.
Ajoutez une nouvelle règle avec le bouton “Add stream rule”. L’idée étant de créer des conditions permettant d’isoler les messages correspondants aux connexions SSH infructueuses. Je vous invite à créer 2 conditions :
Une condition pour indiquer que le message doit contenir la chaine “Failed password”.
Une condition pour indiquer que le message doit correspondre à l’application “sshd”.
Ce qui doit vous donner le résultat suivant :
Validez avec le bouton “I’m done!”. Votre nouveau Stream sera en pause, comme le montre le message “Paused” dans le bouton. Cliquez-dessus pour le rendre actif.
Une fois que c’est fait, passez à la suite.
B. Créer un nouveau type de notification
Dans le menu de Graylog, cliquez sur l’entrée intitulée “Alerts”, puis basculez sur l’onglet “Notifications” afin de cliquer sur “Create notification”. Cela va permettre de créer un type de configuration par e-mail, avec un message personnalisé.
Un nouvel assistant s’affiche. Commencez par donner un nom à cette notification. Il est envisageable d’utiliser un template de notification pour plusieurs alertes, donc vous pouvez utiliser un nom plus générique. Choisissez aussi le type de notification intitulé “Email Notification”.
Vous pouvez ensuite définir l’adresse e-mail de l’expéditeur (Sender). Si vous laissez vide, l’adresse définie dans le fichier “server.conf” sera utilisée. Par contre, vous devez définir le(s) destinataire(s), via l’option “Email recipient(s)”.
Un peu plus bas dans la page, vous avez accès au modèle correspondant au corps de la notification, c’est-à-dire à son contenu. Ce n’est pas le point fort de Graylog, car la définition d’un modèle n’est pas aisée… Et, il est généralement plus pratique de cliquer sur le lien présent dans l’e-mail pour effectuer l’analyse sur Graylog. Pour le moment, cliquez sur “Execute test notification” pour tester l’envoi d’un e-mail.
Si la configuration est correcte, un message de validation s’affiche. Sinon, vérifiez les paramètres de cette page, ainsi que ceux définis dans le fichier “server.conf”.
Voici l’e-mail reçu à l’occasion de ce test :
Quand c’est bon, passez à l’étape suivante.
C. Créer une nouvelle alerte
La dernière étape de la configuration consiste à créer un nouvel événement. Toujours dans la section “Alerts” du menu, cliquez sur “Event Definitions” afin d’accéder au bouton nommé “Create event definition”.
Nommez cette alerte, par exemple “Erreur connexion SSH – Linux” et poursuivez.
À l’étape “Condition”, choisissez “Filter & Aggregation” comme type. Cela va faire apparaître des champs supplémentaires.
Vous devez configurer un filtre. Vous pouvez indiquer “Failed password” comme “Search query” et sélectionnez le Stream créé précédemment. J’attire également votre attention sur deux paramètres :
Search within the last : rechercher dans les événements de la dernière minute.
Execute search every : exécuter la recherche des événements correspondants, chaque minute
Ainsi, s’il y a une connexion SSH en échec sur l’un de vos serveurs, vous serez alerté dans la minute suivant l’événement sur le serveur.
Poursuivez, passez l’étape “Fields” et basculez sur “Notifications”. Ici, sélectionnez le modèle de notification créé auparavant et validez avec le bouton “Add notification”.
Pour finir, cliquez sur l’étape “Summary” et validez avec le bouton “Create event definition”. La configuration est terminée !
D. Tester l’alerte
Désormais, nous allons tester notre nouvelle configuration afin de voir si nous recevons bien l’alerte par e-mail… Pour cela, rien de plus simple : il suffit de simuler une connexion SSH sur un serveur, en spécifiant un mauvais mot de passe.
Quelques secondes plus tard, un e-mail doit arriver dans votre boite de réception. En cliquant sur le lien sur la ligne “Alert Replay”, vous pourrez voir tous les événements associés à cette alerte, afin d’en effectuer l’analyse.
Voilà, la configuration est opérationnelle !
IV. Conclusion
En mettant en application ce tutoriel, vous serez en mesure de créer votre première alerte dans Graylog. Ce n’est pas la fonction la plus pratique de Graylog, mais il est important de savoir que cela existe et que c’est un bon moyen de recevoir une notification lorsqu’un événement suspect se produit.
Ingénieur système et réseau, cofondateur d’IT-Connect et Microsoft MVP “Cloud and Datacenter Management”. Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.