Installer un serveur Syslog¶
1. Objectif du cours¶
Comprendre le rôle d’un serveur Syslog, installer Rsyslog et LogAnalyzer sur Debian 11, et configurer la centralisation des logs en base de données pour consultation via une interface web.
2. Notions et définitions essentielles¶
- Syslog : protocole de journalisation (RFC 3164/3195/5424/5429), utilise par défaut le port 514/UDP.
- Log : entrée de journal composée typiquement de [date][heure][nom_hôte][source][niveau][message].
- NTP : Network Time Protocol, synchronisation horaire globale, RFC 5905, port 123/UDP.
- Rsyslog : démon sur Linux recevant/relayant les messages syslog, peut écrire en base MySQL.
- LogAnalyzer : application PHP open source (GPL) fournissant une interface web d’analyse des logs.
3. Fonctionnement et principes¶
- Centralisation : les agents/clients envoient leurs logs vers un serveur Syslog (modèle client/serveur) pour faciliter l’analyse et la corrélation d’événements.
- Structure des logs : dates, émetteur, priorité (catégorie + niveau de gravité). La gravité va de 0 (Emergency, le plus critique) à 7 (le moins critique).
- Rsyslog + base : Rsyslog peut insérer les messages dans une base MySQL afin que LogAnalyzer récupère et affiche ces données via une interface web.
- Importance de l’heure : une synchronisation NTP fiable est indispensable pour la cohérence des horodatages et la corrélation d’événements dans une infrastructure.
4. Commandes et manipulations¶
Groupées par procédure, uniquement commandes présentes dans le document :
- Passer root :
-
su — basculer en compte root.
-
Installer LAMP et PHP (pré-requis pour LogAnalyzer) :
-
apt-get install apache2 mariadb-server php php-mysql php-gd — installe Apache, MariaDB et PHP.
-
Installer la prise en charge MySQL pour Rsyslog :
-
apt-get install rsyslog-mysql -y — installe le paquet rsyslog-mysql et lance la configuration de la base.
-
Configurer Rsyslog pour réception réseau et insertion en base :
-
nano /etc/rsyslog.conf — éditer le fichier de configuration pour décommenter le module de réception TCP et l’input (activer la réception réseau) et ajouter la directive d’écriture en base (format : . :ommysql:localhost,Syslog,rsyslog,
). -
Appliquer la configuration :
-
sudo service rsyslog restart — redémarrer rsyslog pour prendre en compte les changements.
-
Déploiement de LogAnalyzer (téléchargement et préparation web) :
- cd /srv puis wget
— récupérer l’archive. - tar -zxvf /srv/loganalyzer-4.1.12.tar.gz — décompresser l’archive.
- mkdir /var/www/html/syslogweb — créer le répertoire web.
- cp -a /srv/loganalyzer-4.1.12/src/* /var/www/html/syslogweb — copier les fichiers dans le répertoire web.
-
chown -R www-data:www-data /var/www/html/syslogweb — donner les droits Apache sur les fichiers.
-
Navigation web :
- Accéder à l’URL locale (ex. localhost/syslogweb) pour lancer l’assistant d’installation de LogAnalyzer.
5. Sécurité et bonnes pratiques¶
- Conformité RGPD & recommandations : consulter CNIL et ANSSI avant de déployer un serveur de logs (exigences de traçabilité et protection des données).
- Mots de passe : conserver et sécuriser le mot de passe de l’utilisateur rsyslog créé lors de l’installation de rsyslog-mysql (utilisé dans la configuration).
- Privilèges minimaux : affecter la propriété www-data aux fichiers web pour limiter les droits.
- Édition prudente des configurations : supprimer le caractère # pour décommenter (attention à ne pas laisser de lignes incorrectes).
- Utiliser root uniquement lorsque nécessaire (su), puis revenir à un compte non privilégié pour limiter les risques.
6. Points essentiels à retenir pour le TSSR¶
- Syslog centralise logs d’OS, d’applications et de matériel ; port standard 514/UDP.
- Les logs Linux se trouvent principalement dans /var/log ; sur Windows via l’Observateur d’événements et C:\Windows\System32\winevt\logs.
- Les niveaux de gravité vont de 0 (Emergency) à 7 (le moins sévère).
- NTP (port 123/UDP, RFC 5905) est indispensable pour la cohérence des horodatages des logs.
- Rsyslog peut stocker les messages en base MySQL ; LogAnalyzer fournit l’interface web d’analyse.
- Lors de l’installation, une base Syslog et un utilisateur (rsyslog) sont créés automatiquement par rsyslog-mysql.
- LogAnalyzer est une application PHP GPL qu’il faut déployer dans le répertoire web et configurer via l’assistant.
- Vérifier la connexion base → LogAnalyzer et la création des tables avant d’achever l’installation.
- Configurer la réception réseau (activation des modules IMTCP/input) pour recevoir des logs distants.
- Protéger la base et les accès Web (identifiants créés dans l’installation LogAnalyzer).
7. Tableau récapitulatif¶
| Élément | Emplacement / Port | Rôle principal | Remarque |
|---|---|---|---|
| Syslog (protocole) | port 514 UDP | Centraliser journaux | RFCs : 3164/3195/5424/5429 |
| NTP | port 123 UDP | Synchronisation temporelle | RFC 5905 |
| Logs Linux | /var/log | Stockage local des journaux | Contient fichiers par service |
| Logs Windows | Observateur d’événements / C:\Windows\System32\winevt\logs | Consultation des événements | GUI et fichiers évènementiels |
| Rsyslog vs LogAnalyzer | Rsyslog : collecte/injection BDD. LogAnalyzer : interface web | Collecte vs visualisation | Les deux forment la solution complète |
8. Vérifications pratiques¶
- Pendant l’installation de rsyslog-mysql : une fenêtre de configuration apparaît et une base Syslog est créée automatiquement (vérifiable dans l’assistant).
- Après modification de rsyslog.conf et redémarrage : s’assurer que le service rsyslog redémarre sans erreur.
- Dans l’assistant LogAnalyzer : l’étape montrant la connexion à la base doit indiquer « connecté » (étape 4).
- L’étape suivante doit montrer la création des tables sans erreur (étape 5).
- À la fin de l’installation de LogAnalyzer, accéder à l’interface et vérifier que les événements, leur sévérité et les tags sont affichés.
9. Flashcards Anki¶
Quel port utilise Syslog par défaut :: 514 UDP Où se trouvent les logs sur Linux :: /var/log Où retrouve-t-on les logs sur Windows selon le cours :: C:\Windows\System32\winevt\logs (Observateur d’événements) Quel est l’intervalle des niveaux de gravité des logs :: 0 à 7 Que signifie le niveau 0 dans la gravité des logs :: Emergency (le plus grave) Quel protocole sert à la synchronisation temporelle des hôtes :: NTP (Network Time Protocol) Quel port utilise NTP :: 123 UDP Comment s’appelle l’utilisateur créé par rsyslog-mysql selon le document :: rsyslog Quel langage et licence sont indiqués pour LogAnalyzer :: PHP et licence GPL (open source) Quel répertoire web a été créé pour LogAnalyzer dans l’exemple :: /var/www/html/syslogweb