Installation et configuration de TripWire

Un script interactif pour installer et configurer Tripwire sur debian 9.0.0 / ubuntu 14.04 et +

Lors de l'installation, il faut choisir de configurer le mot de passe maintenant. Car cela sécurise la base de données que tripwire va créer.

#!/bin/bash
# Installation et configuration de tripwire

echo "Auteur : Tommy Gingras"
echo "Date : 2017-07-06"
echo "But : Installer et configurer tripwire pour valider l'intégrité du système."
echo "Version : 1.0.1"
echo "Note : le script a été testé sur Debian 9.0.0"

RED='\033[0;31m'
GREEN='\033[0;32m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

ok=true
while $ok
do
    read -p "Entrez l'adresse courriel où vous voulez recevoir les rapports : " email
    echo
    if [[ "$email" =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ ]]
    then
    ok=false
        break
    else
        echo -e "${RED}L'adresse courriel $email n'est pas valide.${NC}"
    fi
done

echo -e "${BLUE}################### STEP 1 ##################${NC}"

apt-get update
apt-get install -y tripwire

echo -e "${BLUE}################### STEP 2 ##################${NC}"

# Création de la base de données
tripwire --init
echo -e "${BLUE}################### STEP 3 ##################${NC}"

# Création du fichier de configuration
sh -c 'tripwire --check | grep Filename > test_results'

echo -e "${RED}Les fichiers qui apparaissent ici doivent être commenté du fichier de configuration.${NC}"
cat test_results

# On commente les fichiers qui causent des problèmes.
while read -r line; do
  t=$(echo $line | cut -d " " -f 2)
  sed -i "s|^\t\($t.*\)|#\\t\1|g" /etc/tripwire/twpol.txt
done <<< `cat test_results`

sed -i "s/^\t\(\/etc\/rc.boot.*\)/#\\t\1/g" /etc/tripwire/twpol.txt
sed -i "s/^\t\(\/var\/lock.*\)/#\\t\1/g" /etc/tripwire/twpol.txt
sed -i "s/^\t\(\/var\/run.*\)/#\\t\1/g" /etc/tripwire/twpol.txt
sed -i "s/^\t\(\/proc.*\)/#\\t\1/g" /etc/tripwire/twpol.txt
sed -i '/^#\t\/proc/a \\t/proc/devices           -> $(Device) ;' /etc/tripwire/twpol.txt
sed -i '/^#\t\/proc/a \\t/proc/net               -> $(Device) ;' /etc/tripwire/twpol.txt
sed -i '/^#\t\/proc/a \\t/proc/tty               -> $(Device) ;' /etc/tripwire/twpol.txt
sed -i '/^#\t\/proc/a \\t/proc/sys               -> $(Device) ;' /etc/tripwire/twpol.txt
sed -i '/^#\t\/proc/a \\t/proc/cpuinfo           -> $(Device) ;' /etc/tripwire/twpol.txt
sed -i '/^#\t\/proc/a \\t/proc/modules           -> $(Device) ;' /etc/tripwire/twpol.txt
sed -i '/^#\t\/proc/a \\t/proc/mounts            -> $(Device) ;' /etc/tripwire/twpol.txt
sed -i '/^#\t\/proc/a \\t/proc/dma               -> $(Device) ;' /etc/tripwire/twpol.txt
sed -i '/^#\t\/proc/a \\t/proc/filesystems       -> $(Device) ;' /etc/tripwire/twpol.txt
sed -i '/^#\t\/proc/a \\t/proc/interrupts        -> $(Device) ;' /etc/tripwire/twpol.txt
sed -i '/^#\t\/proc/a \\t/proc/ioports           -> $(Device) ;' /etc/tripwire/twpol.txt
sed -i '/^#\t\/proc/a \\t#/proc/scsi              -> $(Device) ;' /etc/tripwire/twpol.txt
sed -i '/^#\t\/proc/a \\t/proc/kcore             -> $(Device) ;' /etc/tripwire/twpol.txt
sed -i '/^#\t\/proc/a \\t/proc/self              -> $(Device) ;' /etc/tripwire/twpol.txt
sed -i '/^#\t\/proc/a \\t/proc/kmsg              -> $(Device) ;' /etc/tripwire/twpol.txt
sed -i '/^#\t\/proc/a \\t/proc/stat              -> $(Device) ;' /etc/tripwire/twpol.txt
sed -i '/^#\t\/proc/a \\t/proc/loadavg           -> $(Device) ;' /etc/tripwire/twpol.txt
sed -i '/^#\t\/proc/a \\t/proc/uptime            -> $(Device) ;' /etc/tripwire/twpol.txt
sed -i '/^#\t\/proc/a \\t/proc/locks             -> $(Device) ;' /etc/tripwire/twpol.txt
sed -i '/^#\t\/proc/a \\t/proc/meminfo           -> $(Device) ;' /etc/tripwire/twpol.txt
sed -i '/^#\t\/proc/a \\t/proc/misc              -> $(Device) ;' /etc/tripwire/twpol.txt
sed -i '/^#\t\/dev/a \\t/dev/pts              -> $(Device) ;' /etc/tripwire/twpol.txt

echo -e "${BLUE}################### STEP 4 ##################${NC}"

twadmin -m P /etc/tripwire/twpol.txt

# Remet a jour la base de données avec les nouvelles informations.
echo -e "${BLUE}################### STEP 5 ##################${NC}"

tripwire --init

# On lance une analyse du système et valide qu'il n'y a pas d'erreur.
echo -e "${BLUE}################### STEP 6 ##################${NC}"

tripwire --check

rm test_results

echo -e "${BLUE}################### STEP 7 ##################${NC}"

sh -c 'twadmin --print-polfile > /etc/tripwire/twpol.txt'

mv /etc/tripwire/twpol.txt /etc/tripwire/twpol.txt.bak   
sh -c 'twadmin --print-polfile > /etc/tripwire/twpol.txt'

rm /etc/tripwire/twpol.txt
rm /etc/tripwire/twpol.txt.bak

echo -e "${BLUE}- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -${NC}"

# Reste a ajouter la cron task
echo "Ajout d'une tâche cron pour automatiser et envoyer le rapport à chaque jour à l'adresse suivante $email"
crontab -l > mycron
echo "0 7 * * * /usr/sbin/tripwire --check | mail -s 'Tripwire report for `uname -n`' $email" >> mycron
crontab mycron

echo -e "${GREEN}Installé et configuré. ${NC}"

Source: Digital Ocean

Laisser un commentaire