
Ich habe einen (physisch) entfernten Server, den ich sicher zerstören möchte. Leider ist die Festplatte nur mit einer einzigen großen Root-Partition partitioniert und sonst nichts. Kann ich dd
das Gerät mit dem Root-Dateisystem zuverlässig löschen?
Etwas Einfaches wie:
$ sudo nohup dd if=/dev/urandom of=/dev/sda bs=1024
Natürlich werde ich die Ausgabe des Jobs nie sehen und kann daher nicht überprüfen, ob er erfolgreich abgeschlossen wurde. Die Programme dd
und nohup
sollten klein genug sein und zu diesem Zeitpunkt läuft nichts anderes auf dem Server, es gibt also keinen Grund, diese Programme während der Ausführung aus dem Speicher zu entfernen. Werden sie bis zum Ende ausgeführt oder wird der Kernel wahrscheinlich irgendwann vor dd
Abschluss in Panik geraten?
Ich denke über andere Möglichkeiten nach, werde dazu aber in separaten Fragen Stellung nehmen.
Antwort1
Ja, das istabsolutmöglich, erfordert aber etwas Arbeit.
Die meisten Antworten sind auf StackExchange verfügbar, ich werde sie hier jedoch zusammenfassen und Links zu den Quellen einfügen, die viel ausführlicher sind und Anerkennung für ihre hervorragenden Informationen verdienen.
- Erstellen Sie eine In-Memory-basierte Linux-Umgebung und wechseln Sie dorthin mit
pivot_root
. - Stellen Sie sicher, dass Sie von außen über auf den Server zugreifen können
ssh
. Löschen Sie das Root-Gerät.
# nohup dd if=/dev/urandom of=/dev/sda bs=512 > wipe.log &
Überprüfen Sie in regelmäßigen Abständen den Fortschritt von
dd
, da es Ihnen normalerweise keinen Hinweis auf den Fortschritt gibt.# kill -USR1 [ddpid]
Kommen Sie später noch einmal zurück und überprüfen Sie, ob der Vorgang abgeschlossen ist (überprüfen Sie die Protokolldatei). Sehen Sie sich die Festplatte an, um sicherzustellen, dass sie zufälligen Datenmüll enthält und kein echtes Dateisystem. Löschen Sie sie ein zweites (oder drittes) Mal, wenn Sie möchten.
Entscheiden Sie, was als Nächstes zu tun ist.
Wenn Sie möchten, können Sie hier einfach aufhören und weggehen. Wenn die Maschine herunterfährt, haben Sie ein nicht bootfähiges Gerät, das so sicher ist, wie Sie
dd
es machen können.Als nächstes beschloss ich, etwas auszuprobieren, was ich noch nie zuvor getan hatte: ein Linux-Basissystem remote zu erstellen. Also fuhr ich fort:
Verwenden Sie es
fdisk
, um das Root-Gerät nach Wunsch neu zu partitionieren und ummkfs
Dateisysteme auf diesen Partitionen zu erstellen.- Verwenden
debootstrap
ZuInstallieren Sie eine grundlegende Debian-Umgebungauf dem (zukünftigen) Root-Dateisystem. chroot
Installieren Sie in der neuen Basisumgebung zusätzliche Pakete (z. B.sshd
) einen Kernel und einen Bootloader (grub
stellen Sie z. B. sicher, dass der Bootloader tatsächlich auf dem Gerät installiert wird – installieren Sie nicht nur das Paket).- Wechseln Sie
root_pivot
mit in die neue Umgebung, wie Sie es oben in Schritt 1 getan haben. Rufen Sie alle Dienste auf (z. B.sshd
), um sicherzustellen, dass Sie auf den Server zugreifen können, z. B. überssh
. - Starten Sie neu. Ihr neues Betriebssystem sollte einsatzbereit sein.
Antwort2
In einer Unternehmensumgebung möchten Sie eine Art Out-of-Band-Management wie IPMI, iDRAC oder eine andere Remote-KVM-Lösung haben. Sie würden dieses System verwenden, um eine Live-CD zu booten, auf der das Löschen durchgeführt und bestätigt werden kann. Wenn Ihr Ziel ein sicheres Löschen ist, müssen Sie den Vorgang überprüfen. Sie können nicht einfach sagen: „Nun, das sollte funktionieren.“ Denn selbst wenn es funktionieren sollte, heißt das nicht, dass es funktioniert hat. Einige IPMI-Systeme ermöglichen Ihnen das Remote-Booten von einem ISO, das Sie remote haben. Sie könnten etwas Einfaches wie ein DBAN-Image verwenden.
Antwort3
Das ist keine große Antwort, aber mir ist etwas Ähnliches gelungen. Ich habe versucht, sudo dd if=./bootcd-usb-debug.iso of=/dev/sda
ein ReactOS-ISO auf das zu schreiben, was eigentlich mein USB-Laufwerk sein sollte, aber weil ich nicht überprüft habe, ob es mein laufendes Linux-System war. Hoffentlich kann ich meine Daten wiederherstellen.