Transfert Syslog SLES sécurisé avec rsyslog et TLS mutuel

Pour acheminer les journaux système de SUSE Linux Enterprise Server (SLES) de manière sécurisée, configurez rsyslog pour envoyer les messages via le port TCP 6514 protégé par TLS, vérifiez le nom du certificat du collecteur et confirmez la réception par un événement de test. SLES 15 SP7 a bénéficié d'une mise à jour optionnelle de rsyslog le 27 mars 2026, ajoutant un module TLS OpenSSL ; la configuration ci-dessous utilise délibérément le gtlsmodule GnuTLS existant.

Cette procédure concerne un expéditeur SLES 15 sles01.example.netet un collecteur rsyslog logs.example.net. Remplacez les noms et les chemins de certificat par vos valeurs. Elle utilise l'authentification TLS mutuelle : le collecteur authentifie l'expéditeur et l'expéditeur authentifie le collecteur.

1. Vérifiez rsyslog et le chemin de journalisation SLES

Sur les deux machines, installez le démon rsyslog et son module GnuTLS depuis vos dépôts SUSE enregistrés. Les installations existantes peuvent déjà contenir le premier paquet.

sudo zypper install rsyslog rsyslog-module-gtls
rpm -q rsyslog rsyslog-module-gtls
sudo systemctl enable --now rsyslog
rsyslogd -v

Veuillez vérifier /etc/rsyslog.confles extraits de code existants /etc/rsyslog.d/avant d'ajouter des règles. En particulier, désactivez toute *.* @@hostrègle de transfert non chiffrée plus ancienne pour la même destination ; sinon, les messages pourraient emprunter deux chemins, dont un sans TLS.

SLES utilise `rsyslog` systemd-journaldpour les événements du journal, tandis que `rsyslog` traite les entrées syslog. Assurez-vous que les événements souhaités parviennent bien à `rsyslog` via la configuration d'entrée existante. La documentation SUSE ForwardToSyslog=yesrelative /etc/systemd/journald.confau transfert des événements du journal vers syslog est disponible ; vérifiez votre déploiement avant toute modification, car l'activation séparée des lecteurs de journal peut engendrer des doublons. Cette procédure transfère les messages déjà traités par `rsyslog`, et non /var/logautomatiquement tous les fichiers du journal.

Fenêtre de terminal affichant les vérifications du paquet rsyslog et les fichiers CA, certificat client et clé privée pour l'expéditeur SLES.
Vérifiez l'installation de rsyslog et assurez-vous que l'expéditeur dispose de fichiers CA, de certificat et de clé distincts avant d'activer TLS.

2. Préparer les certificats de serveur et de client de confiance

Utilisez une autorité de certification (AC) contrôlée par votre organisation pour émettre un certificat contenant le nom alternatif de sujet DNS logs.example.netpour le collecteur et un certificat distinct sles01.example.netpour l'expéditeur. Assurez-vous que les certificats sont valides pour leurs rôles respectifs de serveur ou de client TLS et que les deux machines font confiance à l'AC émettrice. Suivez votre procédure PKI pour la génération et le renouvellement ; ne réutilisez pas une même clé privée sur plusieurs hôtes.

Copiez les fichiers appropriés via un canal sécurisé approuvé par l'administrateur. Dans cet exemple, les deux machines utilisent /etc/rsyslog.d/tls/ca.pem. Le collecteur possède en plus server-cert.pemetserver-key.pem ; l'expéditeur possède client-cert.pemet client-key.pem.

sudo install -d -m 0750 /etc/rsyslog.d/tls
sudo chmod 0600 /etc/rsyslog.d/tls/*-key.pem
sudo chmod 0644 /etc/rsyslog.d/tls/ca.pem

Limitez l'accès aux certificats et aux clés du service rsyslog lorsque cela est nécessaire. Ne divulguez pas les clés privées dans les diagnostics, l'historique du shell, les dépôts Git ou le flux de journalisation exporté. Vérifiez que votre processus rsyslog peut lire sa clé avant de redémarrer le démon.

3. Activez un récepteur TLS authentifié sur le collecteur.

Ajoutez ensuite logs.example.netles lignes suivantes /etc/rsyslog.d/30-tls-listener.conf. Si imtcple module est déjà chargé ailleurs, ne conservez qu'une seule instruction de chargement. Le jeu de règles dédié place les messages reçus à distance dans un fichier séparé au lieu de les mélanger avec les messages du système local.

global(
  DefaultNetstreamDriverCAFile="/etc/rsyslog.d/tls/ca.pem"
  DefaultNetstreamDriverCertFile="/etc/rsyslog.d/tls/server-cert.pem"
  DefaultNetstreamDriverKeyFile="/etc/rsyslog.d/tls/server-key.pem"
)
module(load="imtcp")
ruleset(name="remote_tls") {
  action(type="omfile" file="/var/log/remote-tls.log")
}
input(
  type="imtcp"
  port="6514"
  StreamDriver.Name="gtls"
  StreamDriver.Mode="1"
  StreamDriver.AuthMode="x509/name"
  PermittedPeer="sles01.example.net"
  ruleset="remote_tls"
)

StreamDriver.Mode="1"Active le protocole TLS x509/nameet PermittedPeerrejette les clients ne possédant pas d'identité de certificat valide. L'autorisation d'un seul nom est intentionnelle ; l'ajout d'autres expéditeurs à la liste des pairs approuvés permet d'éviter d'affaiblir l'authentification.

sudo rsyslogd -N1
sudo systemctl restart rsyslog
sudo firewall-cmd --permanent --add-port=6514/tcp
sudo firewall-cmd --reload
sudo ss -ltn | grep ':6514'

Exécutez les commandes du pare-feu uniquement si le collecteur utilise firewalld. Limitez le trafic TCP entrant sur le port 6514 aux réseaux d'expéditeurs connus à l'aide de votre pare-feu hôte ou en amont ; l'ouverture du port ne remplace pas l'authentification par certificat. Vérifiez également qu'aucun écouteur en clair existant n'est exposé par inadvertance.

Éditeur de configuration affichant un écouteur rsyslog imtcp sur le port TCP 6514 avec authentification gtls et x509/nom.
Le récepteur TLS utilise le port 6514, le mode GnuTLS 1 et l'authentification par nom de certificat ; l'article fournit la configuration complète du récepteur.

4. Ajoutez le transfert TLS et une file d'attente délimitée à SLES.

Assurez - sles01.example.netvous que le répertoire de travail rsyslog existe et est accessible en écriture par le service. Le répertoire indiqué ici est donné à titre d'exemple ; conservez celui déjà configuré workDirectorysi votre installation en fournit un. Ajoutez cet extrait de code comme suit/etc/rsyslog.d/60-tls-forward.conf :

global(
  DefaultNetstreamDriverCAFile="/etc/rsyslog.d/tls/ca.pem"
  DefaultNetstreamDriverCertFile="/etc/rsyslog.d/tls/client-cert.pem"
  DefaultNetstreamDriverKeyFile="/etc/rsyslog.d/tls/client-key.pem"
)
*.* action(
  type="omfwd"
  target="logs.example.net"
  port="6514"
  protocol="tcp"
  StreamDriver="gtls"
  StreamDriverMode="1"
  StreamDriverAuthMode="x509/name"
  StreamDriverPermittedPeers="logs.example.net"
  queue.type="LinkedList"
  queue.filename="tls_forward"
  queue.size="10000"
  queue.maxDiskSpace="1g"
  queue.saveOnShutdown="on"
  action.resumeRetryCount="-1"
)

Les paramètres TLS authentifient le collecteur avant l'envoi. La file d'attente d'actions avec disque met en mémoire tampon les messages lors de brèves interruptions et relance les transferts ayant échoué. Cependant, sa capacité n'est pas illimitée et elle ne garantit pas l'absence totale de perte de messages : l'espace disque disponible, les limites de la file d'attente, le comportement à l'arrêt des processus et l'état du récepteur restent des facteurs importants. Avant d'utiliser la mise en mémoire tampon sur disque, vérifiez le répertoire de travail effectif de rsyslog et créez-le avec les droits d'accès appropriés.

Validez et redémarrez l'expéditeur :

sudo rsyslogd -N1
sudo systemctl restart rsyslog

En cas d'échec de la validation de la configuration, ne redémarrez pas ; corrigez la première erreur signalée. Dans un déploiement rsyslog existant, les directives de certificat globales peuvent affecter d'autres actions TLS. Examinez les autres actions sortantes et utilisez les paramètres de certificat spécifiques à chaque action si elles requièrent des informations d'identification différentes.

Éditeur de configuration affichant une action rsyslog omfwd ciblant logs.example.net sur le port 6514 avec vérification du nom du certificat TLS.
Transférez les messages système vers logs.example.net à l'aide d'une action omfwd compatible TLS ; ajoutez les paramètres de certificat et la file d'attente résiliente à partir du code fourni.

5. Vérifier la réception et enquêter sur un échec de poignée de main

Vérifiez d'abord que le collecteur écoute sur le port TCP 6514 et que l'expéditeur peut atteindre l'hôte à travers le pare-feu. Ensuite, exécutez la commande suivante sur l'expéditeur SLES :

logger -t sles-tls-check "TLS forwarding probe"

Sur le collecteur, recherchez le fichier journal distant configuré :

sudo grep 'TLS forwarding probe' /var/log/remote-tls.log
sudo journalctl -u rsyslog -n 50 --no-pager

La présence du marqueur /var/log/remote-tls.logconfirme que le chemin de redirection au niveau de l'application a fonctionné pour ce test. Cela ne prouve pas que tous les fichiers journaux spécifiques à l'application sont collectés. Pour tester l'authentification indépendamment, utilisez temporairement un certificat différent et non approuvé, ou un nom de pair différent, pendant une période de maintenance contrôlée, et vérifiez que la connexion TLS échoue ; rétablissez immédiatement la configuration d'origine.

Terminal affichant la validation de la configuration rsyslog, une sonde de journalisation étiquetée et une commande permettant d'inspecter le fichier journal du collecteur.
Validez rsyslog et envoyez un message de test étiqueté de manière unique, puis vérifiez le journal du collecteur pour la sonde au lieu de supposer sa livraison.

Si le marqueur n'apparaît pas, suivez la procédure de défaillance dans l'ordre :

  • Aucun écouteur ou connexion refusée : vérifiez systemctl status rsyslogles règles du pare-feu TCP/6514 et du collecteur.
  • Échec TLS ou de certificat : comparez les SAN du certificat avec PermittedPeeretStreamDriverPermittedPeers ; vérifiez la chaîne CA, les dates d’expiration, les horloges système et les autorisations de clé privée.
  • Connexion établie mais aucun événement : vérifiez les entrées de journal/syslog dupliquées ou manquantes, les actions de transfert suspendues et la capacité de la file d’attente du disque. Effectuez cette vérification journalctl -u rsyslogsur les deux hôtes.

Cette méthode suit le guide officiel de journalisation système SLES 15 SP7 , le guide du client rsyslog authentifié par certificat , la documentation de référence du listener imtcp et la documentation de référence du transfert omfwd . L'avis de mise à jour SUSE de mars 2026 documente l'ajout optionnel du module OpenSSL. Les configurations varient selon les Service Packs SLES ; il est donc recommandé de les valider sur votre installation rsyslog avant d'appliquer les modifications en production.

Laisser un commentaire

Lorsque SLES Btrfs passe en mode lecture seule : diagnostiquer avant de remonter

Lorsque SLES Btrfs passe en mode lecture seule : diagnostiquer avant de remonter

Identifiez si Btrfs est intentionnellement en lecture seule, manque d'espace ou protège les données après des erreurs, puis choisissez une méthode de récupération adaptée à la cause.

Enregistrez SLES 15 auprès de SUSE Manager sur un réseau hors ligne.

Enregistrez SLES 15 auprès de SUSE Manager sur un réseau hors ligne.

Préparez des canaux miroirs, créez une clé d'activation et initialisez un client SLES 15 sans accès Internet direct tout en préservant la connexion nécessaire aux enregistrements du gestionnaire.

Configurer le transfert X11 de YaST via SSH

Configurer le transfert X11 de YaST via SSH

Corrigez l'erreur de lancement XIO de YaST via SSH, vérifiez le transfert X11 et xauth, et passez à l'interface ncurses lorsqu'une fenêtre distante n'est pas nécessaire.

Restaurez en toute sécurité une mise à jour SLES ayant échoué avec Snapper

Restaurez en toute sécurité une mise à jour SLES ayant échoué avec Snapper

Trouvez l'instantané Btrfs antérieur à la mise à jour, testez-le en lecture seule et rendez la récupération permanente avec Snapper tout en comprenant quelles données restent en dehors de la restauration racine.

Transfert Syslog SLES sécurisé avec rsyslog et TLS mutuel

Transfert Syslog SLES sécurisé avec rsyslog et TLS mutuel

Envoyer les journaux système SLES à un collecteur rsyslog distant via TLS authentifié, avec vérifications de certificat, mise en mémoire tampon en cas de panne et tests de livraison.

Identifiez les erreurs de mémoire lors de la mise à niveau de SLES avant de réessayer.

Identifiez les erreurs de mémoire lors de la mise à niveau de SLES avant de réessayer.

Utilisez les journaux RAM, swap, noyau et Zypper pour identifier la pression réelle sur la mémoire, protéger l'état du paquet et choisir une nouvelle tentative de mise à niveau SLES plus sûre.

Maintenir les mises à jour de sécurité Debian 12 actives sur un serveur sans interface graphique

Maintenir les mises à jour de sécurité Debian 12 actives sur un serveur sans interface graphique

Activez les mises à jour de sécurité automatiques de Debian via SSH, conservez les sources de paquets par défaut et vérifiez les exécutions planifiées via les journaux systemd et APT.

Recevez les alertes SMART Disk d'Ubuntu par e-mail avec smartd

Recevez les alertes SMART Disk d'Ubuntu par e-mail avec smartd

Comparez les options de livraison de courrier, configurez smartd sur Ubuntu et vérifiez que les alertes concernant l'état de votre disque dur arrivent bien dans votre boîte de réception.

Échecs de résolution DNS sous Debian 12 : réparer systemd-resolved

Échecs de résolution DNS sous Debian 12 : réparer systemd-resolved

Rétablissez les requêtes DNS sur Debian 12 en vérifiant systemd-resolved, en réparant resolv.conf si nécessaire et en vérifiant la résolution DNS et applicative en amont.

Ubuntu 24.04 n'affiche pas le son HDMI ? Restaurez la sortie.

Ubuntu 24.04 n'affiche pas le son HDMI ? Restaurez la sortie.

Configurez Ubuntu pour qu'il détecte votre moniteur ou votre téléviseur comme une sortie audio, sélectionnez-le dans les paramètres audio et vérifiez la liste des périphériques de connexion ou PipeWire si le périphérique HDMI est absent.