La journalisation syslog Master 1 ère année Sécurité des Systèmes Informatique La journalisation syslog syslogd est un service (ou daemon) qui journalise les événements du système Refus de connexion par su Arrêt, redémarrage Problème réseau L'enregistrement des événements systèmes est géré par deux programmes : klogd et syslogd Utilise le fichier de configuration /etc/syslog.conf Attention! Tous les programmes tournant sur votre machine n'utilisent pas syslog.
Le fichier /etc/syslog.conf Master 1 ère année Sécurité des Systèmes Informatique Le fichier /etc/syslog.conf # Log tous les messages du noyau vers la console. # En plus, les messages sont envoyés vers le fichier /var/log/kernel kern.* /dev/console kern.* /var/log/kernel # Log tous les messages dans le fichier messages à partir du niveau info # (il ne manque donc que debug par rapport au tableau précédent) # Sauf les messages du mail, que l'on place dans un autre fichier et les messages authpriv *.info;mail.none;authpriv.none /var/log/messages # Placer ici les messages que seul l'administrateur a le droit de voir. # authpriv donne les connexions infructueuses, les connexions avec la commande su. authpriv.* /var/log/secure # Log tous les messages de mail et les place dans le fichier maillog.. mail.* /var/log/maillog # Log tous les messages d'urgence rendant le système instable dans tous les fichiers. *.emerg * # Log les messages uucp et news dans un fichier spécial uucp,news.crit /var/log/spooler Critère (catégorie.gravité) Destination
Critère entité.gravité Master 1 ère année Sécurité des Systèmes Informatique Critère entité.gravité kernel (kern) correspondant au noyau système. user 1 correspondant au processus ne faisant pas partie de kernel. mail 2 correspondant au mécanisme du courrier. daemon 3 correspondant aux démons systèmes. auth 4 correspondant à l'authentification. syslog 5 correspondant à Syslog lui-même. lpr 6 correspondant aux processus d'impression. news 7 correspondant aux serveurs de news. uucp 8 correspondant aux programmes fondés sur UUCP. cron 9 correspondant à Cron lui-même. authpriv 10 correspondant à AUTH, mais n'étant pas destinés à être publics ftp 11 correspondant au FTP (serveur et client). ntp 12 correspondant aux applications NTP. local[0-7] 16 à 23 réservé pour des usages propres L’entité permet de préciser le type des messages. Les entités 13, 14 et 15 sont très peu utilisées.
Critère entité.gravité Master 1 ère année Sécurité des Systèmes Informatique Critère entité.gravité 7 debug Messages de debogage 6 info Messages d'information 5 notice Messages un peu plus importants que les messages info 4 Warning ou warn Messages d'avertissement 3 err Messages d'erreur 2 crit Situation critique 1 alert Situation critique nécessitant une intervention immédiate emerg ou panic Système inutilisable La liste de gravité, classée de la moins grave à la plus grave. Tous les messages de sévérité plus graves sont inclus, ainsi si vous choisissez sévérité err, vous avez aussi les messages crit, alert, et emerg.
Sécurité des Systèmes Informatique Master 1 ère année Sécurité des Systèmes Informatique Destination Les actions peuvent être de plusieurs types: Envoie dans un fichier / Envoie vers le syslog d'une autre machine @ Envoie dans un tube nommé (pour le débogage) | Envoie vers un terminal ou une console (/dev/console) Liste d'utilisateurs
Sécurité des Systèmes Informatique Master 1 ère année Sécurité des Systèmes Informatique Quelques exemples kern.* /var/adm/kernel kern.crit @finlandia kern.crit /dev/console kern.info;kern.!err /var/adm/kernel-info Tous les messages noyau sont enregistrés dans /var/adm/kernel Les messages de niveau critique sont envoyés vers finlandia Ils sont également écrits sur la console Tous les messages noyau du niveau info jusqu'à warning inclus (ceux supérieur à err sont exclus) sont logés *.=info;*.=notice;mail.none /var/log/messages Tous les messages de niveau info et de niveau notice sont envoyés vers /var/log/messages sauf ceux utilisant le service de courrier
Sécurité des Systèmes Informatique Master 1 ère année Sécurité des Systèmes Informatique Astuce Fonction log ajoutée dans un service log() { tail –30 /var/log/$NOM_DU_SERVICE.log } La commande ci-dessous affiche les dernières lignes du fichier log correspondant au service console service $NOM_DU_SERVICE log
Sécurité des Systèmes Informatique Master 1 ère année Sécurité des Systèmes Informatique A savoir Récupérer les log d’un routeur local7.debug /var/log/network.log La règle pour connaître l’entité utilisée est: valeur = 8 * entité + gravité Ce qui donne une série de valeur allant de 0 ( 8 x kernel + emerg ) à 191 ( 8 x local7 + debug ).
Sécurité des Systèmes Informatique Master 1 ère année Sécurité des Systèmes Informatique Outil logwatch logwatch programme écrit en Perl analyse les logs du système et envoie un courriel à l'administrateur avec un résumé très bien structuré avec plus ou moins de détails selon vos préférences Analyser les logs du système est une tâche difficile Peu d’administrateurs prennent la peine de le faire, avec logwatch, c’est un courriel qui se lis en peu de temps
Sécurité des Systèmes Informatique Master 1 ère année Sécurité des Systèmes Informatique Outil ksystemlog Ksystemlog est un outil graphique de visualisation des logs
Sécurité des Systèmes Informatique Master 1 ère année Sécurité des Systèmes Informatique Outil logrotate logrotate est conçu pour faciliter l'administration des systèmes qui génèrent un grand nombre de journaux. Il automatise la permutation, la compression, la suppression et l'envoi des journaux. Chaque journal peut être traité Quotidiennement, Hebdomadairement, Mensuellement ou quand il devient trop volumineux
Sécurité des Systèmes Informatique Master 1 ère année Sécurité des Systèmes Informatique syslog-ng syslog-ng essaye de rajouter les manques de syslogd : Une configuration puissante Un tri des messages par leur contenu La portabilité Une meilleure redirection des messages sur le réseau La possibilité de le mettre en cage (chroot) UDP et TCP utilisés pour le transport des journaux Chiffrer et authentifier le trafic réseau Compresser les journaux
Sécurité des Systèmes Informatique Master 1 ère année Sécurité des Systèmes Informatique syslog-ng Dans Syslog-ng le chemin des messages (ou la route des messages) consiste en une ou plusieurs sources, une ou plusieures règles de filtrage et une ou plusieures destinations (trappes). Un message rentre dans syslog-ng par l'une de ses sources, si ce message correspond au règles de filtrages, il part alors vers l'une des destinations. Source Destination Filtre
Configuration de syslog-ng Master 1 ère année Sécurité des Systèmes Informatique Configuration de syslog-ng Les sources, les destinations et les filtres sont liés ensemble grâce à la commande suivante : log{ source s1;source s2; ... filter f1; filter f2; ... destination d1; destination d2; ... }; Les messages peuvent provenir de n'importe laquelle des sources, et doivent passer tous les filtres énumérés (ce qui équivaut à un ET) pour être envoyés vers toutes les destinations. Exemple source s_network { udp( port(514)); }; filter f_lan3 { netmask("192.168.1.3/255.255.248.0"); }; destination d_lan3 { file("/var/log/lan3.log"); }; log { source(s_network); filter(f_lan3); destination(d_lan3); };
Sécurité des Systèmes Informatique Master 1 ère année Sécurité des Systèmes Informatique syslog-ng