Dernière mise à jour : 21/08/2005
Voici le troisième volet des articles sur la sécurité sous Linux. Nous allons ici parler de programmes pratiques permettant de surveiller votre Linux contre les intrusions. La plupart de ces programmes ne permettent pas d'empêcher des intrusions mais plus de vous indiquer ce qui se passe en cas de tentative d'intrusion (ou de réusssite). Il vous appartient de paramétrer des crons à intervalles réguliers pour être informé de problèmes éventuels sur votre machine.
Tripwire - http://sourceforge.net/projects/tripwire
Tripwire est à l'origine développé par une companie commerciale. Ce projet est néanmoins proposé librement sous license GPL. La plupart des distributions vous proposent des paquets pour ce logiciel. Une fois installé, vous pouvez l'initialiser et le paramétrer. Dans l'ordre, il vous faut ici paramétrer une clé GPG pour root afin de pouvoir crypter votre fichier de configuration, puis initialiser la base de données selon votre policy (twpol.txt). Ce fichier doit être taillé selon vos besoins, ainsi, nul n'est besoin de monitorer /dev si vous ne pensez pas que cela soit nécessaire ou bien des parties de /var/log. Donc avant la seconde commande, éditez le fichier twpol.txt pour le paramétrer selon vos besoins, puis cryptez-le.
-
tripwire-setup-keyfiles
cd /etc/tripwire && gpg --encrypt twpol.txt
tripwire --init
Pour vérifier votre base de données, vous pouvez utiliser tripwire --check. Ceci génèrera un rapport généralement placé dans /var/lib/tripwire/report/. Il est alors possible de consulter les rapports par l'outil fourni (car par défaut, ces rapports sont binaires et pas en mode texte). Il est même possible de crypter les rapports si vous le désirez mais je ne rentrerais pas dans les détails. Vous pouvez indiquer un niveau de détail dans les rapports allant de 0 à 4. Le mode 0 donne juste le nom du rapport, le mode 1 donne les fichiers ajoutés/modfiés et le mode 4 donne un rapport complet (md5, checksum, inode, etc ...). Si vous désirez intégrer les derniers fichiers changés dans la base de données, tournez la seconde commande. Si vous désirez mettre à jour votre politique de surveillance, utilisez la troisième commande.
-
twprint -m r --twrfile /var/lib/tripwire/report/hostname-date-time.twr |more
tripwire --update --twrfile /var/lib/tripwire/report/yourmachinename-date-time.twr
tripwire --update-policy /etc/tripwire/twpol.txt
AIDE- http://www.cs.tut.fi/~rammer/aide.html
AIDE est un environnement de détection d'intrusion avancé vérifiant l'intégrité de vos données, il est assez similaire à Tripwire, bien que le fait d'avoir les deux ne fait pas de mal. Après avoir installé AIDE, vous devez configurer sa base de données. Avant de procéder à ceci, éditez /etc/aide/aide.conf. Les lignes commençant par ! vous permettent d'ignorer la surveillance de fichiers ou répertoires mentionnés.
-
!/tmp
!/proc
!/usr/src
!/var/log
!/var/adm/utmp$
!/home
Vous devez ensuite initialiser la base de données, avec la commande aide --init. Désormais, une vérification une fois par jour devrait être effectuée par cron en exécutant la commande : aide --check. Un rapport envoyé par email à intervalle réguliers est une bonne option.
Snort - http://www.snort.org
SNORT est un outil open-source de la catégorie des NIDS (Network Intrusion Detection System - Système de Détection d'Intrusion Réseau). Il est actuellement disponible sur l'essentiel des distributions (et pas seulement Linux d'ailleurs). Son installation est relativement facile. Il vous suffit de paramétrer l'interface sur laquelle vous écoutez ainsi que votre réseau et vous pouvez démarrer le démon. Editez donc le fichier /etc/snort
-
HOME_NET="192.168.0.0/24"
OPTIONS=" -i eth0"
Une fois le démon démarré, vous trouverez des logs dans /var/log/snort. Notez trois types de logs, un fichier appellé alert, un second au format portscan2.xxx et enfin un troisième tcpdump.log.xxx. Le premier vous donne le type d'alerte au format snort, le second vous donne les scans de ports fais sur votre machine (si vous bloquez les paquets avec iptables, ce fichier restera vide) et le dernier contient des logs au format tcpdump qui vous indiqueront ce que l'attaquant a exécuté comme commande.
Une des forces de Snort est dans ses règles de surveillance, considérez changer les règles par défaut en utilisant ce que les contributions ont à offrir. Le site officiel a une section de contributions relativement importante qui devrait répondre à bien des questions.
FwLogWatch - http://fwlogwatch.inside-security.de
Fwlogwatch est un programme qui analyse les logs des détecteurs d'intrusion (IDS) et permet de filtrer et de protéger votre serveur contre des attaques. Le projet officiel propose le paquet en source, source RPM mais aussi en binaires pour Debian (intégré dans sarge) et autres RedHat. La particularité de ce programme est sa capacité à bloquer ou prévenir si une machine se fait attaquer. Sous Debian, il vous suffit de faire un simple apt-get install fwlogwatch. Configurez ensuite le fichier /etc/default/fwlogwatch comme suit. Cette configuration envoie juste un mail toutes les 24h, mais il est possible de le configurer pour recevoir des alertes en temps réel et même passer des règles à IPTables :
START_DAEMON='true' PARAMS=' ' MODE='' EMAIL='' CRON_EMAIL='votre_email@domaine.fr' CRON_PARAMS='-p -d -O ta -t -e -l 1d'
Voilà qui termine cet article sur les outils de surveillance. Je complèterais bientôt cette page, avec plus de commandes pour tripwire et de nouveaux outils que vous pouvez installer sur votre machine. Si vous avez des suggestions ou d'autres programmes que vous jugez indispensables, écrivez moi.