GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Tripwire-Tutorial:Hostbasiertes Linux-Angriffserkennungssystem

Foto mit freundlicher Genehmigung von judepics

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 .


Linux
  1. Verbessern Sie die Linux-Systemleistung mit noatime

  2. Verbesserte Linux-Sicherheit mit Advanced Intrusion Detection Environment (AIDE)

  3. Linux-AuFS-Beispiele:Ein weiteres Tutorial zum Union-Dateisystem (UnionFS-Implementierung)

  4. So mounten und unmounten Sie ein Dateisystem unter Linux

  5. Grundlegendes Linux-Dateisystem-Tutorial – ext2, ext3, ext4, JFS und XFS

So finden Sie Dateien basierend auf dem Zeitstempel in Linux

So überprüfen/reparieren Sie das Linux-Dateisystem beim Booten

So reparieren Sie Dateisystemfehler in Linux Mint

Verwaltung des Netzwerkdateisystems (NFS) unter Linux

Was ist das Linux-Dateisystem? Einfache Anleitung

Hostet den Dateiumschalter unter Linux