Wie man Tripwire IDS auf Debian 10 installiert und konfiguriert

Tripwire ist ein freies und quelloffenes Linux Intrusion Detection System. Es wird verwendet, um jede unautorisierte Änderung in Dateien und Verzeichnissen unter Linux zu erkennen und zu melden. Es sendet dir auch eine Warnung per E-Mail über Datei-/Verzeichnisänderungen. Tripwire vergleicht den aktuellen Zustand des Dateisystems mit einem bekannten Basiszustand und meldet, wenn es Änderungen gibt.

In diesem Beitrag zeigen wir dir, wie du Tripwire auf Debian 10 installieren und konfigurieren kannst.

Voraussetzungen

  • Ein Server, auf dem Debian 10 läuft.
  • Ein Root-Passwort ist auf dem Server konfiguriert.

Erste Schritte

Als erstes aktualisierst du die Systempakete auf die aktuelle Version, indem du den folgenden Befehl ausführst:

apt-get update -y

Sobald alle Pakete aktualisiert sind, kannst du mit dem nächsten Schritt fortfahren.

Tripwire installieren

Standardmäßig ist das Tripwire-Paket im Standard-Repository von Debian 10 verfügbar. Du kannst es mit dem folgenden Kommando installieren:

apt-get install tripwire -y

Während der Installation wirst du aufgefordert, die E-Mail-Konfiguration wie unten gezeigt auszuwählen:

Tripwire IDS installieren

Wähle deine gewünschte Option und drücke ENTER. Du wirst gefragt, ob du einen Systemmailnamen einrichten möchtest, wie unten gezeigt:

Postfix Konfiguration

Gib deinen System-E-Mail-Namen ein und drücke ENTER. Du wirst gefragt, ob du eine Passphrase für deinen Standortschlüssel erstellen möchtest, wie unten gezeigt:

Tripwire Passphrase

Wähle Ja und drücke ENTER. Du wirst aufgefordert, die Tripwire-Konfigurationsdatei neu zu erstellen, wie unten gezeigt:

Rebuild Konfigurationsdatei

Wähle Ja und drücke ENTER. Du wirst gefragt, ob du deine Tripwire-Richtliniendatei neu erstellen möchtest, wie unten gezeigt:

Rebuild policy file

Wähle Ja und drücke ENTER. Du wirst aufgefordert, deine Site-Key-Passphrase einzugeben (siehe unten):

Standortschlüssel festlegen

Gib dein Passwort ein und drücke ENTER. Du wirst aufgefordert, die Passphrase deines lokalen Schlüssels festzulegen (siehe unten):

Lokale Passphrase setzen

Gib dein Passwort ein und drücke ENTER. Sobald Tripwire installiert ist, solltest du den folgenden Bildschirm sehen:

Tripwire Installation beendet

Klicke auf den Ok-Button, um die Installation abzuschließen.

Tripwire konfigurieren

Als nächstes musst du Tripwire-Schlüssel generieren und die Datenbank initialisieren. Wechsle zunächst in das Verzeichnis Tripwire und liste alle Schlüssel und Dateien mit dem folgenden Befehl auf:

cd /etc/tripwire/
ls

Du solltest die folgende Ausgabe sehen:

debian10-local.key  site.key  tw.cfg  twcfg.txt  tw.pol  twpol.txt

Als nächstes editierst du die Tripwire Konfigurationsdatei und setzt REPORTLEVEL auf 4

nano /etc/tripwire/twcfg.txt

Ändere die folgende Zeile:

REPORTLEVEL   =4

Speichere und schließe die Datei, wenn du fertig bist.

Als nächstes generierst du eine neue Konfigurationsdatei mit dem folgenden Befehl:

twadmin -m F -c tw.cfg -S site.key twcfg.txt

Du wirst aufgefordert, deine Site-Passphrase anzugeben, wie unten gezeigt:

Please enter your site passphrase: 
Wrote configuration file: /etc/tripwire/tw.cfg

Als nächstes erstellst du eine twpolmake.pl Datei, um die Tripwire-Richtlinie zu optimieren.

nano twpolmake.pl

Füge die folgenden Zeilen hinzu:

#!/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) ;

Speichere und schließe die Datei und erstelle dann eine Konfigurationsdatei mit dem folgenden Befehl:

perl twpolmake.pl twpol.txt > twpol.txt.new 
twadmin -m P -c tw.cfg -p tw.pol -S site.key twpol.txt.new

Du solltest die folgende Ausgabe sehen:

Please enter your site passphrase: 
Wrote policy file: /etc/tripwire/tw.pol

Als nächstes erstellst du eine Tripwire-Datenbank mit dem folgenden Befehl:

tripwire -m i -s -c tw.cfg

Du solltest die folgende Ausgabe sehen:

Please enter your local passphrase: 
### Warning: File system error.
### Filename: /var/lib/tripwire/debian10.twd
### No such file or directory
### Continuing...

Du kannst die erzeugte Datenbank auch mit dem folgenden Befehl anzeigen:

twprint -m d -d /var/lib/tripwire/debian10.twd

Du solltest die folgende Ausgabe sehen:

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
-------------------------------------------------------------------------------

Wenn du die Tripwire-Datenbank aktualisieren möchtest, führe den folgenden Befehl aus:

tripwire --update --accept-all

Du solltest die folgende Ausgabe erhalten:

### Error: File could not be opened.
### Filename: /var/lib/tripwire/report/debian10-20210509-084141.twr
### No such file or directory
### Exiting...

Teste nun den Tripwire mit folgendem Befehl:

tripwire -m c -s -c /etc/tripwire/tw.cfg

Du solltest die folgende Ausgabe sehen:

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
-------------------------------------------------------------------------------

Standardmäßig befinden sich die Tripwire Berichtsdateien unter /var/lib/tripwire/report/:

ls /var/lib/tripwire/report/

Ausgabe:

debian10-20210509-084215.twr

Du kannst diesen Bericht mit dem folgenden Befehl überprüfen:

twprint -m r -t 4 -r /var/lib/tripwire/report/debian10-20210509-084215.twr

Verify Tripwire IDS

An diesem Punkt ist Tripwire installiert und konfiguriert. Nun ist es an der Zeit zu überprüfen, ob Tripwire funktioniert oder nicht.

Erstelle zunächst einige Dateien in deinem System mit dem folgenden Befehl:

touch fil1 file2 file3 file4 file5

Führe nun Tripwire aus, um zu überprüfen, ob Tripwire diese Dateien erkennt oder nicht:

tripwire --check --interactive

Du solltest die neu erstellten Dateien in der folgenden Ausgabe sehen:

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"

===============================================================================

Du kannst den generierten Bericht auch später mit folgendem Befehl überprüfen:

twprint --print-report --twrfile /var/lib/tripwire/report/debian10-20210509-084636.twr

Tripwire Bericht automatisieren

Du kannst auch einen Cron Job einrichten, um Tripwire zu einer bestimmten Zeit auszuführen. Dies kannst du mit dem folgenden Befehl tun:

crontab -e

Füge die folgenden Zeilen ein:

00 06 * * * /usr/sbin/tripwire --check

Speichere und schließe die Datei, wenn du fertig bist.

Die obige Datei wird jeden Morgen um 06:00 Uhr einen Tripwire ausführen. Du kannst den generierten Bericht unter /var/lib/tripwire/report/ einsehen.

Fazit

Glückwunsch! Du hast Tripwire IDS erfolgreich auf Debian 10 installiert und konfiguriert. Ich hoffe, dass dir das hilft, zu überprüfen, welche Dateien oder Verzeichnisse auf deinem System verändert wurden.

Das könnte dich auch interessieren …