Tripwire installation
De wikiGite
Sommaire
Tripwire sur Debian
apt-get install tripwire répondre OK pour le mot de passe des clés de site et locale et en donner un.
Première chose à faire : chattr +i /usr/sbin/tripwire
Le fichier de config twpol.txt est à adapter au système. Le plus simple est de générer la base (voir ci-dessous) et de voir quels fichiers il cherche et ne trouve pas. Log sur Etch :
Filename: /etc/rc.boot Filename: /root/mail Filename: /root/Mail Filename: /root/.xsession-errors Filename: /root/.xauth Filename: /root/.tcshrc Filename: /root/.sawfish Filename: /root/.pinerc Filename: /root/.mc Filename: /root/.gnome_private Filename: /root/.gnome-desktop Filename: /root/.gnome Filename: /root/.esd_auth Filename: /root/.elm Filename: /root/.cshrc Filename: /root/.bash_profile Filename: /root/.bash_logout Filename: /root/.amandahosts Filename: /root/.addressbook.lu Filename: /root/.addressbook Filename: /root/.Xresources Filename: /root/.Xauthority Filename: /root/.ICEauthority
A voir : le problème de /proc qui bouge sans arrêt :
Pour l'instant on enlève /proc aussi de la liste des scans
- enlever /root. Par contre on laisse /root/.bashrc
- enlever /var/run ?
- enlever /var/log car ça réagit à chaque logrotate...
- mettre /etc et les fichiers modifiés par les interfaces ISP en SEC_CONFIG
Initialisation du fichier de policy :
twadmin -m P /etc/tripwire/twpol.txt (demande la passphrase) -> crée /etc/tripwire/tw.pol
Initialisation de la database :
tripwire -m i (demande aussi la passphrase)
Check régulier :
tripwire -m c (ou --check)
ça génère une sortie à l'écran (récupérable et mailable) et dans un log /var/lib/tripwire/report/*
Lancement en cron : cron.hourly/tripwire
#!/bin/bash # Le fichier /root/tripwire.log est lisible # le rapport /var/lib/tripwire/report/ ne l'est pas mais necessaire pour # reconstruire la base /usr/sbin/tripwire --check > /root/tripwire.log while read LINE do echo "$LINE" | grep "Total violations found" > /dev/null if [ $? -eq 0 ] then TRIP=$(echo "$LINE" | awk 'BEGIN { FS = ":" }{ print $2 }') if [ $TRIP -gt 0 ] then cat /root/tripwire.log | mail -s 'Tripwire hourly report' fsoyer@systea.net fi fi done < /root/tripwire.log find /var/lib/tripwire/report/ -ctime 1 -exec rm {} \;
Si des fichiers ont changés, il faut mettre à jour la base :
- repérer le dernier fichier /var/lib/tripwire/report/* (qui contient les infos à jour), puis
tripwire --update -r /var/lib/tripwire/report/xxxxxxxxxxxxxx.twr
Plus simple : créer un script /root/bin/tripwire-update-db :
#!/bin/bash # update database Tripwire after file changes # Just verify in the editor if the files modified are marqued with a [x] # then quit. The tripwire site key passphrase is required. LAST=$(find /var/lib/tripwire/report/ -amin -60 -exec basename {} \; | grep -v report) # LC_ALL=C avoid an error on report file format LC_ALL=C tripwire --update -r /var/lib/tripwire/report/$LAST
Dans l'éditeur qui se lance, vérifier que les infos de fichiers à mettre à jour sont précédés d'un [x].
Quitter (avec sauvegarde si vous avez enlevé des "x" pour qu'il continue à alerter sur certains fichiers).
Donner la passphrase.