Kurzanleitungen/Howtos

Integrität eines ganzen Systems durch Hashsummen sicherstellen

16.11.2018

Checkliste

Möchte man über das komplette Dateisystem eines Linux-Systems Hashsummen erstellen, um z.B. spätere Manipulationen aufzudecken, helfen die Kommandozeilenprogramme md5sum oder sha256sum nicht direkt weiter.
Diese beherrschen von sich aus weder das rekursive Durchlaufen von Verzeichnisbäumen noch den Umgang mit Pseudodateisystemen. Doch dieses Problem läßt sich auch einfach mit einer Kombination aus find, grep, xargs und dem jeweiligen Checksummenprogramm lösen.

Das Anlegen der Checksummendatei (md5sum.txt bzw. sha256sum.txt) geschieht folgendermaßen:

find / -type f -print0 | grep -v '^\/sys\/' | grep -v '^\/proc\/' | grep -v '^\/dev\/' | xargs -0 -I% md5sum "%" > md5sum.txt
find / -type f -print0 | grep -v '^\/sys\/' | grep -v '^\/proc\/' | grep -v '^\/dev\/' | xargs -0 -I% sha256sum "%" > sha256sum.txt
Erklärung der einzelnen Teile:
  • find listet alle Dateien inlusive vollem Verzeichnispfad ausgehend vom Wurzelverzeichnis "/" auf.
  • Die Parameter "-print0" und "-0" sorgen dafür, daß die einzelnen Dateinamen durch Nullzeichen (und nicht durch Leerezeichen) getrennt werden. Andernfalls würde es Probleme mit Dateien und Verzeichnissen geben, die Leerzeichen enthalten.
  • Die grep-Befehle filtern die Pseudodateisysteme /sys, /proc und /dev heraus.
  • xargs nimmt jeweils einen Dateinamen entgegen und gibt ihn an die Hashprogramm weiter. Hierbei wird das Prozentzeichen durch "-I%" zum Dateinamenplatzhalter.

Die Überprüfung erfolgt dann mittels (durch "--quiet" werden nur geänderte Dateien aufgelistet):

md5sum -c --quiet md5sum.txt
sha256sum -c --quiet sha256sum.txt

Achtung! Achtung! Die folgenden Anweisungen richten sich ausschließlich an fachkundige Personen. Bei jedem Schritt kann es zum kompletten Datenverlust kommen. Alle Angaben ohne Gewähr! Die Anweisungen, Skripte, etc. sind ausschließlich für Lernzwecke auf Lernsystemen und nicht für Produktivumgebungen bestimmt!