Tripwire ist ein hostbasiertes Intrusion Detection System für Linux. Tripwire überwacht das Linux-System, um nicht autorisierte Änderungen an den Dateien und Verzeichnissen zu erkennen und zu melden. Sobald eine Baseline erstellt wurde, überwacht und erkennt Tripwire, welche Datei hinzugefügt wird, welche Datei geändert wird, was geändert wird, wer sie geändert hat und wann sie geändert wurde. Wenn die Änderungen legitim sind, können Sie die Tripwire-Datenbank aktualisieren, um diese Änderungen zu akzeptieren.
Weitere Informationen zur Überwachungslösung finden Sie in allen unseren vorherigen Artikeln zu Nagios
Diese Schritt-für-Schritt-Anleitung erklärt, wie die Open-Source-Version von tripwire installiert und konfiguriert wird.
1. Tripwire herunterladen
Laden Sie die neueste Tripwire-Open-Source-Version von der Tripwire-Sourceforget-Projektwebsite herunter. Extrahieren Sie den Tripwire-Quellcode wie unten gezeigt in das Verzeichnis /usr/src.
# cd /usr/src # wget http://internap.dl.sourceforge.net/sourceforge/tripwire/tripwire-2.4.1.2-src.tar.bz2 # bzip2 -d tripwire-2.4.1.2-src.tar.bz2 # tar xvf tripwire-2.4.1.2-src.tar
2. Installieren Sie Tripwire
Verwenden Sie die Präfixoption wie unten gezeigt, um das Installationsverzeichnis anzugeben. In diesem Beispiel habe ich tripwire unter /opt/tripwire installiert. Während make install werden Sie zu verschiedenen Benutzereingaben aufgefordert, die unten rot hervorgehoben sind.
# cd tripwire-2.4.1.2-src # ./configure --prefix=/opt/tripwire # make # make install make[3]: Entering directory `/usr/src/tripwire-2.4.1.2-src' prefix="/opt/tripwire" sysconfdir="/opt/tripwire/etc" \ path_to_vi="/bin/vi" path_to_sendmail="/usr/sbin/sendmail" \ ./install/install.sh Installer program for: Tripwire(R) 2.4 Open Source LICENSE AGREEMENT for Tripwire(R) 2.4 Open Source Please read the following license agreement. You must accept the agreement to continue installing Tripwire. Press ENTER to view the License Agreement. [Note: Press enter key as instructed to view the license] Please type "accept" to indicate your acceptance of this license agreement. [do not accept] accept [Note: Type accept to accept the license] This program will copy Tripwire files to the following directories: TWBIN: /opt/tripwire/sbin TWMAN: /opt/tripwire/man TWPOLICY: /opt/tripwire/etc TWREPORT: /opt/tripwire/lib/tripwire/report TWDB: /opt/tripwire/lib/tripwire TWSITEKEYDIR: /opt/tripwire/etc TWLOCALKEYDIR: /opt/tripwire/etc CLOBBER is false. Continue with installation? [y/n] y [Note: Press y to continue the installation] The Tripwire site and local passphrases are used to sign a variety of files, such as the configuration, policy, and database files. (When selecting a passphrase, keep in mind that good passphrases typically have upper and lower case letters, digits and punctuation marks, and are at least 8 characters in length.) Enter the site keyfile passphrase: Verify the site keyfile passphrase: [Note: Assign a passphrase for site keyfile.] Generating key (this may take several minutes)...Key generation complete. (When selecting a passphrase, keep in mind that good passphrases typically have upper and lower case letters, digits and punctuation marks, and are at least 8 characters in length.) Enter the local keyfile passphrase: Verify the local keyfile passphrase: [Note: Assign a passphrase for local keyfile.] Creating signed configuration file... Please enter your site passphrase: Wrote configuration file: /opt/tripwire/etc/tw.cfg [Note: Enter the site passphrase.] Creating signed policy file... Please enter your site passphrase: Wrote policy file: /opt/tripwire/etc/tw.pol [Note: Enter the site passphrase] The installation succeeded.
- Site-Passphrase sichert die Tripwire-Konfigurationsdatei tw.cfg
und die Tripwire-Richtliniendatei tw.pol. Sie müssen eine Site-Passphrase zuweisen
sogar für eine einzelne Instanz tripwire. - Lokale Passphrase schützt die Tripwire-Datenbank und Berichtsdateien.
3. Tripwire-Datenbank initialisieren
Bei der erstmaligen Verwendung sollten Sie die Tripwire-Datenbank wie unten gezeigt initialisieren.
# cd /opt/tripwire/sbin/ # ./tripwire --init Please enter your local passphrase: Parsing policy file: /opt/tripwire/etc/tw.pol Generating the database... *** Processing Unix File System *** The object: "/sys" is on a different file system...ignoring. ### Warning: File system error. ### Filename: /cdrom ### No such file or directory ### Continuing... ### Warning: File system error. ### Filename: /floppy ### No such file or directory ### Continuing... ### Warning: File system error. ### Filename: /initrd ### No such file or directory ### Continuing... ### Warning: File system error. Wrote database file: /opt/tripwire/lib/tripwire/prod-db-srv.twd The database was successfully generated.
4. Ändern Sie die Tripwire-Richtliniendatei
Wie oben gezeigt, wird während der Initialisierung der Tripwire-Datenbank möglicherweise die Fehlermeldung „No such file or directory“ für einige der Standarddateien angezeigt, die in der Tripwire-Richtliniendatei erwähnt werden. Wenn Ihr System diese Dateien nicht hat, bearbeiten Sie die Richtliniendatei und kommentieren Sie diese Einträge.
Ändern Sie beispielsweise /opt/tripwire/etc/twpol.txt Tripwire-Richtliniendatei und kommentieren Sie /cdrom und /floppy wie unten gezeigt aus.
( rulename = "OS Boot Files and Mount Points", ) { /boot -> $(ReadOnly) ; # /cdrom -> $(Dynamic) ; # /floppy -> $(Dynamic) ; /mnt -> $(Dynamic) ; }
Mit Hilfe der Tripwire-Richtliniendateien können Sie die Verzeichnisse und Dateien definieren, die auf Änderungen überwacht werden müssen. Sie können auch detaillierter vorgehen und die Dateiattribute angeben, die entweder überwacht oder ignoriert werden sollen.
Im Folgenden sind einige der UNIX-Systemeigenschaften aufgeführt, die von tripwire überwacht werden.
- Hinzufügen, Löschen und Ändern von Dateien
- Dateiberechtigungen und -eigenschaften
- Zugriffszeitstempel
- Zeitstempel der Änderung
- Dateityp und Dateigröße
- Benutzer-ID des Eigentümers und Gruppen-ID des Eigentümers
- Hash-Prüfung:CRC-32, POSIX 1003.2-konforme 32-Bit-Zyklische Redundanzprüfung; MD5, der RSA Security Message Digest-Algorithmus; SHA, Teil des SHS/SHA-Algorithmus; HAVAL, ein starker 128-Bit-Signaturalgorithmus
5. Tripwire-Richtliniendatei aktualisieren
Nachdem Sie die Richtliniendatei geändert haben, muss sie wie unten gezeigt aktualisiert werden.
# ./tripwire --update-policy --secure-mode low ../etc/twpol.txt Parsing policy file: /opt/tripwire/etc/twpol.txt Please enter your local passphrase: Please enter your site passphrase: ======== Policy Update: Processing section Unix File System. ======== Step 1: Gathering information for the new policy. The object: "/sys" is on a different file system...ignoring. ======== Step 2: Updating the database with new objects. ======== Step 3: Pruning unneeded objects from the database. Wrote policy file: /opt/tripwire/etc/tw.pol Wrote database file: /opt/tripwire/lib/tripwire/prod-db-srv.twd
Hinweis: Wenn zwischen der Tripwire-Initialisierung und der Tripwire-Aktualisierungsrichtlinie Dateien geändert wurden, werden sie unter der Ausgabe „Schritt 1:Sammeln von Informationen für die neue Richtlinie“ des obigen Befehls aufgelistet.
### Warning: Policy Update Changed Object. ### An object has been changed since the database was last updated. ### Object name: Conflicting properties for object ### /u01/app/oracle/oradata/dbfiles/prod01.dbf ### > Modify Time ### > CRC32 ### > MD5
6. Suchen Sie nach Änderungen an den Dateien und aktualisieren Sie die Tripwire-Datenbank.
Sobald die Tripwire-Einrichtung abgeschlossen ist, sollten Sie regelmäßig überprüfen, welche Dateien seit der letzten Aktualisierung der Tripwire-Datenbank hinzugefügt oder geändert wurden. Sie können diese Prüfung wie unten gezeigt interaktiv von der Befehlszeile aus durchführen.
# ./tripwire --check --interactive Parsing policy file: /opt/tripwire/etc/tw.pol *** Processing Unix File System *** Performing integrity check... Wrote report file: /opt/tripwire/lib/tripwire/report/prod-db-srv-20081204-114336.twr
Dadurch wird automatisch die folgende Tripwire-Berichtsdatei im vi geöffnet, in der Sie alle Dateien überprüfen können, die dem System hinzugefügt oder geändert wurden. Wie unten gezeigt, haben die Dateien „Hinzugefügt“ und „Geändert“ ein Häkchen davor, was anzeigt, dass Sie diese Änderungen akzeptieren, damit sie in der Tripwire-Datenbank aktualisiert werden.
=============================================================================== Report Summary: =============================================================================== Host name: prod-db-srv Host IP address: 192.168.1.10 Host ID: None Policy file used: /opt/tripwire/etc/tw.pol Configuration file used: /opt/tripwire/etc/tw.cfg Database file used: /opt/tripwire/lib/tripwire/prod-db-srv.twd Command line used: ./tripwire --check --interactive Remove the "x" from the adjacent box to prevent updating the database with the new values for this object. Added: [x] "/u01/app/oracle/diag/rdbms/proddb/proddb/trace/proddb_m000_11376.trc" [x] "/u01/app/oracle/diag/rdbms/proddb/proddb/trace/proddb_m000_11376.trm" Modified: [x] "/u01/app/oracle/diag/rdbms/proddb/proddb/metadata/INC_METER_CONFIG.ams" [x] "/u01/app/oracle/diag/rdbms/proddb/proddb/metadata/INC_METER_INFO.ams" Added object name: /u01/app/oracle/diag/rdbms/proddb/proddb/trace/proddb_m000_11376.trc Property: Expected Observed ------------- ----------- ----------- * Object Type --- Regular File * Device Number --- 2049 * Inode Number --- 12026017 * Mode --- -rw-r----- * Num Links --- 1 * UID --- oracle (1082) * GID --- oinstall (1083) * Size --- 837 * Modify Time --- Sat 06 Dec 2008 10:01:51 AM PST * Blocks --- 8 * CRC32 --- AYxMeo * MD5 --- AXSkOul8R/np0fQP4q3QLv Modified object name: /u01/app/oracle/diag/tnslsnr/proddb/listener/trace/listener.log Property: Expected Observed ------------- ----------- ----------- Object Type Regular File Regular File Device Number 2049 2049 Inode Number 2295281 2295281 Mode -rw-r----- -rw-r----- Num Links 1 1 UID oracle (1082) oracle (1082) GID oinstall (1083) oinstall (1083) * Size 5851880 5858608 * Modify Time Sat 06 Dec 2008 09:58:53 AM PST Sat 06 Dec 2008 11:39:56 AM PST * Blocks 11456 11472 * CRC32 ANdM8R CK+bWM * MD5 DCW84lCuD2YJOhQd/EuVsn CV8BMvZNJB9KQBXAf5yRDY Please enter your local passphrase: Incorrect local passphrase. Please enter your local passphrase: Wrote database file: /opt/tripwire/lib/tripwire/prod-db-srv.twd
7. Wie wird die twr-Berichtsdatei angezeigt?
Alle Tripwire-Berichtsdateien mit der Erweiterung *.twr werden im Verzeichnis /opt/tripwire/lib/tripwire/report gespeichert. Die Tripwire-Berichtsdatei *.twr ist keine Textdatei, die Sie direkt anzeigen können. Verwenden Sie zum Anzeigen des Berichts twprint und konvertieren Sie die *.twr-Datei wie unten gezeigt in ein lesbares Textformat.
# ./twprint --print-report --twrfile \ /opt/tripwire/lib/tripwire/report/prod-db-srv-20081204-114336.twr > \ /tmp/readable-output.txt
8. Überwachen Sie regelmäßig die Integrität des Linux-Systems
Fügen Sie die Tripwire-Überprüfung als Cron-Job hinzu, um Änderungen laufend zu überwachen und zu melden. Fügen Sie beispielsweise die folgende Zeile zu Ihrer Crontab hinzu, um die Tripwire-Prüfung täglich um 4:00 Uhr auszuführen
# Tripwire Monitor process 00 4 * * * /opt/tripwire/sbin/tripwire --check
9. Speicherorte von Tripwire-Konfigurations- und Richtliniendateien
Verwenden Sie twadmin, um die aktuellen Tripwire-Richtliniendateien anzuzeigen. Unten wird nur eine Teilausgabe gezeigt.
#./twadmin --print-polfile @@section GLOBAL TWDOCS="/opt/tripwire/doc/tripwire"; TWBIN="/opt/tripwire/sbin"; TWPOL="/opt/tripwire/etc"; TWDB="/opt/tripwire/lib/tripwire"; TWSKEY="/opt/tripwire/etc"; TWLKEY="/opt/tripwire/etc"; TWREPORT="/opt/tripwire/lib/tripwire/report"; HOSTNAME=prod-db-srv;
Verwenden Sie twadmin, um Informationen über alle Tripwire-Konfigurationsdateien wie unten gezeigt zu erhalten.
# ./twadmin --print-cfgfile ROOT =/opt/tripwire/sbin POLFILE =/opt/tripwire/etc/tw.pol DBFILE =/opt/tripwire/lib/tripwire/$(HOSTNAME).twd REPORTFILE =/opt/tripwire/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr SITEKEYFILE =/opt/tripwire/etc/site.key LOCALKEYFILE =/opt/tripwire/etc/prod-db-srv-local.key EDITOR =/bin/vi LATEPROMPTING =false LOOSEDIRECTORYCHECKING =false MAILNOVIOLATIONS =true EMAILREPORTLEVEL =3 REPORTLEVEL =3 MAILMETHOD =SENDMAIL SYSLOGREPORTING =false MAILPROGRAM =/usr/sbin/sendmail -oi -t
Wenn Ihnen dieser Artikel gefallen hat, markieren Sie ihn bitte auf delicious, Digg and Stumble it .