Une solution simple et efficace consiste à utiliser logcheck .
sudo apt-get install logcheck
[edit /etc/logcheck/logcheck.conf to your liking]
logcheck analyse périodiquement tous les journaux de manière efficace (en commençant là où ils se sont arrêtés la dernière fois), filtre ce qu’il voit pour éliminer tout élément considéré comme normal et éventuellement cela ne correspond pas aux schémas normaux / de routine.
L’idée principale est de surveiller l’apparition de toutes les entrées sérieuses dans vos fichiers journaux, toutes, tout le temps, de sorte que vous à.
logcheck est hautement configurable ( man logcheck
). Vous pouvez tout configurer, y compris:
- fréquence des vérifications
- quels fichiers journaux sont vérifiés
- ce qui est considéré comme normal vs pas
- où envoyer les alertes (événements anormaux) à
et plus. Vos patterns ignore (normal / routine) résident dans plusieurs fichiers sous /etc/logcheck/ignore.d. * et vous pouvez les personnaliser selon vos besoins. principalement vous pouvez vouloir ajouter vos propres modèles à ignorer. Le paquet Ubuntu par défaut est livré avec un ensemble de fichiers étendu avec des patterns d’ignorance pour de nombreux services, donc il n’ya pas grand chose à ajouter à moins que votre système ne soit inhabituel. Il existe 3 ensembles de profils de fichiers ignorés préconfigurés: ignore.d.workstation , ignore.d.server et ignore.d.paranoid que vous pouvez choisir.
L’idée principale derrière logcheck est que les différents services exécutés sur un système enregistrent déjà des événements anormaux. Par exemple. sshd ou pam enregistrent déjà les échecs d'authentification. Les principaux composants manquants sont donc:
- filtrer ce qui est normal
- Le service d'alerte
Les deux sont fournis par logcheck dans un package pratique. Vous pouvez combiner logcheck avec toute autre journalisation. Par exemple, iptables peut être configuré sur syslog toutes les tentatives de connexion réseau qui ne sont pas explicitement autorisées en ajoutant les règles:
iptables -A input -j LOG
iptables -A input -j DROP
immédiatement après toutes les règles d’autorisation.
Je trouve logcheck beaucoup plus utile que logwatch (suggéré dans d’autres réponses) car préemballé avec un très grand nombre de règles pour ignorer ce qui est considéré comme une activité normale. Le résultat est un rapport signal / bruit beaucoup plus élevé dans les alertes par e-mail. YMMV.
Un autre avantage de logcheck est qu’il est orthogonal à tout service qui se connecte, il n’ya donc pas de duplication des fonctions. Chaque fois que vous ajoutez un nouveau service qui utilise syslog
pour enregistrer des événements, anormaux ou non, dans n'importe quel fichier sous /var/log
, vous commencez à recevoir des alertes automatiquement.
HOWTO:
Comme logcheck
est déjà préconfiguré, deux lignes en haut de
Cette réponse couvre essentiellement tout ce dont vous avez besoin pour commencer. Juste
installez-le et passez en revue le fichier de configuration supérieur:
/etc/logcheck/logcheck.conf
pour changer votre adresse email
donc logcheck
envoie des alertes par e-mail à votre adresse.
Voici une référence conviviale qui passe en revue la seconde étape.
détail .
Ubuntu étant basé sur Debian, ces instructions devraient également fonctionner sur Ubuntu.
Voici une autre bonne référence .
Une fois l'installation terminée, le processus d'amélioration continue démarre.
Au fil du temps, vous affinez vos règles pour ignorer tout ce que vous connaissez déjà
et sentir ne devrait pas être préoccupant.
Ce processus d'affinement est aussi simple que l'ajout de lignes de texte à un fichier
dans votre éditeur de texte préféré.
Chaque ligne d'un fichier ignore est une expression régulière étendue (voir man 7 regex
), mais vous pouvez utiliser des chaînes simples tant qu'elles correspondent à la ligne de journal à ignorer. Rappelez-vous simplement que les caractères tels que *
, ?
, '+', []
, ()
sont spéciaux dans une expression régulière, donc s'ils apparaissent réellement dans les lignes de journal, vous devrez les échapper avec une barre oblique inverse. \
dans les fichiers ignore.
En d'autres termes: si vous recevez une alerte, vous ne voulez pas obtenir,
regardez la ligne de journal qui vous a été envoyée par courrier électronique et ajoutez un motif
cela correspond, comme une ligne à un fichier ignore de votre choix. Je suggère d'utiliser
/etc/logcheck/ignore.d.<yourloglevel>/my-ignores
comme votre ignorant personnel
fichier. Où <yourloglevel>
est l'un des paranoid
, server
ou
workstation
(comme vous l'avez déjà sélectionné dans
le fichier de configuration principal: /etc/logcheck/logcheck.conf
). Regardez les exemples dans d'autres
ignore les fichiers pour savoir comment comptabiliser le texte qui change tout le temps, comme les ID de processus ou les horodatages. Il y a beaucoup d'exemples à apprendre.
Un dernier conseil: logcheck
est livré avec un petit utilitaire utile appelé logcheck-test
qui est très pratique pour tester de nouvelles règles. man logcheck-test
pour plus de détails.