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.
