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 :

Installe Tripwire IDS

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 :

Postfix configuration

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 :

Phrase de passe Tripwire

Choisis Oui et appuie sur ENTRÉE. Il te sera demandé de reconstruire le fichier de configuration de Tripwire comme indiqué ci-dessous :

Reconstruire le fichier de configuration

Sélectionne Oui et appuie sur ENTER. Il te sera demandé de reconstruire ton fichier de politique Tripwire comme indiqué ci-dessous :

Reconstruire le fichier de politique

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 :

Définir une clé de site

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 :

Définir la phrase de passe locale

Indique ton mot de passe et appuie sur ENTER. Une fois que Tripwire a été installé, tu devrais voir l’écran suivant :

L'installation de Tripwire est terminée

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.

Vous aimerez aussi...