So löschen Sie Dateien sicher unter Linux

Schreddern Sie alte Datendateien aus dem gleichen Grund wie alte Papierdokumente. Wir sagen Ihnen, was Sie zum sicheren Löschen von Linux-Dateien wissen müssen. In diesem Tutorial werden der Befehl shred und die Dienstprogramme zum sicheren Löschen behandelt.

Gelöschte Dateien sind normalerweise wiederherstellbar

Das Löschen einer Datei entfernt sie nicht wirklich von Ihrer Festplatte. Es hängt alles davon ab, wie Ihr Dateisystem Inodes verwendet. Dies sind die Datenstrukturen innerhalb des Dateisystems, die die Metadaten zu den Dateien enthalten. Der Name der Datei, ihre Position auf der Festplatte, welche Attribute und Berechtigungen sie hat usw. werden alle in einem Inode gespeichert. Ein Verzeichnis ist nicht mehr als eine Datei selbst. Eine, die die Namen und Inode-Nummern der Dateien enthält, die das Verzeichnis enthält.

Wenn Sie eine Datei mit rm löschen, gibt das Dateisystem den entsprechenden Inode frei und passt die Verzeichnisdatei an. Dadurch wird der Speicherplatz auf der Festplatte, den die Datei belegte, als ungenutzt markiert. Stellen Sie sich vor, Sie gehen in eine Bibliothek, gehen die Kartei durch, suchen die Katalogkarte eines Buches und zerreißen es. Das Buch steht noch im Regal. Es ist nur schwerer zu finden.

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

Das vollständige Löschen einer Datei ist jedoch nicht so einfach wie das einfache Überschreiben. Wie wir sehen werden.

Tun Sie dies nicht mit SSDs

Diese Techniken gelten für herkömmliche elektromechanische Festplatten (HDD) und sollten nicht mit Solid State Drives (SSD) verwendet werden. Es funktioniert nicht und verursacht zusätzliche Schreibvorgänge und unnötigen Verschleiß an Ihrer SSD. Um Daten sicher von einer SSD zu löschen, sollten Sie das vom Hersteller Ihrer SSD bereitgestellte Dienstprogramm verwenden.

Das Shred-Kommando

shred ist so konzipiert, dass führe das Überschreiben für dich durch Daher kann eine gelöschte Datei 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 einem Verzeichnis namens ~/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 sensibel sind und vollständig von der Festplatte gelöscht werden müssen.

Wir können die Verzeichnisbaumstruktur sehen, indem wir den Befehl tree wie folgt verwenden. Die Option -d (Verzeichnis) bewirkt, dass tree nur Verzeichnisse auflistet und nicht alle Dateien auflistet. Die Verzeichnisbaumstruktur sieht wie folgt aus:

tree -d

Schreddern einer einzelnen Datei

Um eine einzelne Datei zu vernichten, können wir den folgenden Befehl verwenden. Die von uns verwendeten Optionen sind:

u: Die Datei nach dem Überschreiben freigeben und entfernen.
v: Ausführliche Option, damit Shred uns sagt, was es tut.
z: Führt ein abschließendes Überschreiben mit Nullen durch.

shred -uvz Preliminary_Notes.txt_01.txt

shred überschreibt die Datei standardmäßig viermal. Die ersten drei Durchläufe verwenden Zufallsdaten und der letzte Durchlauf verwendet Nullen, wie wir es angefordert haben. Es entfernt dann die Datei und überschreibt einige der Metadaten im Inode

  So laden Sie Ihre Google-Musikbibliothek in Linux über die Befehlszeile herunter

Einstellen der Anzahl der Überschreibdurchgänge

Wir können shred bitten, mehr oder weniger Überschreibdurchgänge zu verwenden, indem wir die Option -n (Zahl) verwenden. shred verwendet immer mindestens einen Durchgang. Die Zahl, die wir hier angeben, ist die Anzahl der zusätzlichen Pässe, die wir für die Ausführung benötigen. Shred macht also immer einen Durchlauf mehr als die von uns verlangte Anzahl. Um insgesamt drei Pässe zu erhalten, bitten wir um zwei zusätzliche Pässe:

shred -uvz -n 2 Preliminary_Notes.txt_02.txt

Shred macht erwartungsgemäß drei Durchgänge.

Weniger Durchgänge – weniger Schreddern, wenn Sie so wollen – sind offensichtlich schneller. Aber ist es weniger sicher? Interessanterweise sind drei Pässe wahrscheinlich mehr als genug.

Schreddern mehrerer Dateien

Platzhalter können mit Shred verwendet werden, um Gruppen von zu löschenden Dateien auszuwählen. Das * steht für mehrere Zeichen und das ? steht für ein einzelnes Zeichen. Dieser Befehl würde alle verbleibenden „Preliminary_Notes“-Dateien im aktuellen Arbeitsverzeichnis löschen.

shred -uvz -n 2 Preliminary_Notes_*.*

Die restlichen Dateien werden jeweils nacheinander von Shred verarbeitet.

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

Das Problem mit dem sicheren Löschen von Dateien

So gut Shred auch ist, 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. Und bei Journaling-Dateisystemen gibt es keine Garantie dafür, dass das Überschreiben tatsächlich über dem Festplattenspeicher stattfindet, der von der gelöschten Datei verwendet wird.

Wenn Sie nur beruhigt sein möchten, dass die Dateien etwas gründlicher gelöscht wurden, als rm es getan hätte, dann ist Shred wahrscheinlich in Ordnung. Aber machen Sie nicht den Fehler zu denken, dass die Daten definitiv weg und völlig unwiederbringlich sind. Das ist wohl nicht der Fall.

Die Suite zum sicheren Löschen

Die Secure-Delete-Befehle versuchen, die besten Bemühungen beim Journaling von Dateisystemen zu überwinden und die Datei sicher zu überschreiben. Aber es gelten genau die gleichen Vorbehalte. Es gibt immer noch keine Garantie dafür, dass das Überschreiben tatsächlich über dem Bereich der Festplatte stattfindet, den Sie zum Löschen der interessierenden Datei benötigen. Es gibt mehr Chancen, aber keine Garantie.

Die Befehle zum sicheren Löschen verwenden die folgende Abfolge von Überschreibungen und Aktionen:

1 mit 0xFF Wertbytes überschreiben.
5 überschreibt mit zufälligen Daten.
27 überschreibt mit speziellen Werten, die von Peter Gutmann definiert wurden.
5 weitere überschreibt mit zufälligen Daten.
Benennen Sie die Datei in einen zufälligen Wert um.
Kürzen Sie die Datei.

Wenn Ihnen das alles übertrieben vorkommt, sind Sie in guter Gesellschaft. Auch Peter Gutmann, Professor an der University of Aukland, erscheint es übertrieben. Er veröffentlichte 1996 eine Arbeit Diskussion über diese Techniken, aus dem der urbane Mythos entstand, dass Sie alle in diesem Papier besprochenen Techniken gleichzeitig anwenden müssen.

Peter Gutmann hat seitdem versucht, den Geist wieder in die Flasche zu bringen, indem er sagte: „Ein gutes Scrubbing mit zufälligen Daten wird so gut funktionieren, wie man es erwarten kann.“

Aber wir sind da, wo wir sind, und das sind die Techniken, die von den Befehlen zum sicheren Löschen verwendet werden. Aber zuerst müssen wir sie installieren.

  So installieren Sie das Mac-ähnliche La Capitaine Icon Theme unter Linux

Sicheres Löschen installieren

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

sudo apt-get install secure-delete

Das Secure-Delete-Paket enthält vier Befehle.

srm ist ein sicheres rm, mit dem Dateien gelöscht und der Festplattenspeicher überschrieben wird.
sfill ist ein Tool zum Überschreiben des gesamten freien Speicherplatzes auf Ihrer Festplatte.
sswap wird verwendet, um Ihren Auslagerungsbereich zu überschreiben und zu bereinigen.
sdmem wird verwendet, um Ihren RAM zu bereinigen.

Das srm-Kommando

Sie verwenden den srm-Befehl ähnlich wie den rm-Befehl. Um eine einzelne Datei zu entfernen, verwenden Sie den folgenden Befehl. Die Option -z (Nullen) bewirkt, dass smr Nullen anstelle von Zufallsdaten für die letzte Löschung verwendet. Die Option -v (verbose) veranlasst srm, uns über seinen Fortschritt zu informieren.

srm -vz Chapter_One_01.txt

Das erste, was Sie bemerken werden, ist, dass srm langsam ist. Es bietet ein visuelles Feedback, während es funktioniert, aber es ist eine Erleichterung, wenn Sie die Eingabeaufforderung erneut sehen.

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

srm -lvz Chapter_One_02.txt

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

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

srm -llvz Chapter_One_03.txt

srm mit mehreren Dateien verwenden

Wir können auch Wildcards mit srm verwenden. Dieser Befehl löscht und löscht die restlichen Teile von Kapitel eins:

srm -vc Chapter_One_0?.txt

Die Dateien werden wiederum von srm verarbeitet.

Löschen von Verzeichnissen und deren Inhalten mit srm

Die Option -r (rekursiv) bewirkt, dass srm alle Unterverzeichnisse und deren Inhalt löscht. Sie können den Pfad zum ersten Verzeichnis an srm übergeben.

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

srm -vz *

srm beginnt mit der Verarbeitung der Verzeichnisse und Dateien.

Es führt Sie schließlich zur Eingabeaufforderung zurück. Auf dem Testcomputer, auf dem dieser Artikel recherchiert wurde, dauerte dies etwa eine Stunde, um etwa 200 Dateien zu entfernen, die auf das aktuelle Verzeichnis und drei verschachtelte Verzeichnisse verteilt waren.

Alle Dateien und Unterverzeichnisse wurden wie erwartet entfernt.

Der sfill-Befehl

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

Dabei werden Sie feststellen, dass Sie immer weniger freien Speicherplatz auf Ihrer Festplatte haben, bis gar kein freier Speicherplatz mehr vorhanden ist. Wenn sfill abgeschlossen ist, gibt es den gesamten freien Speicherplatz zurück. Wenn Sie ein Mehrbenutzersystem verwalten, wäre dies sehr störend, daher handelt es sich um eine Wartungsaufgabe, die außerhalb der Geschäftszeiten durchgeführt werden sollte.

Selbst auf einem Einzelbenutzer-Computer bedeutet der Verlust von Festplattenspeicher, dass er unbrauchbar ist, sobald sfill den größten Teil des Speicherplatzes belegt hat. Dies ist etwas, mit dem Sie beginnen und dann weggehen würden.

  Die 5 besten Drop-down-Terminal-Apps für Linux

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

sudo sfill -lvz /home

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

Es wird stundenlang brodeln. Und das mit der Option -l (Sicherheit verringern). Aber schließlich kehren Sie zur Eingabeaufforderung zurück.

Der sswap-Befehl

Der Befehl sswap überschreibt den Speicher in Ihrer Swap-Partition. Als erstes müssen wir Ihre Swap-Partition identifizieren. Dies können wir mit dem Befehl blkid tun, der Blockgeräte auflistet.

sudo blkid

Sie müssen das Wort „Swap“ finden und sich das Blockgerät notieren, an das es angeschlossen ist.

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

Wir müssen für die Dauer des Überschreibens Festplattenschreibvorgänge auf die Swap-Partition deaktivieren. Wir verwenden den Befehl swapoff:

sudo swapoff /dev/sda5

Wir können jetzt den Befehl sswap verwenden.

Wir werden /dev/sda5 als Teil der Befehlszeile für den sswap-Befehl verwenden. Wir verwenden auch die Optionen -v (ausführlich) und -ll (Sicherheit verringern), die wir zuvor verwendet haben.

sudo sswap -llv /dev/sda5

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

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

sudo swapon /dev/sda5

Der sdmem-Befehl

Das Secure-Delete-Paket enthält sogar ein Tool zum Löschen der Random Access Memory (RAM)-Chips in Ihrem Computer.

EIN Kaltstart-Angriff erfordert physischen Zugriff auf Ihren Computer, kurz nachdem er ausgeschaltet wurde. Diese Art von Angriff kann möglicherweise das Abrufen von Daten von Ihren RAM-Chips ermöglichen.

Wenn Sie der Meinung sind, dass Sie sich gegen diese Art von Angriff schützen müssen – und die meisten Leute würden dies für nötig halten –, können Sie Ihren Arbeitsspeicher löschen, bevor Sie Ihren Computer ausschalten. Wir werden die Optionen -v (ausführlich) und -ll (Sicherheit verringern) noch einmal verwenden.

sudo sdmem -vll

Das Terminalfenster füllt sich mit Sternchen als Hinweis darauf, dass sdmem sich durch Ihren RAM arbeitet.

Die einfache Option: Verschlüsseln Sie einfach Ihr Laufwerk

Anstatt Dateien sicher zu löschen, warum nicht Ihre Festplatte oder Ihren Privatordner durch Verschlüsselung sichern?

Wenn Sie dies tun, kann niemand auf etwas zugreifen, egal 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, sensible Dateien sicher zu löschen, da alle Ihre Dateien bereits geschützt sind.

Die meisten Linux-Distributionen fragen, ob Sie bei der Installation Verschlüsselung verwenden möchten. „Ja“ zu sagen erspart viel Ärger in der Zukunft. Sie dürfen nicht mit geheimen oder sensiblen Informationen umgehen. Wenn Sie jedoch glauben, dass Sie den Computer nach Abschluss an eine andere Person weitergeben oder verkaufen könnten, wird die Verschlüsselung auch dies vereinfachen.