/ / Sicheres Löschen von Dateien unter Linux

Sicheres Löschen von Dateien unter Linux

Öffnen Sie die Festplatte in der Hot-Swap-Schublade

Vernichten Sie alte Datendateien aus demselben Grund, aus dem Sie alte Papierdokumente vernichten. Wir sagen Ihnen, was Sie über das sichere Löschen von Linux-Dateien wissen müssen. Dieses Tutorial behandelt die shred Befehl und die secure-delete Reihe von Dienstprogrammen.

Gelöschte Dateien können normalerweise wiederhergestellt werden

Durch das Löschen einer Datei wird diese nicht entferntIhre Festplatte. Es hängt alles davon ab, wie Ihr Dateisystem Inodes verwendet. Dies sind die Datenstrukturen im Dateisystem, die die Metadaten zu den Dateien enthalten. Der Name der Datei, ihre Position auf der Festplatte, ihre Attribute und Berechtigungen usw. werden alle in einem Inode gespeichert. Ein Verzeichnis ist nicht mehr als eine Datei. Eine, die die Namen und Inode-Nummern der Dateien enthält, die das Verzeichnis enthält.

Wenn Sie eine Datei mit löschen rmgibt das Dateisystem den entsprechenden Inode freiund passt die Verzeichnisdatei an. Dies markiert den Speicherplatz auf der Festplatte, den die Datei verwendet hat, als nicht verwendet. Stellen Sie sich vor, Sie gehen in eine Bibliothek, durchsuchen die Kartei, suchen die Katalogkarte eines Buches und zerreißen sie. Das Buch ist noch im Regal. Es ist nur schwieriger zu finden.

Mit anderen Worten, der Raum, der von derDie Datei kann jetzt von anderen Dateien verwendet werden. Aber der Inhalt der alten Datei befindet sich immer noch in diesem Bereich. Bis dieser Speicherplatz überschrieben wird, besteht eine gute Chance, dass die Datei abgerufen werden kann.

Es ist jedoch nicht so einfach, eine Datei vollständig zu entfernen, wie sie einfach zu überschreiben. Wie wir sehen werden.

Tun Sie dies nicht mit SSDs

Diese Techniken sind für traditionelleelektromechanische Festplattenlaufwerke (HDD) und sollten nicht mit Solid-State-Laufwerken (SSD) verwendet werden. Dies funktioniert nicht und führt zu zusätzlichen Schreibvorgängen und unnötigem Verschleiß Ihrer SSD. Um Daten von einer SSD sicher zu löschen, sollten Sie das Dienstprogramm verwenden, das vom Hersteller Ihrer SSD bereitgestellt wird.

VERBUNDEN: So löschen Sie Dateien und Verzeichnisse im Linux-Terminal

Der Shred-Befehl

shred wurde entwickelt, um das Überschreiben für Sie durchzuführenEine gelöschte Datei kann nicht wiederhergestellt werden. Es ist in allen Linux-Distributionen enthalten, die während der Recherche für diesen Artikel getestet wurden, einschließlich Ubuntu, Fedora und Manjaro.

In diesem Beispiel arbeiten wir in einemVerzeichnis mit dem Namen ~ / research, das viele Textdateien enthält. Es enthält auch einige andere Verzeichnisse, die wiederum andere Dateien enthalten. Wir gehen davon aus, dass diese Dateien vertraulich sind und vollständig von der Festplatte gelöscht werden müssen.

Wir können die Verzeichnisbaumstruktur sehen, indem wir das benutzen tree Befehl wie folgt. Das -d (Verzeichnis) Option verursacht tree um nur Verzeichnisse aufzulisten und nicht um alle Dateien aufzulisten. Die Verzeichnisbaumstruktur sieht folgendermaßen aus:

tree -d

Verzeichnisbaumstruktur in einem Terminalfenster

Shreddern einer einzelnen Datei

Um eine einzelne Datei zu zerkleinern, können wir den folgenden Befehl verwenden. Die Optionen, die wir verwenden, sind:

  • u: Datei nach dem Überschreiben freigeben und entfernen.
  • v: Ausführliche Option, damit shred sagt uns, was es tut.
  • z: Führt ein endgültiges Überschreiben mit Nullen durch.
shred -uvz Preliminary_Notes.txt_01.txt

shred -uvz Preliminary_Notes.txt_01.txt in einem Terminalfenster

shred überschreibt die Datei standardmäßig viermal. Die ersten drei Durchgänge verwenden Zufallsdaten, und der letzte Durchgang verwendet Nullen, wie von uns angefordert. Anschließend wird die Datei entfernt und einige der Metadaten im Inode überschrieben

Shred macht vier Pässe

Festlegen der Anzahl der Überschreibdurchläufe

Wir können fragen shred Um mehr oder weniger Überschreibdurchgänge zu verwenden, verwenden Sie die -n Option (Nummer). shred wird immer mindestens einen Durchgang verwenden. Die Nummer, die wir hier angeben, ist die Nummer von extra Pässe benötigen wir shred aufführen. Damit shred wird immer einen Durchgang mehr machen als die Nummer, nach der wir fragen. Um insgesamt drei Pässe zu erhalten, fordern wir zwei zusätzliche Pässe an:

shred -uvz -n 2 Preliminary_Notes.txt_02.txt

shred -uvz -n 2 Preliminary_Notes.txt_02.txt in einem Terminalfenster

Wie erwartet, shred macht drei Pässe.

Shred macht drei Durchgänge in einem Terminalfenster

Weniger Pässe - weniger Shreddings, wenn Sie möchten - sind offensichtlich schneller. Aber ist es weniger sicher? Interessanterweise sind drei Durchgänge wahrscheinlich mehr als genug.

VERBUNDEN: Sie müssen eine Festplatte nur einmal löschen, um sie sicher zu löschen

Zerkleinern mehrerer Dateien

Platzhalter können mit verwendet werden shred um Dateigruppen auszuwählen, die gelöscht werden sollen. Das * steht für mehrere Zeichen, und die ? steht für ein einzelnes Zeichen. Dieser Befehl löscht alle verbleibenden "Preliminary_Notes" -Dateien im aktuellen Arbeitsverzeichnis.

shred -uvz -n 2 Preliminary_Notes_*.*

shred -uvz -n 2 Vorbemerkungen _ *. * in einem Terminalfenster

Die restlichen Dateien werden jeweils von verarbeitet shred im Gegenzug.

Ausgabe von Shred in einem Terminalfenster

shred hat keine rekursive Option, daher kann sie nicht zum Löschen von Verzeichnisbäumen verschachtelter Verzeichnisse verwendet werden.

Das Problem mit dem sicheren Löschen von Dateien

So gut wie shred Es gibt ein Problem. Moderne Journaling-Dateisysteme wie ext3 und ext4 unternehmen enorme Anstrengungen, um sicherzustellen, dass sie nicht kaputt gehen, beschädigt werden oder Daten verlieren. Bei Journaling-Dateisystemen kann nicht garantiert werden, dass das Überschreiben tatsächlich über den von der gelöschten Datei belegten Festplattenspeicher erfolgt.

Wenn Sie sich sicher sind, dass die Dateien ein bisschen gründlicher gelöscht wurden als rm hätte es dann getan shred ist wahrscheinlich in Ordnung. Aber machen Sie nicht den Fehler, zu glauben, dass die Daten definitiv verschwunden und nicht mehr wiederherstellbar sind. Das ist durchaus möglich nicht der Fall.

VERBUNDEN: Warum Sie eine Datei nicht sicher löschen können und was Sie stattdessen tun müssen

Die Suite zum sicheren Löschen

Das secure-delete befehle versuchen die besten anstrengungen zu überwindenJournaling-Dateisysteme und um die Datei sicher zu überschreiben. Aber genau die gleichen Einschränkungen gelten. Es gibt immer noch keine Garantie dafür, dass das Überschreiben tatsächlich über den Bereich der Festplatte erfolgt, den Sie zum Löschen der gewünschten Datei benötigen. Es gibt mehr Chancen, aber keine Garantie.

Das secure-delete Befehle verwenden die folgende Reihenfolge von Überschreibungen und Aktionen:

  • 1 mit 0xFF Wert Bytes überschreiben.
  • 5 überschreibt mit zufälligen Daten.
  • 27 Überschreibungen mit von Peter Gutmann definierten Sonderwerten.
  • 5 weitere überschreiben mit zufälligen Daten.
  • Benennen Sie die Datei in einen zufälligen Wert um.
  • Kürzen Sie die Datei.

Wenn Ihnen das alles übertrieben erscheint, sind Sie dabeigute Firma. Peter Gutmann, Professor an der Universität Aukland, scheint das ebenfalls übertrieben. Er veröffentlichte 1996 einen Artikel über diese Techniken, aus dem der urbane Mythos hervorging, dass Sie alle in diesem Artikel diskutierten Techniken gleichzeitig anwenden müssen.

Peter Gutmann hat seitdem versucht, den Geist wieder in die Flasche zu bekommen, indem er sagte: "Ein gutes Schrubben mit zufälligen Daten wird genauso gut funktionieren, wie es zu erwarten ist."

Aber wir sind da, wo wir sind, und das sind die verschiedenen Techniken, die von der secure-delete befehle. Aber zuerst müssen wir sie installieren.

Installieren von Secure-Delete

Verwenden apt-get um dieses Paket auf Ihrem System zu installieren, wenn Sie Ubuntu oder eine andere Debian-basierte Distribution verwenden. Verwenden Sie auf anderen Linux-Distributionen stattdessen das Paketverwaltungstool Ihrer Linux-Distribution.

sudo apt-get install secure-delete

sudo apt-get installiere secure-delete in einem Terminalfenster

Es gibt vier Befehle in der secure-delete bündeln.

  1. srm ist ein sicherer rmDient zum Löschen von Dateien durch Löschen und Überschreiben des Festplattenspeichers.
  2. sfill ist ein Tool zum Überschreiben des gesamten freien Speicherplatzes auf Ihrer Festplatte.
  3. sswap wird zum Überschreiben und Bereinigen des Swap Space verwendet.
  4. sdmem wird verwendet, um Ihren RAM zu reinigen.

Der Befehl srm

Sie verwenden die srm Befehl viel, wie Sie das verwenden würden rm Befehl. Verwenden Sie den folgenden Befehl, um eine einzelne Datei zu entfernen. Das -z (Nullen) Option verursacht smr Verwenden von Nullen für das endgültige Löschen anstelle von Zufallsdaten. Das -v (ausführliche) Option macht srm informieren Sie uns über den Fortschritt.

srm -vz Chapter_One_01.txt

srm -vz Chapter_One_01.txt in einem Terminalfenster

Das werden Sie als Erstes bemerken srm ist langsam. Es gibt zwar visuelles Feedback, während es funktioniert, aber es ist eine Erleichterung, wenn Sie die Eingabeaufforderung erneut sehen.

Ausgabe von srm in einem Terminalfenster

Sie können verwenden -l (Sicherheit verringern) Option, um die Anzahl der Durchgänge auf zwei zu reduzieren, was die Dinge dramatisch beschleunigt.

srm -lvz Chapter_One_02.txt

srm -lvz Chapter_One_02.txt in einem Terminalfenster

srm teilt uns mit, dass dies - seiner Meinung nach - weniger sicher ist, aber es löscht und überschreibt die Datei für uns.

Ausgabe von srm in einem Terminalfenster

Sie können die Option -l (Sicherheit verringern) zweimal verwenden, um die Anzahl der Durchgänge auf eins zu reduzieren.

srm -llvz Chapter_One_03.txt

srm -llvz Chapter_One_03.txt in einem Terminalfenster

Verwenden von srm mit mehreren Dateien

Wir können auch Wildcards mit verwenden srm. Dieser Befehl löscht und löscht die restlichen Teile des ersten Kapitels:

srm -vc Chapter_One_0?.txt

srm -vc Chapter_One_0? .txt in einem Terminalfenster

Die Dateien werden von verarbeitet srm im Gegenzug.

srm löscht mehrere Dateien in einem Terminalfenster

Löschen von Verzeichnissen und deren Inhalten mit srm

Das -r (rekursive) Option machen srm Löschen Sie alle Unterverzeichnisse und deren Inhalte. Sie können den Pfad zum ersten Verzeichnis an übergeben srm.

In diesem Beispiel löschen wir alles aus dem aktuellen Verzeichnis ~ / research. Dies bedeutet, dass alle Dateien in ~ / research und alle Unterverzeichnisse sicher entfernt werden.

srm -vz *

srm -vz * in einem Terminalfenster

srm beginnt mit der Verarbeitung der Verzeichnisse und Dateien.

srm wird in einem Terminalfenster gestartet

Sie kehren schließlich zur Eingabeaufforderung zurück. Auf dem Testcomputer, auf dem dieser Artikel recherchiert wurde, dauerte das Entfernen von etwa 200 Dateien, die zwischen dem aktuellen Verzeichnis und drei verschachtelten Verzeichnissen verteilt waren, ungefähr eine Stunde.

srm abgeschlossen in einem Terminalfenster

Alle Dateien und Unterverzeichnisse wurden wie erwartet entfernt.

Der Befehl sfill

Was ist, wenn Sie sich Sorgen über eine Datei machen, die Sie mit rm gelöscht haben, wie können Sie dann über diesen alten Grund gehen und sicherstellen, dass er überschrieben wird? Das sfill Befehl überschreibt den gesamten freien Speicherplatz auf Ihrer Festplatte.

Dabei werden Sie feststellen, dass Sie immer weniger freien Speicherplatz auf Ihrer Festplatte haben, bis zu dem Punkt, an dem überhaupt kein freier Speicherplatz mehr verfügbar ist. Wann sfill Anschließend wird der gesamte freie Speicherplatz wieder freigegebenfür dich. Wenn Sie ein Mehrbenutzersystem verwalten, ist dies sehr störend. Dies ist also eine Wartungsaufgabe, die außerhalb der Geschäftszeiten durchgeführt werden sollte.

Selbst auf einem Computer mit nur einem Benutzer ist der Verlust von Festplattenspeicher einmal unbrauchbar sfill hat den größten Teil des Raumes genutzt. Dies ist etwas, von dem du anfangen und dann weggehen würdest.

Um die Dinge ein wenig zu beschleunigen, können Sie die -l Option (Sicherheit verringern). Die anderen Optionen sind die -v (ausführlich) und -z (Nullen) -Optionen, die wir zuvor gesehen haben. Hier fragen wir sfill um den gesamten freien Speicherplatz im Verzeichnis / home sicher zu überschreiben.

sudo sfill -lvz /home

sudo sfill -lvz / home in einem Terminalfenster

Mach es dir bequem. Auf dem Testcomputer, der nur über eine 10-GB-Festplatte verfügt, wurde dies am Nachmittag gestartet und irgendwann über Nacht abgeschlossen.

Ausgabe in einem Terminalfenster ausfüllen

Es wird stundenlang verschwinden. Und das ist mit das -l Option (Sicherheit verringern). Schließlich kehren Sie jedoch zur Eingabeaufforderung zurück.

Der Befehl sswap

Das sswap Befehl überschreibt den Speicher in Ihrer Swap-Partition. Als erstes müssen wir Ihre Swap-Partition identifizieren. Das schaffen wir mit dem blkid Befehl, der Blockgeräte auflistet.

sudo blkid

sudo blkid in einem Terminalfenster

Sie müssen das Wort „Swap“ suchen und sich das Block-Gerät notieren, an das es angeschlossen ist.

Ausgabe von blkid in einem Terminalfenster

Wir können sehen, dass die Swap-Partition verbunden ist /dev/sda5.

Wir müssen die Schreibvorgänge auf der Swap-Partition für die Dauer des Überschreibens deaktivieren. Wir werden das nutzen swapoff Befehl:

sudo swapoff /dev/sda5

sudo swapoff / dev / sda5 in einem Terminalfenster

Wir können jetzt die sswap Befehl.

Wir werden verwenden /dev/sda5 als Teil der Kommandozeile für die sswap Befehl. Wir werden auch die -v (ausführliche) Option und -ll Optionen, die wir früher verwendet haben.

sudo sswap -llv /dev/sda5

sudo sswap -llv / dev / sda5 in einem Terminalfenster

sswap beginnt sich durch Ihre Swap-Partition zu arbeiten und überschreibt alles, was sich darin befindet. Es dauert nicht so lange sfill. Es fühlt sich einfach so an.

Sobald dies abgeschlossen ist, müssen wir die Swap-Partition als aktiven Swap-Bereich wiederherstellen. Wir machen das mit dem swapon Befehl:

sudo swapon /dev/sda5

sudo swapon / dev / sda5 in einem Terminalfenster

Der Befehl sdmem

Das secure-delete Das Paket enthält sogar ein Tool zum Löschen der RAM-Chips (Random Access Memory) Ihres Computers.

Bei einem Kaltstart-Angriff ist ein physischer Zugriff auf Ihren Computer sehr kurz nach dem Ausschalten erforderlich. Diese Art von Angriff kann möglicherweise das Abrufen von Daten von Ihren RAM-Chips ermöglichen.

Wenn Sie glauben, Sie müssen sich davor schützenDiese Art von Angriff - und es wäre für die meisten Menschen eine Belastung, wenn sie das für nötig halten - Sie können Ihren Arbeitsspeicher löschen, bevor Sie Ihren Computer ausschalten. Wir werden das verwenden -v (ausführlich) und -ll (Sicherheit verringern) Optionen noch einmal.

sudo sdmem -vll

sudo sdmem -vll in einem Terminalfenster

Das Terminalfenster wird mit Sternchen gefüllt, um darauf hinzuweisen sdmem arbeitet sich durch Ihren RAM.

Ausgabe von SDMEM in einem Terminalfenster

Die einfache Option: Verschlüsseln Sie einfach Ihr Laufwerk

Warum schützen Sie nicht Ihre Festplatte oder Ihren privaten Ordner durch Verschlüsselung, anstatt Dateien sicher zu löschen?

Wenn Sie das tun, kann niemand auf etwas zugreifen,ob es sich um eine Live-Datei oder eine gelöschte Datei handelt. Und Sie müssen nicht auf der Hut sein und daran denken, vertrauliche Dateien sicher zu löschen, da alle Ihre Dateien bereits geschützt sind.

Die meisten Linux-Distributionen fragen, ob Sie möchtenVerwenden Sie bei der Installation die Verschlüsselung. Wenn Sie "Ja" sagen, wird dies in Zukunft viel Ärger ersparen. Sie dürfen nicht mit geheimen oder sensiblen Informationen umgehen. Wenn Sie jedoch glauben, dass Sie den Computer an eine andere Person abgeben oder verkaufen können, wenn Sie damit fertig sind, wird dies durch die Verschlüsselung ebenfalls vereinfacht.