Journalisation des événements avec Syslogd et Klogd sous Linux

Les tâches d'administration sous Linux sont complexes dans de nombreuses situations en raison de la quantité de processus, de services et de rôles qui sont exécutés chaque seconde et à cela nous devons ajouter les connexions, l'installation d'applications et sans oublier tous les événements que chaque application enregistre dans la distribution gérée . Heureusement pour les administrateurs et le personnel de contrôle ou d'audit, nous avons développé diverses commandes pour faciliter la gestion et le contrôle des événements système et Solvetic se concentrera donc sur deux des commandes les plus importantes à cette fin. Syslog et Klogd.

Le journal est comme un journal, où les événements, les erreurs, les modifications et les processus générés par les applications ou le système d'exploitation sont enregistrés afin de pouvoir ultérieurement lire cet enregistrement et déterminer quels événements se sont produits, notamment en cas d'erreurs ou de vulnérabilités. Les fichiers journaux sur un système Linux résident dans le répertoire / var / log. Le système de journal Linux est géré par deux démons :

SYSLOGDGénère les journaux système. Syslogd s'exécute automatiquement lorsque vous démarrez un système Linux et est responsable du stockage des rapports sur le fonctionnement de l'ordinateur. Il reçoit des messages des différentes parties du système, noyau et applications, les stocke dans différents emplacements, à la fois locaux et distants, selon un critère défini dans le fichier de configuration /etc/syslog.conf.

KLOGDGénérez les journaux du noyau. klogd dirige les messages du journal du noyau vers le journal système. L'utilisateur peut contrôler la gestion des messages du noyau en éditant le fichier de configuration syslogd. Ces applications klogd sont particulièrement utiles pour les développeurs du noyau.

1. Qu'est-ce que et comment utiliser Syslogd dans les journaux Linux


Voyons ce que c'est et comment utiliser Syslogd

Qu'est-ce que SyslogdSyslogd (utilitaires de journalisation du système Linux), est une commande qui nous donne un type de journal qui est utilisé par de nombreux programmes modernes, grâce à Syslogd, chaque message enregistré contient au moins une heure et un champ de nom d'hôte, ce qui rend les tâches de surveillance beaucoup plus simples et plus facile à analyser.

La commande Syslogd a un comportement standard BSD et les nouvelles versions de Syslogd interagissent de manière transparente avec la version de syslog disponible dans les librairies standards, ainsi, si un binaire lié aux librairies partagées standards ne fonctionne pas correctement, Syslogd affichera le comportement de cette binaire.

Étape 1
Le fichier de configuration principal est /etc/syslog.conf, et le journal est généralement spécifié avec des entrées de règle. Le sélecteur (facility.priority) et l'action sont spécifiés dans chaque ligne. Quelque chose à garder à l'esprit est que dans les distributions Linux modernes, la commande Syslogd a été remplacée par de nouvelles implémentations Syslog comme rsyslog ou syslog-ng, donc si nous voulons utiliser Syslogd, nous pouvons l'installer avec la commande suivante :

 apt installer inetutils-syslogd 

AGRANDIR

Étape 2
Là, nous devons entrer la lettre S pour confirmer le téléchargement et l'installation de Syslogd. Une fois installé on peut aller dans son fichier de configuration qui se trouve dans le chemin suivant /etc/syslog.conf :

 nano /etc/syslog.conf 

AGRANDIR

Étape 3
Nous y trouvons toutes les routes que Syslogd utilisera pour capturer les informations. La syntaxe générale de Syslogd est la suivante :

 syslogd [-a socket] [-d] [-f fichier de configuration] [-h] [-l liste d'hôtes] [-m intervalle] [-n] [-p socket] [-r] [-s liste domaine] [-S] [-v] [-x] 
Étape 4
Parmi les options disponibles, nous avons :

Spécifiez des prises supplémentairesCet argument nous permet de spécifier les sockets supplémentaires que Syslogd doit écouter, il est utilisé au cas où un démon serait exécuté dans un environnement chroot(). Il sera possible d'utiliser jusqu'à 19 prises supplémentaires.

 -une prise 

Activer le mode de débogagecet argument active le mode de débogage qui gardera Syslog au premier plan et écrira ainsi beaucoup d'informations de débogage dans le tty actuel.

 -ré

Fichier de configurationCet argument spécifie un autre fichier de configuration au lieu du fichier par défaut /etc/syslog.conf.

 -f fichier de configuration 

Bloquer le transfert de messages à distanceCe paramètre empêche Syslogd de transférer les messages qu'il reçoit des hôtes distants.

 -h

Définir le nom du réseauGrâce à ce paramètre, il est possible d'indiquer un nom d'hôte qui doit être enregistré uniquement avec son nom d'hôte simple et non avec le FQDN.

 -l hostlist (Liste des hôtes) 

Définir l'intervalle de tempsEn utilisant ce paramètre, nous pouvons spécifier l'intervalle de temps à utiliser, par défaut la valeur est de 20 minutes.

 -m intervalle 

Évitez d'exécuter SyslodgCe paramètre empêche Syslogd de s'exécuter en arrière-plan.

 -n

Définir le socket de domaineCela nous permet de spécifier un autre socket de domaine Unix au lieu de / dev / log

 -p prise

Autoriser les messages réseauCette option permettra à l'installation de recevoir des messages du réseau en utilisant un socket de domaine Internet avec le service Syslog.

 -r

Définir le nom de domaineCe paramètre spécifie un nom de domaine qui doit être supprimé avant de se connecter.

 -s liste de domaines 

Activer l'enregistrementActiver la journalisation détaillée,

 -S

Activer la version actuelleAffichez la version actuelle de Syslogd.

 -v 

AGRANDIR

Étape 5
Lors de l'exécution de l'une des options disponibles, nous pouvons voir toutes les tâches exécutées en interne :

AGRANDIR

2. Signaux dans les journaux Syslogd Linux

Étape 1
Syslogd est capable de réagir à un ensemble de signaux, une option pour envoyer un signal à Syslogd consiste à exécuter :

 kill -SIGNAL 'cat /var/run/syslogd.pid' 
Étape 2
Lorsque ce signal est exécuté, divers composants tels que. Ainsi, Syslogd est une solution pratique pour analyser les événements Linux.

S'INSCRIRECette option permet à Syslogd d'effectuer un processus de redémarrage où tous les fichiers ouverts sont fermés, le fichier de configuration sera relu et l'installation de Syslog recommencera.

SIGTERMLe service expirera.

SIGNE, SIGNE QUITTSi le débogage est activé, ceux-ci sont ignorés, sinon Syslogd expirera.

SIGUSR1Activez ou désactivez le débogage.

SIGCHLDAttendez les nouveaux messages.

3. Configurer le fichier Linux syslogd


Syslogd utilise une syntaxe quelque peu différente dans son fichier de configuration que le fichier source BSD d'origine traditionnel. La configuration de syslogd se fait via le fichier /etc/syslogd.conf. Grâce à ce fichier, il est spécifié où les différents messages doivent être acheminés. Vous pouvez laisser des lignes vides ou commenter des lignes entières avec le caractère "#"

Pour que syslog accepte les connexions à distance, nous devons ajouter le paramètre -r

 SYSLOGD_OPTIONS = "-r -m 0" 
Normalement syslogd occupe le port 514 il faut vérifier que le firewall ne le bloque pas pour tester sur quel port il s'exécute, depuis le terminal on écrit le code suivant
 grep syslog / etc / services 
Dans les journaux de service sur cette ligne, nous pouvons voir que les journaux "mail, cron, info" vont dans le répertoire des messages
 * .info; mail.none; authpriv.none; cron.none/var/log/messages 
Nous allons essayer d'envoyer un message à tous les logs avec la commande suivante
 grep "Message de test" / var / log / * 
Dans ce cas, nous pouvons voir que plusieurs journaux sont avec des autorisations refusées, ils ne peuvent donc pas être écrits.

Il faudrait déterminer s'il est nécessaire de changer les permis ou non selon nos besoins. Les journaux ont plusieurs niveaux de priorité des messages (de la priorité la plus faible à la plus élevée :

Journaux d'échec, d'erreur et d'avertissement

 débogage, info, avis, avertissement, avertissement, erreur, erreur, critique, alerte, émergence et panique 

Journaux de type de messageJournaux de types de messages divers

 auth, authpriv, cron, démon, kern, lpr, courrier, marque, nouvelles, sécurité, syslog, utilisateur, uucp 
Les plus importants sont
  • var/log/messages : on retrouvera ici les logs qui arrivent avec priorité info (information), notice (notification) ou warn (warning).
  • /var/log/kern.log : les logs du noyau, générés par klogd, sont stockés ici.
  • /var/log/auth.log : ce journal enregistre les connexions dans le système, les heures auxquelles nous faisons su, etc. Les tentatives infructueuses sont enregistrées dans des lignes avec les informations du type de clé invalide ou de connexion invalide.
  • /var/log/dmesg: les informations générées par le noyau lors du démarrage du système sont stockées dans ce fichier.

Ces fichiers journaux accumulent des informations tout le temps, de sorte qu'à un moment donné, ils peuvent prendre beaucoup de place. Pour résoudre ce problème, nous pouvons le compresser ou effectuer une sauvegarde si cela est vraiment nécessaire. Voici quelques changements à garder à l'esprit :

Utilisation de caractères génériquesIl est utilisé comme caractère générique pour toutes les priorités et services ci-dessus, en fonction de son utilisation (que ce soit avant ou après le caractère de séparation `. ').

 "*" (astérisque) = 

Ne pas marquer la prioritéIndique qu'il n'y a pas de priorité définie pour le service de la ligne sélectionnée.

 "": (Vide, espace, nul) 

Choisissez différents servicesPermet de spécifier plusieurs services avec le même niveau de priorité sur la même ligne.

 "," (manger) 

Contrôler différents messagesVous permet de diriger les messages de divers services et priorités vers le même destinataire.

 ";" (point-virgule) 

Choisissez la priorité des messagesCela nous donne la possibilité de ne stocker que les messages avec la priorité exacte spécifiée.

 "=" (Égal) 

4. Qu'est-ce que et comment utiliser Klogd dans les journaux Linux

Qu'est-ce que KlogdKlogd (Kernel Log Daemon) est un démon système qui a été développé pour intercepter et enregistrer les messages du noyau Linux. La fonction de la commande Klogd se concentre sur la capture de plusieurs instances de noyau telles que la source, la hiérarchisation et la résolution des adresses de noyau.

Dans les environnements Linux, nous avons deux sources principales d'informations sur le registre du noyau, telles que :

  • Le système de fichiers /proc
  • L'interface syscall (sys_syslog)
La commande Klogd a été conçue pour choisir la source d'informations la plus pratique pour l'affichage des informations, pour y parvenir, tout d'abord, elle vérifie la présence d'un système de fichiers / proc qui est monté, s'il existe, le / proc file / kmsg est utilisé comme source d'informations sur le journal du noyau, au cas où le système de fichiers proc n'est pas monté, Klogd utilisera un appel système afin d'obtenir les messages du noyau. Dans le cas où les messages du noyau sont redirigés via le démon syslogd, le démon Klogd, depuis sa version 1.1, est capable de hiérarchiser les messages du noyau, cette priorité est dans une plage où la priorité du message du noyau est codée comme un seul chiffre numérique dans.

Lorsqu'un message est reçu du noyau, le démon Klogd lira le niveau de priorité assigné et lui donnera le niveau de priorité basé sur le message syslog. Lors de l'utilisation de Klogd, il sera également possible de modifier l'affichage des messages du noyau dans la console système, dans un noyau commun, le niveau de journalisation de la console par défaut est défini sur 7, ainsi, tous les messages avec un niveau de priorité inférieur à 7 (priorité la plus élevée ) apparaîtra sur la console. Les messages de niveau de priorité 7 sont considérés comme des messages de "débogage" et n'apparaîtront donc pas sur la console afin de ne pas submerger les autres événements du noyau d'informations.

Klogd a une fonctionnalité appelée Kernel Address Resolution par laquelle, si le noyau détecte une condition d'erreur interne, un protocole d'erreur de protection générale est automatiquement activé. Cela fait partie de la procédure de traitement GPF, dans laquelle le noyau imprime un rapport d'état qui indique l'état du processeur lorsque le défaut est généré, dans ce résultat, nous verrons des détails tels que le contenu des registres du microprocesseur, le contenu du la pile du noyau et une surveillance des fonctions qui s'exécutaient avant l'erreur.

Le processus de résolution des adresses numériques à partir des résultats des défauts de protection peut être effectué manuellement ou via le programme ksymoops inclus dans les sources du noyau. La commande Klogd prend en charge le problème du diagnostic des échecs de protection dans les modules chargeables du noyau actuels.

Étape 1
Comme Syslogd, Klog a été remplacé dans les distributions actuelles par des commandes plus dynamiques, donc pour son installation nous exécuterons ce qui suit. Là, nous entrons la lettre S pour confirmer le téléchargement et l'installation.

 apt installer busybox-syslogd 

AGRANDIR

Étape 2
La syntaxe de Klogd est la suivante :

 klogd [-cn] [-d] [-f nomf] [-iI] [-n] [-o] [-p] [-s] [-k nomf] [-v] [-x] [-2 ] 
Étape 3
Ces options sont :

Définir le niveau de journalisationCe paramètre définit le niveau de journalisation par défaut pour les messages de la console vers n.

 -c n 

Mode débogagecette option active le mode de débogage.

 -ré 

Messages de journalfile enregistre les messages au nom de fichier spécifié au lieu de l'installation de syslog.

 -F 

Identifier les démons en cours d'exécutionidentifie le démon klogd en cours d'exécution. Les deux commutateurs contrôlent le chargement/rechargement des informations sur les symboles.

 -je -je 

Arrêter klogd en arrière-planEmpêcher Klogd de s'exécuter en arrière-plan.

 -n 

Lecture complète sur les tampons de messagesCette option permet à Klogd de lire et d'enregistrer tous les messages trouvés dans les tampons de messages du noyau.

 -ou alors 

Forcer l'appel systèmeForce la commande Klogd à utiliser l'interface d'appel système pour les tampons de messages du noyau.

 -s 

Voir la version KlogdImprimez la version Klogd.

 -v 

AGRANDIR

Étape 4
Si nous voulons lire tous les événements après la connexion, nous allons exécuter ce qui suit :

 klogd -o -f ./krnl.msg 
Étape 5
Après cela, il sera possible d'accéder au contenu dudit fichier :

AGRANDIR

5. Signaux Klogd sur Linux


La commande Klogd peut répondre à huit (8) signaux qui sont : SIGHUP, SIGINT, SIGKILL, SIGTERM, SIGTSTP, SIGUSR1, SIGUSR2 et SIGCONT. Les signaux SIGINT, SIGKILL, SIGTERM et SIGHUP permettent au démon de fermer les sources du journal du noyau et de terminer le processus correctement tandis que les signaux SIGTSTP et SIGCONT sont utilisés pour démarrer et arrêter le journal du noyau.

Étape 1
Par exemple, si nous voulons démonter le système de fichiers /proc, nous devons exécuter les commandes suivantes :

 # kill -TSTP pid # umount / proc # kill -CONT pid
Étape 2
Certains fichiers à utiliser avec Klogd sont :

  • /proc/kmsg : est le fichier source des messages du noyau klogd
  • /var/run/klogd.pid : est le fichier qui contient l'identifiant de processus de klogd
  • /boot/System.map, /System.map, /usr/src/linux/System.map - Ce sont les emplacements par défaut pour les mappages système du noyau.

Comme nous pouvons le voir, nous avons ces deux commandes utiles et essentielles pour une gestion correcte et complète des événements du noyau sous Linux.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave