Comment mettre en place un serveur Syslog ?

By | March 1, 2018

Toutes les distributions Linux viennent avec un méchanisme de logging qui enregistre toutes les activités des systèmes. Les logs enregistrés peuvent être également très utiles aux administrateurs systèmes pour des fins de dépannage.

Il existe généralement deux types de logging:
_ Le logging local: les messages sont écrits sur le disque dur local (ou base de donnée locale) d’un système,
_ Le logging distant: les messages sont transférés à travers le réseau vers un serveur différent.

Rsyslog est le programme de logging par défaut sur plusieurs distributions Linux y compris celles basées sur Debian et RedHat.
S’il n’est pas déjà sur votre système, veuillez l’installer à l’aide des commandes ci-dessous suivant votre distribution.

# apt-get install rsyslog
# yum install rsyslog

Dans cet article, nous verrons comment mettre en place un serveur et un client Syslog.

Cette configuration permettra à tout administrateur de voir les logs de tous les hôtes dans une infrastructure à partir d’un seul serveur.

Configuration du serveur Syslog

Commençons par configurer le serveur Syslog.

Ouvrez le fichier /etc/rsyslog.conf, puis ajoutez les paramètres suivants tout en bas du fichier:

$ModLoad imudp
$UDPServerRun 514

$ModLoad imtcp
$InputTCPServerRun 514

$AllowedSender UDP, 192.168.1.0/24, 163.172.X.X
$AllowedSender TCP, 192.168.1.0/24, 163.172.X.X

$template FILENAME,"/var/log/%fromhost-ip%/syslog.log"

*.* ?FILENAME

 

Les lignes suivantes ordonnent au démon Rsyslog d’être à l’écoute sur le port 514 des deux protocoles UDP et TCP.

$ModLoad imudp
$UDPServerRun 514

$ModLoad imtcp
$InputTCPServerRun 514

Choissez le protocole que vous préferez.
Sachez toutefois que le protocole UDP est le plus rapide, mais l’inconvénient c’est qu’en cas de surcharge réseau, vous risquerez des pertes de données. Ce qui ne serait pas le cas par exemple avec le protocole TCP.
Ces paramètres ci-dessous vous permettent de restreindre la connexion vers le serveur Syslog à une adresse IP ou un groupe d’adresses IP.

$AllowedSender UDP, 192.168.1.0/24, 163.172.X.X
$AllowedSender UDP, 192.168.1.0/24, 163.172.X.X

La ligne suivante permet de définir les dossiers où seront stockés les différents logs des clients. La variable fromhost-ip permettra de créer des dossiers à partir des différentes adresses ip des clients.

$template FILENAME,"/var/log/%fromhost-ip%/syslog.log"

En effet, les modèles (templates) sont une fonctionnalité importante de Rsyslog. Ils permettent aux utilisateurs de sauvegarder les messages reçus dans leur format désiré.
Ils peuvent être également utilisés pour créer des noms dynamiques de dossiers/fichiers pour la sauvegarde des messages.

Enfin, grâce à cette dernière ligne, tous les messages provenant des clients Syslog seront enregistrés systématiquement. En d’autres termes, aucun filtre ne sera appliqué. Le filtre des logs va au-délà de la portée de ce tutoriel.

*.* ?FILENAME

Après avoir enregistré les nouveaux paramètres, redémarrez le service Rsyslog.

< p class=”terminal”># service rsyslog restart

Assurons nous ensuite que les ports du serveur Syslog sont ouverts:

Configuration du client Syslog

Chez le client, nous allons à présent ajouter l’adresse IP de notre serveur Syslog.

Pour cela, ouvrez le fichier /etc/rsyslog.conf, puis ajoutez:

*.* @adresse-ip-serveur-syslog:514

@ pour le protocole UDP
@@ pour le protocole TCP.

Dans notre test, nous choisissons de transporter nos flux à travers le protocole UDP.

Puis redémarrez le service rsyslog chez le client:

# service rsyslog restart

Sur le serveur Syslog, nous remarquons des requêtes vers le port UDP 514. Nous sommes sûrs à présent que la connexion est bien fonctionnelle entre nos deux entités.

Suivant notre configuration, un dossier est alors créé pour chaque hôte distant. Chaque dossier comprend un fichier syslog comprenant tous les logs générés par chaque système.

Ci dessous, le fichier syslog de l’hôte Ubuntu:

Le fichier syslog suivant nous permet de reconnaître une attaque sur le protocole SSH, (probablement une attaque par force brute) grâce à une règle de pare-feu prédéfinie sur le système Xtrem.

mdestroy

4 thoughts on “Comment mettre en place un serveur Syslog ?

    1. mdestroy Post author

      C’est noté, je m’en occuperai bientôt. 🙂

      Reply
  1. bouxroute

    Hello
    Petite erreur dans la conf. Au lieu de

    $AllowedSender UDP, 192.168.1.0/24, 163.172.X.X
    $AllowedSender UDP, 192.168.1.0/24, 163.172.X.X

    Mettre:

    $AllowedSender UDP, 192.168.1.0/24, 163.172.X.X
    $AllowedSender TCP, 192.168.1.0/24, 163.172.X.X

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *