Die meisten Linux-User kennen die Geschichte – am Linux-Desktop sind Virenscanner und Rootkit-Jäger so gut wie unnötig. Am Server, der sieben Tage die Woche im Internet hängt, ist dies natürlich eine andere Geschichte. Solche Linux-Systeme sind auch für Kriminelle lohnende Ziele.
Da man nicht den ganzen Tag den Server kontrollieren kann, hilft eine Einbruchserkennung um Einbrüche erkennen zu können. Hacker, die in das System einbrechen, tun dies nicht deshalb, weil es so lustig ist, sondern um mit dem System etwas anzufangen. Sie verändern Dateien und tauschen Dateien aus, um ihren Einbruch zu verschleiern, legen Backdoors an, um auch bei Aktualisierungen der ausgenutzten Sicherheitslücke wiederkommen zu können.
Um solche Einbrüche zu erkennen, nutzt man nun mehrheitlich Software, die veränderte Dateien erkennt. Dies funktioniert recht einfach – die Software zur Einbruchserkennung speichert von den zu überwachenden Dateien den Hash-Wert in einer eigens abgesicherten Datenbank und vergleicht diese Werte in regelmäßigen Abständen. Passt ein Wert nicht mit dem aktuellen zusammen, meldet die Software dies. Tripwire ist nun eine der bekanntesten Anwendungen dieser Sparte unter Linux.
Tripwire installieren
Unter auf Debian basierenden Linux-Distributionen installiert man diese Software wie üblich ganz einfach über die Paket-Verwaltung durch das Paket „tripwire„. Möchten Sie auch gewarnt werden, um nicht täglich die Log-Dateien der Software durchforsten zu müssen, installieren Sie einen MTA wie etwa Postfix.
Die Installation von Tripwire gelingt am einfachsten am Terminal mit dem Befehl:
apt install tripwire
Zu Beginn fragt die Software nach dem Site-Passwort, dieses dient dazu, die Software abzusichern – daher sollten Sie hier ein absolut sicheres Passwort vergeben – dieses sollte sich natürlich auch vom root-Account unterscheiden. Bestätigen Sie mit Eingabe.
Weiter geht es mit einer Schlüsseldatei – diese wäre natürlich noch sicherer als ein Passwort, ist aber umständlicher, da Sie die Datei nicht auf dem Server liegen lassen können.
Jetzt bestätigen wir das Anlegen der neuen Konfiguration. Anschließend bestätigen Sie noch zweimal die Konfiguration mit Eingabe und vergeben das Passwort zur Absicherung der Software:
Nach der Bestätigung des Passwortes erhalten Sie noch eine kurze Information, damit wäre die grundlegende Einrichtung abgeschlossen. Jetzt geht es um die erweiterte Konfiguration – was soll die Software eigentlich überwachen? Die dazu nötige Datei finden wir unter „/etc/tripwire/twpol.txt“ – diese öffnen wir mit dem gewünschten Terminal-Editor (natürlich als root) – etwa:
nano /etc/tripwire/twpol.txt
vim /etc/tripwire/twpol.txt
Wir scrollen jetzt an das Ende der Datei – an der bisher bestehenden Konfiguration sollten wir nichts ändern, hier überwacht die Software schon ihre eigenen Dateien – also ihre Konfiguration. Als Erstes müssen wir uns natürlich im Klaren sein, was wollen wir überwachen und was nicht? Dateien in Verzeichnissen zu überwachen, die sich jede Sekunde verändern, ist nicht sinnvoll – dies würde bei jedem Scan der Software zu tausenden Fehlwarnungen führen. Zu den nicht zu überwachenden Verzeichnissen gehören also:
- /proc
- /run
- /sys
- /tmp
Und gewisse Verzeichnisse unter „/var“ – etwa das Verzeichnis „/var/log“ und „/var/spool„. Was gilt es zu überwachen? Alles, was sich nicht verändern soll – also etwa das komplette restliche Systemverzeichnis „/„.
Am besten führt man für jedes Verzeichnis eine eigene Regel an, ein kleines Beispiel, um das Verzeichnis „/etc“ zu überwachen:
(
rulename = "/etc",
severity = $(SIG_HI)
)
{
/etc -> $(SEC_CRIT);
}
In der runden Klammer steht so gesehen eine Beschreibung der Regel, in der geschwungenen Klammer die Regel selbst. Unter „rulename =“ geben wir die Bezeichnung an, um später in der Benachrichtigung mehr Übersicht zu haben. Wir können auch Dateien direkt angeben – etwa:
(
rulename = "Apache",
serverity = $(SIG_HI)
)
{
/etc/apache2/sites-avalable/webseite.conf -> $(SEC_CRIT);
}
Mit „severity =“ geben Sie die Sicherheitsstufe an – eine Beschreibung dazu finden Sie bereits in der Konfigurationsdatei selbst:
- SIG_HI – Sehr hoch
- SIG_MED – Sehr niedrig
Möchten Sie sich per E-Mail benachrichtigen lassen, fügen Sie in der runden Klammer folgende weitere Zeile hinzu:
emailto = "mail.adresse@gmail.com"
Die Zeile davor beenden Sie mit einem Komma.
Die Angaben „SEC_CRIT„, „SEC_BIN“ und Co liefern anschließend die Sicherheitsstufe in der Benachrichtigung – auch hierfür gibt es entsprechende Beispiele in der Konfigurationsdatei.
Haben Sie die Konfiguration abgeschlossen, speichern Sie die Datei und übernehmen die Konfiguration:
twadmin -m P /etc/tripwire/twpol.txt
Jetzt generieren Sie den Schlüssel:
twadmin --generate-keys --local-keyfile /etc/tripwire/$HOSTNAME-local.key
Hierbei werden Sie nach dem vergebenen Site-Passwort gefragt. Anschließend initialisieren wir die Datenbank mit den Hash-Werten:
tripwire --init
Damit wäre es geschafft – Sie können jetzt einen ersten manuellen Test starten:
tripwire --check
Die ganze Geschichte packen Sie anschließend in Cron – etwa:
00 5 * * * /usr/sbin/tripwire --check --email-report
Jetzt kommen natürlich immer wieder Updates in das System, oder Sie verändern eine Konfigurationsdatei – hier würde Tripwire sofort Alarm schlagen. Wir aktualisieren die Datenbank mittels:
tripwire --update
Bei jedem Befehl mit Tripwire wird natürlich das dafür angelegte Passwort abgefragt. Tripwire erfordert natürlich etwas Konfiguration – und auch bei Änderungen im System ein Update der Datenbank, aber sehr hohe Sicherheit erlangt man auch unter Linux nicht mit „Hoffentlich passiert nichts„.
Eine weitere Dokumentation finden Sie unter Red Hat, sowie natürlich auf der Manpage mit dem Befehl:
man tripwire
Erstveröffentlichung: Sa 27. Mai 2023, 17:36
Noch keine Reaktion