Wenn sich /usr/bin/ssh plötzlich ändert und niemand war’s, ist das kein Mysterium — das ist ein Incident mit Ansage. Genau dafür gibt es File-Integrity-Monitoring. AIDE und Tripwire vergleichen den Ist-Zustand deines Systems mit einem bekannten guten Zustand. Klingt trocken, rettet aber Nerven.
Was wir überwachen wollen
Die Idee ist simpel: Beim Setup wird eine Datenbank aus Hashes, Dateirechten, Besitzern, Größen und Zeitstempeln gebaut. Später prüfst du dagegen. Wenn jemand eine Binary austauscht, eine Config manipuliert oder heimlich ein SUID-Bit setzt, gibt es Alarm.
Wichtig: Die initiale Datenbank muss sauber sein. Wenn dein System schon kompromittiert ist, konservierst du sonst den Einbruch als „alles okay“. Klassiker. Nicht machen.
AIDE installieren und initialisieren
Auf Debian/Ubuntu ist AIDE schnell am Start:
sudo apt update
sudo apt install aideAuf RHEL/Alma/Rocky sieht es ähnlich aus:
sudo dnf install aideJetzt bauen wir die initiale Datenbank:
sudo aideinitJe nach Distribution landet die neue Datenbank zum Beispiel unter /var/lib/aide/aide.db.new. Die schieben wir an die richtige Stelle:
sudo cp /var/lib/aide/aide.db.new /var/lib/aide/aide.dbDann der erste Check:
sudo aide --checkWenn AIDE jetzt meckert, hast du entweder ein sehr lebendiges System oder direkt ein Problem. Bei frischen Servern ist meistens alles ruhig. So mögen wir das.
AIDE-Regeln sinnvoll anpassen
Die Default-Regeln sind brauchbar, aber nicht heilig. /var/log ändert sich dauernd. /tmp auch. Da willst du nicht jedes Mal einen Roman im Report.
Ein minimales Beispiel:
# /etc/aide/aide.conf
database=file:/var/lib/aide/aide.db
database_out=file:/var/lib/aide/aide.db.new
gzip_dbout=yes
NORMAL = p+i+n+u+g+s+m+c+sha256
PERMS = p+i+u+g
/bin NORMAL
/sbin NORMAL
/usr/bin NORMAL
/usr/sbin NORMAL
/etc NORMAL
/var/log PERMS
!/tmp
!/var/tmp
!/proc
!/sys
!/dev
!/runKurz übersetzt: Für Binaries und /etc wollen wir das volle Programm inklusive Hashes. Bei Logs interessieren uns eher Rechte und Besitzer. Pseudo-Dateisysteme fliegen raus, weil sie sonst Chaosorakel spielen.
Nach jeder legitimen Änderung — Paketupdate, Config-Anpassung, neues Tool — musst du die Datenbank aktualisieren:
sudo aide --update
sudo cp /var/lib/aide/aide.db.new /var/lib/aide/aide.dbJa, das ist Absicht. Integrität ohne Pflege ist wie Backup ohne Restore-Test: ein schönes Märchen.
Automatischer Check per Cron
Ein täglicher Check reicht für viele Systeme als Basislinie:
sudo crontab -e# /etc/cron.d/aide-check
15 3 * * * root /usr/bin/aide --checkIn der Praxis leitest du die Ausgabe an Mail, Monitoring oder dein SIEM weiter. Hauptsache, sie landet nicht in /dev/null, diesem schwarzen Loch der Verantwortung.
Und Tripwire?
Tripwire macht konzeptionell dasselbe, ist aber policy-lastiger. Installation auf Debian/Ubuntu:
sudo apt install tripwireBeim Setup erzeugst du Site- und Local-Keys. Danach initialisierst du die Datenbank:
sudo tripwire --init
sudo tripwire --checkDie Policy liegt typischerweise unter /etc/tripwire/twpol.txt. Nach Anpassungen musst du sie neu signieren:
sudo twadmin --create-polfile /etc/tripwire/twpol.txt
sudo tripwire --initTripwire ist streng, manchmal etwas zickig, aber robust. AIDE ist oft schneller produktiv und angenehm skriptbar. Für die meisten Linux-Server greifen wir zuerst zu AIDE. Wenn Compliance oder bestehende Standards Tripwire verlangen: auch okay, dann beißt man sich einmal durch die Policy.
Unser Fazit aus dem Maschinenraum
AIDE und Tripwire verhindern keinen Einbruch. Sie sagen dir aber, dass jemand am Inventar herumgefummelt hat. Und das ist Gold wert.
Unsere Minimalempfehlung: AIDE installieren, /etc, /bin, /sbin, /usr/bin und /usr/sbin überwachen, volatile Pfade ausschließen, Reports ans Monitoring hängen. Danach bei jedem Change die Datenbank bewusst aktualisieren.
Filesystem-Integrität ist keine Magie. Eher ein Bewegungsmelder für deine Server. Und Bewegungsmelder sind praktisch — besonders, wenn nachts jemand mit Root-Rechten durchs Wohnzimmer läuft.