Tripwire 2.3 Installation und Konfiguration

Bei Tripwire handelt es sich um ein klassisches Host-based Intrusion Detection System (IDS). Es überwacht die Eigenschaften von Dateien und Verzeichnissen, wodurch Änderungen an diesen sehr schnell erkannt werden. Der Einsatz mach also nur Sinn, wenn Datei selten geändert werden, da ansonsten ständig Fehlalarme verursacht werden. Da sich Konfigurationsdateien selten ändern, ist das Tool für die grundlegende Überwachung der Integrität eines Linuxsystems sehr gut geeignet.
Der Hersteller Tripware Inc. bietet neben dem Source Code für Linux (Version 2.3.47) auch eine kommerzielle Variante für alle Betriebssysteme mit einem erweiterten Funktionsumfang an.

Im folgenden wird die Installation und Konfiguration von Tripwire unter Linux beschrieben.

Installation

Denkbar einfach ist die Installation von Tripwire: als root die heruntergeladene Datei entpacken, install.cfg anpassen und install.sh ausführen. Während der Installation werden die wichtigen Key-Files automatisch erzeugt. Der Anwender hat nur die Wahl des Ablageortes - es sollte in jedem Fall ein read-only Medium sein.

An dieser Stelle sei auf die Wichtigkeit der Keyfiles (local- und site-key) hingewiesen:

Es ist von großer Wichtigkeit, daß die Konfigurationsdateien von Tripware vor unberechtigtem Zugriff geschützt werden. Gelingt es einem Angreifer dieses Dateien zu manipulieren, so kann er die Überwachung unterlaufen. Aus diesem Grund sind alle Konfigurationsdateien mit Hilfe der Public-Key Verschlüsselung signiert. Dazu werden zwei unterschiedliche Schlüssel verwendet um kritische Dateien zu schützen - einer oder gar beide werden zu Durchführung fast jeder Konfigurationsänderung in Tripware benötigt.
Der "site key" schützt Dateien, die auf verschiedenen Systemen genutzt werden können. Dazu gehören zum Beispiel die Policy- und die Konfigurationsdateien. Der "local key" schützt Dateien, die zu jeweiligen Maschine gehören, wie zum Beispiel die Tripware Datenbank.
Weitere Informationen zu den Schlüsseln sind in der twadmin (8) man page zu finden.

Konfiguration

Für die Konfiguration werden folgende beiden Dateien verwendet und mit einem Texteditor bearbeitet:
  • twcfg.txt - Konfigurationsdatei von Tripwire
  • twpol.txt - Datei enthält Definition der Überwachungsfunktionen
Beispielkonfiguration der Datei twcfg.txt
# Tripwire Executable
ROOT                 =/usr/local/sbin
POLFILE              =/etc/tripwire/tw.pol

# Name der Datenbank
DBFILE              =/var/lib/tripwire/$(HOSTNAME).twd

# Name des Reportfiles
REPORTFILE          =/var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr

SITEKEYFILE         =/etc/tripwire/site.key
LOCALKEYFILE        =/etc/tripwire/Zentral58-local.key
EDITOR              =/bin/vi

# verlange Key-Phrase so spät wie möglich (increase security)
LATEPROMPTING       =true

# Änderungen an Dateien ziehen Veränderungen an Verzeichnissen nach sich
# diese "Doppel-Meldungen" vermeiden
LOOSEDIRECTORYCHECKING =true

# Mail auch bei keiner File-Verletzungen senden
MAILNOVIOLATIONS     =true
EMAILREPORTLEVEL     =3
REPORTLEVEL          =3
MAILMETHOD           =SMTP
SMTPHOST             =emailserver.domain.com
SYSLOGREPORTING      =false
Policy-Beispiele in Datei twpol.txt
# folgende Dateien/Verzeichnisse werden überwacht

# / wir rekursiv überprüft
/                       ->      $(ReadOnly);

# für /etc werden einige Ausnahmen gemacht
/etc                   ->      +pinugtsdbCM-rlacSH;

# folgende Verzeichnisse/Dateien werden nicht überwacht

!/boot;
!/proc;
!/var;
!/root;
!/dev;
!/tmp;

!/etc/mtab;
!/etc/ntp.drift;
!/etc/ld.so.cache;
!/etc/snmpd.agentinfo;
!/etc/ssh_random_seed;
!/etc/mail/sendmail.st;
!/etc/named.conf;
Aktivierung von Tripwire

Um die zuvor gemachte Konfiguration zu aktivieren, muss das Config-File einmalig verschlüsselt werden:

~$: /usr/local/sbin/twadmin -m F -v -c /etc/tripwire/tw.cfg -S \
/etc/tripwire/site.key /etc/tripwire/twcfg.txt


Tripwire(R) 2.3.0.47 for Linux

Using plaintext config file: /etc/tripwire/twcfg.txt
Opening key file: /etc/tripwire/site.key
Opening key file: /etc/tripwire/site.key
Please enter your site passphrase:
Wrote configuration file: /etc/tripwire/tw.cfg

Als nächstes wird auch die Policy-Dateien mit dem "site key" verschlüsselt":
~$: /usr/local/sbin/twadmin -m P -v -c /etc/tripwire/tw.cfg -S \
/etc/tripwire/site.key /etc/tripwire/twpol.txt

Tripwire(R) 2.3.0.47 for Linux

Opening configuration file: /etc/tripwire/tw.cfg
This file is encrypted.

Opening key file: /etc/tripwire/site.key
Using plaintext policy file: /etc/tripwire/twpol.txt
Opening key file: /etc/tripwire/site.key
Please enter your site passphrase:
Wrote policy file: /etc/tripwire/tw.pol

Nun muß noch die Datenbank angelegt bzw. initialisiert werden:
~$: /usr/local/sbin/tripwire -m i -v -c /etc/tripwire/tw.cfg -S \
/etc/tripwire/site.key -p /etc/tripwire/tw.pol -L /etc/tripwire/hostname-local.key

Gerating Information for ....
Please enter your local passphrase:
Wrote database file: /var/lib/tripwire/tripwire.twd
The database was successfully generated.
Um zu überprüfen, ob sie auch erstellt wurde, kann im Verzeichnis /var/etc/tripware geschaut werden, ob es eine Datei namens hostname.twd gibt. Der Hostname wird als Synonym für den Namen des lokalen Computers verwendet.
/var/lib/tripwire # ls -al
insgesamt 994
drwxr-xr-x    3 root     root          104 Sep 25 11:39 ./
drwxr-xr-x   36 root     root          904 Sep 25 10:30 ../
-rw-r--r--    1 root     root      1015524 Sep 25 11:39 hostname.twd
drwxr-x---    2 root     root           48 Sep 25 10:30 report/
Als letzter Schritt wird ein Cronjob angelegt, der dafür sorgt, daß die Datenbank regelmäßig überprüft wird.
~$: cat /etc/crontab

# jede Nacht 1:00 FS auf Veränderungen überprüfen
0  1  * * *     root  /root/bin/chktwdb.sh

Veränderungen am Filesystem akzeptieren und Datenbank updaten

/usr/local/sbin/tripwire/report -m u -a -r latest_reportfile.twr

Please enter your local passphrase:
Wrote database file: /var/lib/tripwire/hostname.twd
Dabei haben die Schalter des "report" Befehls folgende Bedeutung:
m u  update database
a    update all, no promting (Achtung, Änderungen werden einfach übernommen!)
r    specify reportfile
Zur Prüfung wird ein Shellscript namens "chktwdb.sh" verwendet. Der Aufbau und die Funktionen werden nachfolgend erläutert:
#!/bin/bash

# alte Reports löschen
/bin/rm /var/lib/tripwire/report/*

# Variablen deklarieren
NAME=$(hostname)
DATE=`/bin/date +%F` # aktuelles datum speichern
RECIPIENT="emergency@domain.com" # empfänger der mail
# anzahl der file-verletzungen
VIOLATIONS=`tripwire -m c -s|grep "Total violations found"|awk -F" " '{print $4}'`
# aktueller report-file (variable fuer mail-text benötigt)
LAST_REP=`ls /var/lib/tripwire/report|tail -n 1`

# wenn verletzungen groesser 0, mail senden
if [ $VIOLATIONS -gt 0 ]; then

/bin/cat </tmp/tw_report

    Dies ist ein automatischer Tripwire Report. Die ueberwachten Daten auf $NAME
    haben sich geaendert.
    Um die Aenderungen in die Datenbank aufzunehmen, fuehren Sie als Root folgenden
    Befehl aus:

    ~/# tripwire -m u -a -r /var/lib/tripwire/report/$LAST_REP

    Dabei werden ALLE Änderungen, die im folgenden Report-File stehen, in die
    Datenbank übernommen.

    Die Report-Files befinden sich in /var/lib/tripwire/report

    Um diese Meldung nach einer Aenderung am System zu vermeiden, führen Sie
    folgende Befehle aus:

    ~/# tripwire -m c -s
    ~/# tripwire -m u -a -r /var/lib/tripwire/report/

    Folgende Aenderungen im Dateisystem wurden am $DATE in Report $LAST_REP
    festgestellt:

EOF

`twprint -m r -r /var/lib/tripwire/report/$LAST_REP >> /tmp/tw_report`
mail -s "TRIPWIRE ALERT: $NAME" -a /tmp/tw_report $RECIPIENT <

    
Artikel Info
online seit:  28.09.03
Autor: Michael Gasch

Bewertung:

Rating : 3.3Rating : 3.3Rating : 3.3Rating : 3.3

Sie können diesen Artikel:

  • bewerten
  • kommentieren (2)
  • weiterempfehlen
  •  

    Nutzungshinweis und Copyright Dieser Beitrag wurde unter Verwendung der genannten Quellen geschrieben. Alle Rechte liegen beim Autor! Jede Verwertung außerhalb der Grenzen des Urheberrechtsgesetztes ist ohne Zustimmung des Autors unzulässig und strafbar. Dies gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmung und die Einspeicherung und Bearbeitung in elektronischen Systemen.

    Die rechtmäßige Verlinkung dieser Seite ist ausdrücklich erwünscht. Dabei muß klar erkennbar sein, daß es sich nicht um eigenen Inhalt der verlinkenden Seiten handelt. Des Weiteren wäre es nett, wenn der Webmaster von der Verlinkung informiert wird. Eine unrechtmäßige Verlinkung (Laden der Seite innerhalb von Frames u.ä.) ist ausdrücklich verboten.

    Nutzungserlaubnis für www.protecus.de und www.different-thinking.de wurde durch die Autoren erteilt!
    Hauptseite rechtliche Hinweise Impressum

    hosted by All-Inkl