web-dev-qa-db-fra.com

Quelle configuration automatisée de notification / détection d'intrusion est bonne pour une utilisation sur un bureau domestique?

J'utilise Linux depuis un certain temps maintenant et je ressens toujours le besoin de disposer d'un logiciel/script passif qui puisse m'avertir de toute activité réseau suspecte telle que des analyses, des tentatives de connexion infructueuses, etc. à la volée par courrier électronique ou par courrier électronique. notifications visuelles/audio.

Je sais comment consulter les journaux et autres éléments, mais la plupart du temps, il s’agit d’un processus manuel qui prend du temps. Je recherche quelque chose qui est semi/entièrement automatisé avec de bonnes capacités d'analyse de journaux.

Je connais les systèmes IDS pour surveiller des réseaux tels que Snort, etc., mais ils sont excessifs pour l'utilisateur moyen et constituent un processus difficile à mettre en place.

Quelle est une bonne option pour moi en tant qu'utilisateur domestique?

27
irenicus09

Une solution générale 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'ils veille à éliminer tout ce qui est considéré comme normal et facultativement, envoie des alertes par courrier électronique à tout ce qui ne correspond pas aux habitudes normales/de routine.

L'idée principale est de surveiller toutes les entrées sérieuses dans vos fichiers de log, tout le temps, donc n'est pas obligé.

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 non
  • où envoyer les alertes (événements anormaux) à

et plus. Vos modèles ignore (normal/routine) résident dans plusieurs fichiers sous /etc/logcheck/ignore.d. * et vous pouvez les personnaliser en fonction de vos besoins. principalement vous voudrez peut-être ajouter vos propres modèles à ignorer. Le paquetage Ubuntu par défaut comprend déjà un ensemble complet de fichiers contenant déjà des modèles pour de nombreux services. Il n’ya donc rien à ajouter, à moins que votre système n’existe de manière inhabituelle. 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 s'exécutant sur un système enregistrent déjà des événements anormaux. Par exemple. sshd ou pam enregistre déjà les échecs d'authentification. Donc, les principaux composants manquants sont:

  • filtrer ce qui est normal
  • Le service d'alerte

Les deux sont fournis par logcheck dans un package commode. Vous pouvez combiner logcheck avec toute autre journalisation. Par exemple iptables peut être configuré pour syslog toute tentative de connexion réseau non explicitement autorisée par l'ajout des règles:

 iptables -A input -j LOG
 iptables -A input -j DROP

immédiatement après toutes les règles permettent.

Je trouve logcheck beaucoup plus utile que logwatch (suggéré dans d'autres réponses) car il est livré avec un très grand nombre de règles pour ignorer ce qui est considéré comme une activité normale. Il en résulte un rapport signal/bruit beaucoup plus élevé dans les alertes qu’il envoie. YMMV.

Un autre avantage de logcheck est qu’il est orthogonal à tout service qui se connecte, il n'y a donc aucune duplication de fonction. Chaque fois que vous ajoutez un nouveau service qui utilise syslog pour enregistrer les événements, anormaux ou non, dans n’importe quel fichier sous /var/log, vous commencez à recevoir des alertes automatiquement.

HOWTO:

Puisque logcheck est déjà préconfiguré, deux lignes en haut de cette réponse couvrent essentiellement tout ce dont vous avez besoin pour commencer. Installez-le simplement et passez en revue le fichier de configuration supérieur: /etc/logcheck/logcheck.conf pour modifier votre adresse e-mail afin que logcheck vous envoie des alertes.

Voici un référence conviviale plus détaillée sur la deuxième étape . Ubuntu étant basé sur Debian, ces instructions devraient également fonctionner sur Ubuntu. Voici une autre bonne référence .

Une fois que vous installez, le processus d'amélioration continue commence. Au fil du temps, vous affinez vos règles pour ignorer tout ce que vous connaissez déjà et dont vous estimez qu'il ne devrait pas être une source de préoccupation. Ce processus de raffinement consiste à ajouter des lignes de texte à un fichier dans votre éditeur de texte favori.

Chaque ligne d'un fichier à ignorer est une expression régulière étendue (voir man 7 regex), mais vous pouvez utiliser des chaînes simples à condition qu'elles correspondent à la ligne de journal que vous souhaitez ignorer. N'oubliez pas que des caractères tels que *, ?, '+', [], () sont spéciaux dans une expression régulière. Par conséquent, s'ils apparaissent réellement dans les lignes du journal, vous devrez les échapper avec une barre oblique inverse \ dans les fichiers ignorés.

En d'autres termes: si vous recevez une alerte que vous ne voulez pas recevoir, examinez la ligne de journal qui vous a été envoyée par courrier électronique et ajoutez un modèle correspondant, sous la forme d'une ligne à tout fichier ignoré de votre choix. Je suggère d'utiliser /etc/logcheck/ignore.d.<yourloglevel>/my-ignores comme fichier personnel ignorer. 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). Examinez les exemples figurant dans d'autres fichiers ignorés pour voir comment comptabiliser un texte qui change tout le temps, par exemple des ID de processus ou des horodatages. Il y a beaucoup d'exemples existants à apprendre.

Un dernier conseil: logcheck vient 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.

15
arielf

Si vous n'avez pas beaucoup de systèmes sur votre réseau, configurer un IDS comme Snort est probablement excessif (surtout si vous n'avez aucun service réseau sur votre ordinateur). Je suggère de commencer par configurer logwatch pour vous envoyer un rapport de ce qui se passe sur votre système. Une fois que vous avez terminé, configurez votre syslog afin d’obtenir le plus d’informations pertinentes possible.

3
AndrewX192

La détection d'intrusion est indispensable lorsque vous exécutez des services (ftp, web, nfs, ssh, etc.) sur votre réseau. C'est parce qu'ils sont exposés sur Internet et à cause de:

  • manque de configuration
  • vulnérabilités logicielles

ils ont besoin d'une surveillance quotidienne par un administrateur réseau expérimenté. Si vous utilisez ces services, vous avez probablement déjà le minimum de connaissances pour éviter ces problèmes.

Si vous n'exécutez aucun de ces services, le pare-feu de votre routeur Internet a déjà bloqué toute connexion entrante sur les ports. Pour analyser votre routeur de réseau

Si vous êtes tous verts, alors vous êtes tous bons.

Dernier point mais non le moindre, votre routeur est probablement doté d'un système de détection d'intrusion intégré (car 99% de tous les routeurs utilisent un serveur linux par bandes). Pour cela, vous devez consulter le manuel du fabricant de votre routeur.

1
Salih Emin