GNU/Linux >> Tutoriels Linux >  >> Linux

Linux :logwatch(8) est trop bruyant. Comment puis-je contrôler le niveau de bruit ?

Solution 1 :

Dans l'ensemble, la documentation disponible pour Logwatch manque d'explications adéquates et est souvent beaucoup trop vague. J'ai reconstitué quelques exemples utiles et j'ai réduit le bruit Logwatch de plus de 95 %.

Voici ce que j'ai trouvé.

Gardez à l'esprit que vous pouvez trouver de la documentation Logwatch sur /usr/share/doc/logwatch-*/HOWTO-Customize-LogWatch , et il contient quelques exemples utiles.

  1. Sur RHEL/CentOS/SL, la configuration logwatch par défaut est sous /usr/share/logwatch/default.conf/logwatch.conf

    Ces paramètres peuvent être remplacés en plaçant votre configuration locale sous /etc/logwatch/conf/logwatch.conf . Placez ce qui suit dans ce fichier pour indiquer à logwatch d'ignorer complètement les services tels que "httpd" et les vérifications quotidiennes de l'utilisation du disque :

    # Don't spam about the following Services
    Service = "-http"
    Service = "-zz-disk_space"
    
  2. Parfois, je ne veux pas désactiver complètement logwatch pour un service spécifique, je veux juste affiner les résultats pour les rendre moins bruyants. /usr/share/logwatch/default.conf/services/*.conf contient la configuration par défaut des services. Ces paramètres peuvent être remplacés en plaçant votre configuration locale sous /etc/logwatch/conf/services/$SERVICE.conf . Malheureusement, la capacité de logwatch ici est limitée, et de nombreux exécutables de logwatch sont remplis de Perl non documenté. Votre choix est de remplacer l'exécutable par autre chose ou d'essayer de remplacer certains paramètres à l'aide de /etc/logwatch/conf/services .

    Par exemple, j'ai un scanner de sécurité qui exécute des analyses sur le réseau. Lors de l'exécution des tests, l'analyseur de sécurité génère de nombreux messages d'erreur dans les journaux d'application. J'aimerais que logwatch ignore les erreurs de mes scanners de sécurité, mais me prévienne quand même des attaques d'autres hôtes. Ceci est couvert plus en détail dans Logwatch :Ignorer certaines adresses IP pour les vérifications SSH et PAM ?. Pour ce faire, je place ce qui suit sous /etc/logwatch/conf/services/sshd.conf :

    # Ignore these hosts
    *Remove = 192.168.100.1
    *Remove = X.Y.123.123
    # Ignore these usernames
    *Remove = testuser
    # Ignore other noise. Note that we need to escape the ()
    *Remove = "pam_succeed_if\(sshd:auth\): error retrieving information about user netscan.*
    

    "

  3. logwatch vous permet également de supprimer la sortie des e-mails logwatch en plaçant des expressions régulières dans /etc/logwatch/conf/ignore.conf . HOWTO-Personnaliser-LogWatch dit :

    ignore.conf :ce fichier spécifie des expressions régulières qui, lorsqu'elles correspondent à la sortie de logwatch, suppriment la ligne correspondante, quel que soit le service en cours d'exécution.

    Cependant, je n'ai pas eu beaucoup de chance avec cela. Mes exigences nécessitent une instruction conditionnelle, qui ressemble à quelque chose comme "S'il y a des avertissements de sécurité dus à mon scanner de sécurité, alors n'imprimez pas la sortie. Mais s'il y a des avertissements de sécurité de mon scanner de sécurité et de certains méchants, puis imprimez les parties utiles-- L'en-tête qui dit "Échec des connexions de :", les IP des mauvais hôtes, mais pas les IP des scanners.'

  4. Pincez-le à la source (comme suggéré par @ user48838). Ces messages sont générés par une application, puis Logwatch vous envoie joyeusement les résultats. Dans ces cas, vous pouvez modifier l'application pour vous connecter moins.

    Ce n'est pas toujours souhaitable, car parfois vous voulez que les journaux complets soient envoyés quelque part (vers un serveur syslog central, un serveur IDS central, Splunk, Nagios, etc.), mais vous ne voulez pas que logwatch vous envoie un e-mail à ce sujet depuis chaque serveur, chaque jour.

Solution 2 :

Oui - logwatch est souvent trop bruyant. Vous avez déjà mentionné la désactivation complète des vérifications.

Si vous ne voulez pas faire cela, vous devez empêcher certains événements d'apparaître. Par exemple - ce n'est pas intéressant si nagios se connecte via ssh à un système DMZ. Mais c'est intéressant s'il y a d'autres connexions via ssh.

Nous utilisons rsyslog au lieu de ksyslogd (installez d'abord rsyslog, puis supprimez ksyslogd). Avec rsyslog, vous pouvez affiner ce qui va dans les journaux et ce qui ne l'est pas (par exemple, créez une expression qui supprime les messages de sshd contenant "nagios connecté"). De cette façon, logwatch ne rapportera que des informations utiles.

Un autre cas pourrait être xinetd - je ne veux pas être informé des connexions réussies - cela peut être configuré dans xinetd lui-même - sans désactiver le contrôle de journalisation pour xinetd.

Solution 3 :

Comme point d'intérêt, j'ai suivi l'option 2 de la réponse de Stefan Lasiewski, mais pour mes besoins, je voulais n'inclure que des lignes spécifiques plutôt que d'exclure tout le bruit que je ne voulais pas.

Je configurais vsftpd donc j'ai créé /etc/logwatch/conf/services/vsftpd.conf et au lieu d'utiliser quelque chose comme *Remove = testuser qui supprime les lignes contenant le texte testuser J'ai utilisé la ligne *OnlyContains = "testuser" qui ne renvoie que les lignes contenant ce texte.

Ces 2 scripts fonctionnent de manière très basique en utilisant grep et grep -v .

La différence étant que vous pouvez utiliser *Remove autant de fois que vous voulez mais avec *OnlyContains vous devez l'utiliser une fois si vous voulez quelque chose ou autre chose ou autre chose. Donc, pour plusieurs valeurs, vous faites *OnlyContains = "testuser|testuser2|testuser3"


Linux
  1. Comment Linux est arrivé sur le mainframe

  2. Comment puis-je lier symboliquement un fichier sous Linux?

  3. Comment puis-je obtenir l'état du clavier sous Linux?

  4. Comment contrôlerais-je la sortie de l'alimentation dans les ports USB sous Linux ?

  5. Comment puis-je voir la taille des fichiers et des répertoires sous Linux ?

Comment identifier le chipset d'un périphérique USB sous Linux ?

en utilisant Linux, comment puis-je passer le contenu d'un fichier en tant que paramètre à un exécutable ?

Comment puis-je compter le nombre de dossiers dans un lecteur sous Linux ?

Comment puis-je trouver le modèle de matériel sous Linux ?

Comment fonctionne une interface graphique Linux au niveau le plus bas ?

Comment puis-je masquer la sortie d'une application shell sous Linux ?