inoticed: Dateiänderungen auf Linux-Servern erkennen, ohne im Alarm zu ertrinken
Ein Server ändert sich ständig. Updates schreiben Programmdateien, Dienste legen Zwischendateien an, Logs wachsen, Backups entstehen und verschwinden wieder. Irgendwo dazwischen liegt die eine Änderung, die nicht dorthin gehört: ein ausgetauschtes Programm, ein neuer Zugang, ein Skript in einem Verzeichnis, in dem niemand etwas abgelegt hat.
inoticed ist ein kleines Werkzeug, das genau diese Frage beantwortet: Was hat sich auf meinem Server gerade geändert? Es meldet Änderungen an Dateien in Echtzeit per Mail, fasst das Rauschen zusammen und sagt offen, wenn es selbst nicht alles sehen konnte. Es ist Open Source, kostet nichts und läuft auf gängigen Linux-Servern.
Das eigentliche Problem ist nicht das Erkennen Link zu Überschrift
Dass sich eine Datei ändert, kann ein Linux-System seit über zwanzig Jahren von selbst melden. Werkzeuge dafür gibt es. Ich habe jahrelang eines davon benutzt, iwatch. Es hat zuverlässig erkannt, was sich ändert, und für jede einzelne Änderung eine Mail geschickt.
Bei einem gewöhnlichen Systemupdate waren das rund 20 000 Mails in wenigen Sekunden.
Das ist wie eine Alarmanlage, die bei jedem vorbeifahrenden Auto anschlägt. Nach der dritten Nacht stellt man sie ab oder hört nicht mehr hin, und beides läuft auf dasselbe hinaus. Ein Alarm, den niemand mehr liest, schützt nicht.
Dazu kam die Konfiguration. Sie bestand aus Ausnahmen in zwei verschiedenen Schreibweisen, die sich gegenseitig beeinflussten. Irgendwann habe ich aufgehört, sie zu pflegen. Ein Überwachungswerkzeug, dessen Einstellungen niemand mehr anfasst, überwacht irgendwann das Falsche.
Also habe ich ein neues gebaut.
Ein Bericht statt tausend Mails Link zu Überschrift
inoticed sammelt Änderungen ein paar Sekunden lang und schickt dann einen Bericht. Aus 20 000 Mails bei einem Update wird eine Handvoll. So sieht ein solcher Bericht aus:
[inoticed] server1 #1: 6 changes
6 changes on server1
2026-09-12T14:02:11+02:00 modified /etc/passwd
2026-09-12T14:02:14+02:00 created,attrib(2),deleted /tmp/scan.7f3a
2026-09-12T14:02:19+02:00 deleted /etc/fstab
2026-09-12T14:02:23+02:00 moved-in /etc/nsswitch.conf
Die erste Zeile betrifft die Datei, in der die Benutzerkonten eines Systems stehen. Wer die unerwartet geändert sieht, sollte nachfragen.
Interessant ist die zweite Zeile. Dort wurde eine Datei angelegt, verändert und wieder gelöscht, alles in derselben Sekunde. Werkzeuge, die einmal am Tag nachschauen, sehen so etwas nie. Am nächsten Morgen ist die Datei weg, und alles sieht aus wie vorher. Genau so arbeiten aber viele Angriffe: etwas ablegen, ausführen, aufräumen.
Rauschen weglassen, ohne blind zu werden Link zu Überschrift
Bündeln allein reicht nicht. Ein Mailserver schreibt den ganzen Tag Mails auf die Platte, eine Datenbank ändert ständig ihre Dateien. Das ist normal und gehört nicht in einen Sicherheitsbericht.
Die Einstellungen von inoticed bestehen deshalb aus zwei einfachen Listen: was überwacht wird und was nicht.
include = ["/etc/**", "/usr/**", "/boot/**"]
exclude = ["/etc/.git/**"]
Eine Reihenfolge, die man im Kopf behalten muss, gibt es nicht. Was in
exclude steht, gewinnt immer. Diese Einfachheit ist Absicht: Eine
Konfiguration, die man auf einen Blick versteht, wird auch gepflegt.
Für verbreitete Dienste wie Mailserver, Webserver, Datenbanken oder Virenscanner gibt es fertige Filter, die genau deren normales Verhalten ausblenden. Jeder Filter sagt dazu, was trotzdem überwacht bleibt.
Ausserdem wird nicht jede Art von Änderung gleich behandelt. Eine Logdatei wächst den ganzen Tag, das muss niemand wissen. Wenn sie aber gelöscht wird, ist das interessant, weil Angreifer gern ihre Spuren verwischen. Das lässt sich pro Pfad einstellen:
[[rule]]
match = "/var/log/**"
events = ["delete"]
Umgekehrt geht es auch. Auf die Datei mit den Passwort-Hashes eines Systems lässt sich jeder einzelne Lesezugriff melden. Für das ganze System wäre das unbrauchbar, für diese eine Datei ist es ein sehr gezielter Alarm.
Eine Woche zuhören, dann entscheiden Link zu Überschrift
Jeder Server ist anders. Statt alle Ausnahmen von Hand zu suchen, kann inoticed eine Lernphase einlegen. Es zeichnet dabei, zum Beispiel eine Woche lang, alles auf, was es melden würde. Danach schlägt es vor, was sich wiederholt und deshalb vermutlich normal ist.
Wichtig ist, was es dabei nicht tut. Es übernimmt seine Vorschläge nicht selbst. Der Entwurf ist gesperrt, bis ein Mensch ihn durchgesehen und freigegeben hat. Vorschläge für besonders heikle Bereiche, etwa die Systemkonfiguration oder die Zugangsschlüssel von Benutzern, stehen nur als auskommentierter Hinweis darin.
Der Grund steht als Warnung über jedem Entwurf: Wenn während der Lernphase bereits ein Angreifer aktiv war, sehen seine Änderungen darin normal aus. Eine Maschine kann vorschlagen, entscheiden muss jemand, der den Server kennt.
Stille ist kein gutes Zeichen Link zu Überschrift
Die meisten Überwachungswerkzeuge haben eine unbequeme Eigenschaft. Wenn sie nichts melden, kann das zweierlei heissen: Es ist nichts passiert, oder sie laufen nicht mehr. Beides sieht im Postfach gleich aus.
inoticed behandelt das als eigentliches Kernproblem:
- Lebenszeichen. Einmal am Tag kommt eine Mail, auch wenn nichts passiert ist. Bleibt sie aus, stimmt etwas nicht.
- Nummerierte Berichte. Jede Mail trägt eine laufende Nummer. Fehlt eine, ist sie unterwegs verloren gegangen.
- Ehrliche Lücken. Wenn das System so viele Änderungen auf einmal hatte,
dass inoticed nicht alle mitbekommen konnte, steht
INCOMPLETEim Betreff. Der Bericht gibt nicht vor, vollständig zu sein. - Verzögerung statt Verlust. Ist der Mailserver gerade nicht erreichbar, geht nichts verloren. Der Bericht kommt später und sagt, dass er verspätet ist.
- Alarm bei Blindheit. Fällt ein grosser Teil der Überwachung weg, etwa weil eine Festplatte ausgehängt wurde, meldet inoticed das ausdrücklich, statt still mit halber Abdeckung weiterzulaufen.
Daraus folgt der wichtigste Rat dieses Artikels, unabhängig vom Werkzeug: Man sollte nicht nur auf Alarme reagieren, sondern auch darauf, dass ein erwarteter Bericht ausbleibt. Erst dann wird Stille zu einer Information.
Wo inoticed hingehört Link zu Überschrift
Datei-Überwachung, im Fachjargon File Integrity Monitoring, ist keine Aufgabe für ein einzelnes Werkzeug. Die bekannten Programme beantworten verschiedene Fragen. Ein Vergleich mit einem Gebäude hilft:
| Werkzeug | im Gebäude wäre es | beantwortet die Frage |
|---|---|---|
| inoticed | die Alarmanlage | Tut sich gerade etwas, wo es nicht soll? |
| AIDE | die nächtliche Inventur | Ist alles noch genau so wie gestern? |
| auditd | die Videoaufzeichnung | Wer hat es getan, mit welchem Programm? |
| Wazuh | die Sicherheitszentrale | Was passiert auf all unseren Systemen? |
| Lynis | das Gutachten | Ist das Gebäude überhaupt gut gesichert? |
inoticed ersetzt keines davon. Es ergänzt sie. Die Inventur ist gründlich, aber sie kommt einmal am Tag. Die Alarmanlage reagiert sofort, kann aber nicht sagen, ob der Inhalt einer Datei nach der Änderung wieder genau derselbe ist. Zusammen ergeben sie ein brauchbares Bild.
Wer viele Server zentral betreut, ist mit einer Plattform wie Wazuh besser bedient. inoticed richtet sich an einzelne Server und kleinere Umgebungen, in denen eine Mail an den Administrator der Alarmweg ist und keine eigene Infrastruktur dafür aufgebaut werden soll.
Ein Sicherheitswerkzeug muss selbst sicher sein Link zu Überschrift
Ein Programm, das das ganze System überwachen soll, braucht weitreichende Rechte. Damit wird es selbst zum Angriffsziel. Bei der Entwicklung habe ich deshalb vor allem auf vier Dinge geachtet:
Die Einstellungen sind geschützt. inoticed startet nicht, wenn seine Konfiguration von jemand anderem als dem Administrator verändert werden könnte. Zusätzliche Filter können nur ausblenden, nie den Überwachungsbereich erweitern oder ändern, welches Programm die Mails verschickt.
Ein Bericht lässt sich nicht fälschen. Wer auf einem Server Dateien anlegen darf, kann deren Namen frei wählen, auch mit Zeilenumbrüchen. Ohne Vorsorge liessen sich damit falsche Zeilen in einen Bericht schmuggeln oder die Mail an weitere Empfänger umleiten. inoticed verhindert das.
Es lässt sich nicht überfluten. Wer viele Änderungen erzeugt, kann inoticed nicht dazu bringen, den Speicher, die Mailbox oder die Überwachungskapazität des Systems aufzubrauchen. Für alles gibt es Grenzen, und das Erreichen einer Grenze wird gemeldet.
Es ist nachprüfbar. Der Quellcode ist offen, jede veröffentlichte Version ist kryptografisch signiert, und das Programm trägt die Liste seiner Bestandteile in sich. So lässt sich auch nach Jahren noch prüfen, ob eine installierte Version von einer bekannten Schwachstelle betroffen ist.
Geschrieben ist inoticed in Rust, einer Programmiersprache, die ganze Klassen von Speicherfehlern ausschliesst, die in C-Programmen regelmässig zu Sicherheitslücken führen. Ich hatte vorher nie Rust geschrieben. Java, C und dreissig Jahre Linux, aber kein Rust. Für ein Werkzeug, das mit den höchsten Rechten auf einem Server läuft, war es trotzdem die naheliegende Wahl.
Getestet wird es entsprechend gründlich: mit Tausenden automatisch erzeugten Eingaben, mit absichtlich eingebauten Fehlern, um zu prüfen, ob die Tests sie finden, und mit Installationstests auf frischen Systemen.
Was inoticed nicht kann Link zu Überschrift
Ein Werkzeug, das seine Grenzen verschweigt, verleitet zu falscher Sicherheit. Deshalb ausdrücklich:
- inoticed sagt, was sich geändert hat, nicht wer es war.
- Es prüft keine Inhalte. Ob eine geänderte Datei wieder ihren alten Inhalt hat, sagt die Inventur, nicht die Alarmanlage.
- Was passiert, während es nicht läuft, sieht es nicht. Das Lebenszeichen macht einen Ausfall sichtbar, mehr nicht.
- Ein Angreifer mit vollen Rechten kann es abschalten, wie jeden anderen Dienst. Dann fehlt der nächste Bericht, und darauf sollte jemand achten.
- Es ist eine Frühwarnung, keine Abwehr. Es hält niemanden auf, es sorgt dafür, dass man es merkt.
Häufige Fragen Link zu Überschrift
Für wen ist inoticed gedacht? Link zu Überschrift
Für Administratoren einzelner Linux-Server und kleiner Umgebungen, die wissen wollen, wann sich auf ihren Systemen etwas Unerwartetes tut, ohne dafür eine zentrale Sicherheitsplattform aufzubauen.
Was kostet es? Link zu Überschrift
Nichts. inoticed ist Open Source unter der MIT-Lizenz und darf auch kommerziell frei eingesetzt werden.
Ersetzt inoticed einen Virenscanner oder eine Firewall? Link zu Überschrift
Nein. Firewall und Virenscanner versuchen, einen Angriff zu verhindern. inoticed meldet, wenn trotzdem etwas passiert ist. Das eine ersetzt das andere nicht.
Ist inoticed ein Ersatz für iwatch? Link zu Überschrift
Ja, dafür ist es entstanden. Es arbeitet mit derselben Technik, bündelt aber die Meldungen, ist einfacher einzurichten und meldet, wenn es selbst nicht vollständig sehen konnte.
Auf welchen Systemen läuft es? Link zu Überschrift
Auf Linux-Servern mit Debian, Ubuntu, Rocky Linux, AlmaLinux und Red Hat Enterprise Linux. Für Debian und Ubuntu gibt es fertige Filter für viele verbreitete Dienste.
Hiess das nicht mal fwatchd? Link zu Überschrift
Ja. Bis Version 0.7 hiess das Projekt fwatchd. Der Name war bei der zentralen Paketverwaltung für Rust schon vergeben, seit Version 0.8 heisst es inoticed.
Installation, Konfiguration und alle technischen Details stehen im Wiki. Quellcode und Pakete: codeberg.org/randomDuderus/inoticed, Lizenz MIT. Fragen, Korrekturen und eigene Erfahrungen gerne in die Kommentare.