Kann ich `dd` zuverlässig verwenden, um das Root-Dateisystem auf einem laufenden Linux-Server zu löschen?

Kann ich `dd` zuverlässig verwenden, um das Root-Dateisystem auf einem laufenden Linux-Server zu löschen?

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 dddas 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 ddund nohupsollten 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 ddAbschluss 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.

  1. Erstellen Sie eine In-Memory-basierte Linux-Umgebung und wechseln Sie dorthin mitpivot_root.
  2. Stellen Sie sicher, dass Sie von außen über auf den Server zugreifen können ssh.
  3. Löschen Sie das Root-Gerät.

    # nohup dd if=/dev/urandom of=/dev/sda bs=512 > wipe.log &

  4. Ü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]

  5. 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.

  6. 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 ddes 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:

  7. Verwenden Sie es fdisk, um das Root-Gerät nach Wunsch neu zu partitionieren und um mkfsDateisysteme auf diesen Partitionen zu erstellen.

  8. VerwendendebootstrapZuInstallieren Sie eine grundlegende Debian-Umgebungauf dem (zukünftigen) Root-Dateisystem.
  9. chrootInstallieren Sie in der neuen Basisumgebung zusätzliche Pakete (z. B. sshd) einen Kernel und einen Bootloader ( grubstellen Sie z. B. sicher, dass der Bootloader tatsächlich auf dem Gerät installiert wird – installieren Sie nicht nur das Paket).
  10. Wechseln Sie root_pivotmit 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. über ssh.
  11. 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/sdaein 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.

verwandte Informationen