Comment gérer les journaux système (configurer, tourner et importer dans la base de données) dans RHEL 7 - partie 5

Comment gérer les journaux système (configurer, tourner et importer dans la base de données) dans RHEL 7 - partie 5

Afin de garder votre Rhel 7 Systèmes sécurisés, vous devez savoir comment surveiller toutes les activités qui se déroulent sur de tels systèmes en examinant les fichiers journaux. Ainsi, vous pourrez détecter toute activité inhabituelle ou potentiellement malveillante et effectuer un dépannage du système ou prendre une autre mesure appropriée.

Examen RHCE: Gérer les journaux système Susslogd et Logrotate - Partie 5

Dans Rhel 7, Le démon RsysLogd est responsable de l'exploitation forestière du système et lit sa configuration à partir de / etc / rsyslog.confli (Ce fichier spécifie l'emplacement par défaut pour tous les journaux système) et à partir des fichiers à l'intérieur / etc / rsyslog.d, si seulement.

Configuration de Rsyslogd

Une inspection rapide du rsyslog.confre sera utile pour commencer. Ce fichier est divisé en 3 sections principales: Modules (puisque RSYSLOG suit un design modulaire), Mondial directives (utilisées pour définir les propriétés globales du démon Rsyslogd), et Règles. Comme vous le supposerez probablement, cette dernière section indique ce qui est enregistré ou montré (également connu sous le nom de sélecteur) et où, et sera notre objectif tout au long de cet article.

Une ligne typique dans rsyslog.confli est comme suit:

Configuration de Rsyslogd

Dans l'image ci-dessus, nous pouvons voir qu'un sélecteur se compose d'une ou plusieurs paires Installation: priorité Séparé par les demi-colons, où l'installation décrit le type de message (reportez-vous à la section 4.1.1 dans RFC 3164 pour voir la liste complète des installations disponibles pour RSYSLOG) et la priorité indique sa gravité, qui peut être l'un des mots auto-explicites suivants:

  1. déboguer
  2. Info
  3. avis
  4. avertissement
  5. se tromper
  6. critiquer
  7. alerte
  8. émerger

Bien que ce ne soit pas une priorité elle-même, le mot-clé aucun signifie aucune priorité dans toute l'installation donnée.

Note: Qu'une priorité donnée indique que tous les messages de cette priorité et supérieurs doivent être enregistrés. Ainsi, la ligne dans l'exemple ci-dessus instruit le rsyslogd démon pour enregistrer tous les messages d'informations prioritaires ou plus (quelle que soit l'installation) sauf celles appartenant à poster, authriv, et cron Les services (aucun message provenant de ces installations ne sera pris en compte) pour / var / log / messages.

Vous pouvez également regrouper plusieurs installations en utilisant le panneau Colon pour appliquer la même priorité à tous. Ainsi, la ligne:

*.info; courrier.Aucun; Authpriv.Aucun; cron.Aucun / var / log / messages 

Pourrait être réécrit comme

*.info; mail, authpriv, cron.Aucun / var / log / messages 

En d'autres termes, les installations poster, authriv, et cron sont regroupés et le mot-clé aucun est appliqué aux trois.

Création d'un fichier journal personnalisé

Pour enregistrer tous les messages de démon à / var / log / tecmint.enregistrer, Nous devons ajouter la ligne suivante rsyslog.confli ou dans un fichier séparé (plus facile à gérer) à l'intérieur / etc / rsyslog.d:

démon.* / var / log / tecmint.enregistrer 

Redémarrons le démon (notez que le nom du service ne se termine pas par un d):

# systemctl redémarrer rsyslog 

Et vérifiez le contenu de notre journal personnalisé avant et après le redémarrage de deux démons aléatoires:

Créer un fichier journal personnalisé

En tant qu'exercice d'auto-étude, je vous recommande de jouer avec les installations et les priorités et de enregistrer des messages supplémentaires aux fichiers journaux existants ou d'en créer de nouveaux comme dans l'exemple précédent.

Journaux rotatifs à l'aide de Logrotate

Pour empêcher les fichiers journaux de croître sans cesse, le logrotate L'utilité est utilisée pour faire pivoter, compresser, supprimer et alternativement envoyer des journaux, assouplissant l'administration de systèmes qui génèrent un grand nombre de fichiers journaux.

Lire suggérée: Comment configurer et gérer la rotation des journaux à l'aide de Logrotate dans Linux

Logrotate fonctionne quotidiennement en tant que cron emploi (/ etc / cron.quotidien / Logrotate) et lit sa configuration à partir de / etc / Logrotate.confli et à partir de fichiers situés dans / etc / Logrotate.d, si seulement.

Comme dans le cas de rsyslog, Même lorsque vous pouvez inclure des paramètres pour des services spécifiques dans le fichier principal, la création de fichiers de configuration distincts pour chacun aidera à mieux organiser vos paramètres.

Jetons un coup d'œil à un logrotate.confli:

Configuration de Logrotate

Dans l'exemple ci-dessus, logrotate effectuera les actions suivantes pour / var / loh / wtmp: tenter de tourner une seule fois par mois, mais seulement si le fichier est au moins 1 Mb en taille, créez ensuite un tout nouveau fichier journal avec des autorisations définies sur 0664 et la propriété donnée à la racine et au groupe de l'utilisateur utmp. Ensuite, ne conservez qu'un seul journal archivé, comme spécifié par la directive Rotate:

Logrotate Journaux mensuellement

Voyons maintenant un autre exemple comme trouvé dans / etc / Logrotate.d / httpd:

Files journaux Apache tournants

Vous pouvez en savoir plus sur les paramètres pour logrotate Dans ses pages d'homme (Man Logrotate et Man Logrotate.conf). Les deux fichiers sont fournis avec cet article au format PDF pour votre commodité en lecture.

En tant qu'ingénieur système, ce sera à peu près à vous de décider de la durée des journaux et dans quel format, selon que vous avez / var Dans une partition distincte / / volume logique. Sinon, vous voulez vraiment envisager de supprimer les anciens journaux pour économiser l'espace de stockage. D'un autre côté, vous pourriez être obligé de tenir plusieurs journaux pour une audit de sécurité future en fonction des politiques internes de votre entreprise ou du client.

Enregistrer les journaux à une base de données

Bien sûr, examiner les journaux (même à l'aide d'outils tels que grep et les expressions régulières) peuvent devenir une tâche plutôt fastidieuse. Pour cette raison, rsyslog nous permet de les exporter dans une base de données (OTB Les SGBDR prises en charge incluent MySQL, MARIADB, PostgreSQL et Oracle.

Cette section du tutoriel suppose que vous avez déjà installé le Mariadb Serveur et client dans la même zone RHEL 7 où les journaux sont gérés:

# yum Update && yum install mariaDb mariaDb-server mariaDb-client rsyslog-mysql # systemctl activer mariaDB && systemctl start mariaDB 

Puis utilisez le mysql_secure_installation utilitaire pour définir le mot de passe pour l'utilisateur racine et d'autres considérations de sécurité:

Base de données MySQL sécurisée

Note: Si vous ne voulez pas utiliser le Mariadb Utilisateur racine pour insérer des messages de journal dans la base de données, vous pouvez configurer un autre compte utilisateur pour le faire. Expliquer comment faire cela est hors de l'étendue de ce tutoriel, mais est expliqué en détail dans la base de connaissances MariaDB. Dans ce tutoriel, nous utiliserons le compte racine pour la simplicité.

Ensuite, téléchargez le crééb.SQL Script à partir de GitHub et importez-le dans votre serveur de base de données:

# mysql -u root -p < createDB.sql 
Enregistrer les journaux du serveur à la base de données

Enfin, ajoutez les lignes suivantes à / etc / rsyslog.confli:

$ Modload ommysql $ actionomysqlServerport 3306 *.*: ommysql: localhost, syslog, root,Votre mot-d'œuvre 

Redémarrage rsyslog et le serveur de base de données:

# systemctl redémarrer rsyslog # systemctl redémarrer mariaDB 

Interroger les journaux à l'aide de la syntaxe SQL

Effectuez maintenant certaines tâches qui modifieront les journaux (comme les services d'arrêt et de démarrage, par exemple), puis connectez-vous à votre serveur DB et utilisez des commandes SQL standard pour afficher et rechercher dans les journaux:

Utiliser syslog; SELECT reçueat, message de SystemEvents; 
Requête des journaux dans la base de données

Résumé

Dans cet article, nous avons expliqué comment configurer la journalisation du système, comment faire tourner les journaux et comment rediriger les messages vers une base de données pour une recherche plus facile. Nous espérons que ces compétences seront utiles lorsque vous vous préparez à l'examen RHCE et dans vos responsabilités quotidiennes.

Comme toujours, vos commentaires sont plus que les bienvenus. N'hésitez pas à utiliser le formulaire ci-dessous pour nous atteindre.