Sécurité

Comment envoyer des journaux Linux à un serveur distant

Comment envoyer des journaux Linux à un serveur distant
La principale raison d'appliquer la journalisation à distance est la même raison pour laquelle une partition /var dédiée est recommandée : une question d'espace, mais pas seulement. En envoyant les journaux à un périphérique de stockage dédié, vous pouvez empêcher vos journaux de prendre tout l'espace tout en conservant une énorme base de données historique pour vous permettre des bogues.

Le téléchargement des journaux sur un hôte distant nous permet de centraliser les rapports pour plusieurs appareils et de conserver une sauvegarde des rapports pour rechercher au cas où quelque chose échouerait nous empêchant d'accéder aux journaux localement.

Ce didacticiel montre comment configurer un serveur distant pour héberger des journaux et comment envoyer ces journaux à partir de périphériques clients et comment classer ou diviser les journaux dans des répertoires par hôte client.

Pour suivre les instructions, vous pouvez utiliser un appareil virtuel, j'ai pris un VPS gratuit d'Amazon (si vous avez besoin d'aide pour configurer un appareil Amazon, ils ont un excellent contenu dédié sur LinuxHint à https://linuxhint.com/category/aws/). Notez que l'IP publique du serveur est différente de son IP interne.

Avant de commencer :

Le logiciel utilisé pour envoyer les logs à distance est rsyslog, il vient par défaut sur Debian et les distributions Linux dérivées, au cas où vous ne l'auriez pas exécuté :

# sudo apt installer rsyslog

Vous pouvez toujours vérifier l'état de rsyslog en exécutant :

# état du service sudo rsyslog

Comme vous pouvez le voir sur la capture d'écran, l'état est actif, si votre rsyslog n'est pas actif, vous pouvez toujours le démarrer en exécutant :

# démarrage du service sudo rsyslog

Ou alors

# systemctl démarrer rsyslog

Noter: Pour plus d'informations sur toutes les options de gestion des services Debian, consultez Arrêter, démarrer et redémarrer les services sur Debian.

Le démarrage de rsyslog n'est pas pertinent pour le moment car nous devrons le redémarrer après avoir apporté quelques modifications.

Comment envoyer des journaux Linux à un serveur distant : le côté serveur

Tout d'abord, sur le serveur éditez le fichier /etc/resyslog.conf en utilisant nano ou vi :

# nano /etc/rsyslog.conf

Dans le fichier, décommentez ou ajoutez les lignes suivantes :

module(load="imudp")
entrée(type="imudp" port="514")
module(load="imtcp")
entrée(type="imtcp" port="514")

Ci-dessus, nous avons décommenté ou ajouté les réceptions de journaux via UDP et TCP, vous ne pouvez autoriser qu'un seul d'entre eux ou les deux, une fois non commentés ou ajoutés, vous devrez modifier vos règles de pare-feu pour autoriser les journaux entrants, pour autoriser la réception des journaux via TCP :

# ufw autoriser 514/tcp

Pour autoriser les journaux entrants via le protocole UDP, exécutez :

# ufw autoriser 514/udp

Pour autoriser à la fois TCP et UDP, exécutez les deux commandes ci-dessus.

Noter: pour plus d'informations sur UFW, vous pouvez lire Travailler avec les pare-feu Debian (UFW).

Redémarrez le service rsyslog en exécutant :

# redémarrage du service sudo rsyslog

Continuez maintenant sur le client pour configurer l'envoi des logs, puis nous reviendrons sur le serveur pour améliorer le format.

Comment envoyer des journaux Linux à un serveur distant : le côté client

Sur les journaux d'envoi du client, ajoutez la ligne suivante, en remplaçant l'IP 18.223.3.241 pour l'IP de votre serveur.

*.* @@18.223.3.241:514

Quittez et enregistrez les modifications en appuyant sur CTRL + X.

Une fois édité, redémarrez le service rsyslog en exécutant :

# redémarrage du service sudo rsyslog

Côté serveur :

Vous pouvez maintenant vérifier les journaux dans /var/log, lorsque vous les ouvrez, vous remarquerez des sources mixtes pour votre journal, l'exemple suivant montre les journaux de l'interface interne d'Amazon et du client Rsyslog (Montségur) :

Un zoom le montre clairement :

Avoir des fichiers mixtes n'est pas confortable, ci-dessous, nous allons modifier la configuration de rsyslog pour séparer les journaux en fonction de la source.

Pour discriminer les journaux à l'intérieur d'un répertoire avec le nom de l'hôte client, ajoutez les lignes suivantes au serveur /etc/rsyslog.conf pour indiquer à rsyslog comment enregistrer les journaux distants, pour le faire dans le rsyslog.conf ajoute les lignes :

$template RemoteLogs,"/var/log/%HOSTNAME%/.Journal"
*.* ?Journaux distants
& ~

Quittez l'enregistrement des modifications en appuyant sur CTRL + X et redémarrez rsyslog sur le serveur :

# redémarrage du service sudo rsyslog

Maintenant, vous pouvez voir de nouveaux répertoires, l'un appelé ip-172.31.47.212 qui est l'interface interne d'AWS et d'autres appelées "montségur" comme le client rsyslog.

Dans les répertoires, vous pouvez trouver les journaux :

Conclusion:

La journalisation à distance offre une excellente solution à un problème qui peut entraîner une panne des services si le stockage du serveur est plein de journaux, comme dit au début, c'est également un must dans certains cas où le système peut être sérieusement endommagé sans autoriser l'accès aux journaux , dans de tels cas, un serveur de journal distant garantit l'accès sysadmin à l'historique du serveur.

La mise en œuvre de cette solution est techniquement assez facile et même gratuite étant donné que des ressources élevées ne sont pas nécessaires et que les serveurs gratuits comme les niveaux gratuits AWS sont bons pour cette tâche, si vous augmentez la vitesse de transfert des journaux, vous pouvez autoriser uniquement le protocole UDP (malgré la perte de fiabilité). Il existe quelques alternatives à Rsyslog telles que : Flume ou Sentry, mais rsyslog reste l'outil le plus populaire parmi les utilisateurs Linux et les administrateurs système.

J'espère que vous avez trouvé cet article sur Comment envoyer des journaux Linux à un serveur distant utile.

Comment télécharger et jouer à Civilization VI de Sid Meier sur Linux
Présentation du jeu Civilization 6 est une version moderne du concept classique introduit dans la série de jeux Age of Empires. L'idée était assez sim...
Comment installer et jouer à Doom sur Linux
Introduction à Doom La série Doom est née dans les années 90 après la sortie du Doom original. Ce fut un succès instantané et à partir de ce moment-là...
Vulkan pour les utilisateurs Linux
Avec chaque nouvelle génération de cartes graphiques, nous voyons les développeurs de jeux repousser les limites de la fidélité graphique et se rappro...