Comment installer et configurer Tripwire IDS sur Debian 10
Tripwire est un système de détection d’intrusion Linux gratuit et open-source. Il est utilisé pour détecter et signaler toute modification non autorisée des fichiers et des répertoires sur Linux. Il t’enverra également une alerte par email sur les changements de fichiers/répertoires. Tripwire fonctionne en comparant l’état actuel du système de fichiers à un état de référence connu et signale tout changement détecté.
Dans ce billet, nous allons te montrer comment installer et configurer Tripwire sur Debian 10.
Conditions préalables
- Un serveur fonctionnant sous Debian 10.
- Un mot de passe root est configuré sur le serveur.
Pour commencer
Tout d’abord, mets les paquets système à la version mise à jour en exécutant la commande suivante :
apt-get update -y
Une fois que tous les paquets sont mis à jour, tu peux passer à l’étape suivante.
Installe Tripwire
Par défaut, le paquet Tripwire est disponible dans le référentiel par défaut de Debian 10. Tu peux l’installer à l’aide de la commande suivante :
apt-get install tripwire -y
Pendant l’installation, il te sera demandé de sélectionner la configuration de la messagerie comme indiqué ci-dessous :
Sélectionne l’option de ton choix et appuie sur ENTRÉE. Il te sera demandé de configurer un nom de messagerie système comme indiqué ci-dessous :
Indique ton nom de messagerie système et appuie sur ENTRÉE. Il te sera demandé de créer ta phrase de passe de clé de site comme indiqué ci-dessous :
Choisis Oui et appuie sur ENTRÉE. Il te sera demandé de reconstruire le fichier de configuration de Tripwire comme indiqué ci-dessous :
Sélectionne Oui et appuie sur ENTER. Il te sera demandé de reconstruire ton fichier de politique Tripwire comme indiqué ci-dessous :
Sélectionne Oui et appuie sur ENTER. Il te sera demandé de fournir ta phrase de passe de clé de site comme indiqué ci-dessous :
Indique ton mot de passe et appuie sur ENTER. Il te sera demandé de définir la phrase de passe de ta clé locale comme indiqué ci-dessous :
Indique ton mot de passe et appuie sur ENTER. Une fois que Tripwire a été installé, tu devrais voir l’écran suivant :
Clique sur le bouton Ok pour terminer l’installation.
Configurer Tripwire
Ensuite, tu devras générer des clés Tripwire et initialiser la base de données. Tout d’abord, change le répertoire en Tripwire et liste toutes les clés et tous les fichiers avec la commande suivante :
cd /etc/tripwire/
ls
Tu devrais voir la sortie suivante :
debian10-local.key site.key tw.cfg twcfg.txt tw.pol twpol.txt
Ensuite, modifie le fichier de configuration de Tripwire et règle REPORTLEVEL sur 4.
nano /etc/tripwire/twcfg.txt
Change la ligne suivante :
REPORTLEVEL =4
Sauvegarde et ferme le fichier lorsque tu as terminé.
Ensuite, génère un nouveau fichier de configuration avec la commande suivante :
twadmin -m F -c tw.cfg -S site.key twcfg.txt
Il te sera demandé de fournir la phrase de passe de ton site comme indiqué ci-dessous :
Please enter your site passphrase: Wrote configuration file: /etc/tripwire/tw.cfg
Ensuite, crée un fichier twpolmake.pl pour optimiser la politique de Tripwire.
nano twpolmake.pl
Ajoute les lignes suivantes :
#!/usr/bin/perl $POLFILE=$ARGV[0]; open(POL,"$POLFILE") or die "open error: $POLFILE" ; my($myhost,$thost) ; my($sharp,$tpath,$cond) ; my($INRULE) = 0 ; while () { chomp; if (($thost) = /^HOSTNAME\s*=\s*(.*)\s*;/) { $myhost = `hostname` ; chomp($myhost) ; if ($thost ne $myhost) { $_="HOSTNAME=\"$myhost\";" ; } } elsif ( /^{/ ) { $INRULE=1 ; } elsif ( /^}/ ) { $INRULE=0 ; } elsif ($INRULE == 1 and ($sharp,$tpath,$cond) = /^(\s*\#?\s*)(\/\S+)\b(\s+->\s+.+)$/) { $ret = ($sharp =~ s/\#//g) ; if ($tpath eq '/sbin/e2fsadm' ) { $cond =~ s/;\s+(tune2fs.*)$/; \#$1/ ; } if (! -s $tpath) { $_ = "$sharp#$tpath$cond" if ($ret == 0) ; } else { $_ = "$sharp$tpath$cond" ; } } print "$_\n" ; } close(POL) ;
Enregistre et ferme le fichier puis crée un fichier de configuration avec la commande suivante :
perl twpolmake.pl twpol.txt > twpol.txt.new
twadmin -m P -c tw.cfg -p tw.pol -S site.key twpol.txt.new
Tu devrais voir la sortie suivante :
Please enter your site passphrase: Wrote policy file: /etc/tripwire/tw.pol
Ensuite, crée une base de données Tripwire avec la commande suivante :
tripwire -m i -s -c tw.cfg
Tu devrais voir le résultat suivant :
Please enter your local passphrase: ### Warning: File system error. ### Filename: /var/lib/tripwire/debian10.twd ### No such file or directory ### Continuing...
Tu peux aussi afficher la base de données générée avec la commande suivante :
twprint -m d -d /var/lib/tripwire/debian10.twd
Tu devrais voir le résultat suivant :
Open Source Tripwire(R) 2.4.3.7 Database Database generated by: root Database generated on: Sun 09 May 2021 08:39:18 AM UTC Database last updated on: Never =============================================================================== Database Summary: =============================================================================== Host name: debian10 Host IP address: 45.58.38.142 Host ID: None Policy file used: /etc/tripwire/tw.pol Configuration file used: /etc/tripwire/tw.cfg Database file used: /var/lib/tripwire/debian10.twd Command line used: tripwire -m i -s -c tw.cfg =============================================================================== Object Summary: =============================================================================== ------------------------------------------------------------------------------- # Section: Unix File System -------------------------------------------------------------------------------
Si tu veux mettre à jour la base de données Tripwire, exécute la commande suivante :
tripwire --update --accept-all
Tu devrais obtenir le résultat suivant :
### Error: File could not be opened. ### Filename: /var/lib/tripwire/report/debian10-20210509-084141.twr ### No such file or directory ### Exiting...
Maintenant, teste le Tripwire à l’aide de la commande suivante :
tripwire -m c -s -c /etc/tripwire/tw.cfg
Tu devrais voir la sortie suivante :
Open Source Tripwire(R) 2.4.3.7 Integrity Check Report Report generated by: root Report created on: Sun 09 May 2021 08:42:15 AM UTC Database last updated on: Never =============================================================================== Report Summary: =============================================================================== Host name: debian10 Host IP address: 45.58.38.142 Host ID: None Policy file used: /etc/tripwire/tw.pol Configuration file used: /etc/tripwire/tw.cfg Database file used: /var/lib/tripwire/debian10.twd Command line used: tripwire -m c -s -c /etc/tripwire/tw.cfg =============================================================================== Rule Summary: =============================================================================== ------------------------------------------------------------------------------- Section: Unix File System ------------------------------------------------------------------------------- Rule Name Severity Level Added Removed Modified --------- -------------- ----- ------- -------- Other binaries 66 0 0 0 Tripwire Binaries 100 0 0 0 Other libraries 66 0 0 0 Root file-system executables 100 0 0 0 * Tripwire Data Files 100 1 0 0 System boot changes 100 0 0 0 Root file-system libraries 100 0 0 0 (/lib) Critical system boot files 100 0 0 0 * Other configuration files 66 0 0 1 (/etc) Boot Scripts 100 0 0 0 Security Control 66 0 0 0 Root config files 100 0 0 0 Devices & Kernel information 100 0 0 0 (/dev) Invariant Directories 66 0 0 0 Total objects scanned: 27975 Total violations found: 2 =============================================================================== Object Summary: =============================================================================== ------------------------------------------------------------------------------- # Section: Unix File System ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Rule Name: Tripwire Data Files (/var/lib/tripwire/debian10.twd) Severity Level: 100 -------------------------------------------------------------------------------
Par défaut, les fichiers de rapport Tripwire sont situés dans /var/lib/tripwire/report/ :
ls /var/lib/tripwire/report/
Sortie :
debian10-20210509-084215.twr
Tu peux vérifier ce rapport à l’aide de la commande suivante :
twprint -m r -t 4 -r /var/lib/tripwire/report/debian10-20210509-084215.twr
Vérifier l’IDS de Tripwire
À ce stade, Tripwire est installé et configuré. Maintenant, il est temps de vérifier si Tripwire fonctionne ou non.
Tout d’abord, crée quelques fichiers dans ton système à l’aide de la commande suivante :
touch fil1 file2 file3 file4 file5
Maintenant, exécute le Tripwire pour vérifier si le Tripwire détecte ces fichiers ou non :
tripwire --check --interactive
Tu devrais voir les fichiers nouvellement créés dans la sortie suivante :
Open Source Tripwire(R) 2.4.3.7 Integrity Check Report Report generated by: root Report created on: Sun 09 May 2021 08:46:36 AM UTC Database last updated on: Never =============================================================================== Report Summary: =============================================================================== Host name: debian10 Host IP address: 45.58.38.142 Host ID: None Policy file used: /etc/tripwire/tw.pol Configuration file used: /etc/tripwire/tw.cfg Database file used: /var/lib/tripwire/debian10.twd Command line used: tripwire --check --interactive =============================================================================== ------------------------------------------------------------------------------- Rule Name: Other configuration files (/etc) Severity Level: 66 ------------------------------------------------------------------------------- Remove the "x" from the adjacent box to prevent updating the database with the new values for this object. Modified: [x] "/etc/tripwire" ------------------------------------------------------------------------------- Rule Name: Root config files (/root) Severity Level: 100 ------------------------------------------------------------------------------- Remove the "x" from the adjacent box to prevent updating the database with the new values for this object. Added: [x] "/root/file4" [x] "/root/file3" [x] "/root/fil1" [x] "/root/file2" [x] "/root/file5" Modified: [x] "/root" ===============================================================================
Tu peux aussi vérifier le rapport généré plus tard à l’aide de la commande suivante :
twprint --print-report --twrfile /var/lib/tripwire/report/debian10-20210509-084636.twr
Automatiser le rapport Tripwire
Tu peux aussi configurer une tâche cron pour exécuter un Tripwire à une heure précise. Tu peux le faire avec la commande suivante :
crontab -e
Ajoute les lignes suivantes :
00 06 * * * /usr/sbin/tripwire --check
Sauvegarde et ferme le fichier lorsque tu as terminé.
Le fichier ci-dessus exécutera un Tripwire tous les matins à 06:00 AM. Tu peux consulter le rapport généré dans /var/lib/tripwire/report/.
Conclusion
Félicitations ! Tu as réussi à installer et à configurer Tripwire IDS sur Debian 10. J’espère que cela t’aidera à vérifier quels fichiers ou répertoires sont modifiés sur ton système.