Outils personnels

Tripwire installation

De wikiGite

Révision datée du 31 octobre 2008 à 08:26 par Frank (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

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.