Mam zamiar zakończyć wieloletnią relację z moim dostawcą hostingu, ale zanim to zrobię, chcę bezpiecznie wytrzeć pudełko. Jest to dedykowany serwer z systemem Debian na jednym dysku EXT3 i chociaż mam dostęp do roota, nie mogę uruchomić alternatywnego nośnika, ponieważ gdzieś jest bez głowy w szafie.
Nie potrzebuję wielu przejść, ale jeśli to możliwe, chciałbym wyczyścić wolne miejsce. Zasadniczo chciałbym odejść i upewnić się, że nie pozostawiam żadnych moich danych osobowych. Martwię się, że okno może się zawiesić, zanim skończy się czyszczenie / synchronizacja systemu plików, jeśli tylko uruchomięsrm -R -s /
debian
remote
colocation
secure-delete
notpeter
źródło
źródło
Odpowiedzi:
Udało mi się przebrnąć przez całą drogę
rm -rf --no-preserve-root /
bez awarii systemu i bez pozostawienia niczego na dysku.źródło
rm -rf --no-preserve-root /
przez SSH, aby wyczyścić resztę. Zgłoszono kilka błędów w / dev i następnie zakończono; Nie bardzo wiedziałem, co robić po zachęcie do basha. Bez / bin / ls lub / sbin / shutdown nie mogłem potwierdzić sukcesu. Był antyklimaktyczny; Byłem mentalnie przygotowany na awarię, a nie jądro zombie i sesję sshd.dd
Zamiast tego lepiej przesadzić z dysku.Instalator CentOS (anakonda), który jest dostarczany z obrazami PXE, zawiera serwer VNC, dzięki czemu możesz zmienić konfigurację gruba, aby uruchomić instalator CentOS, przekazując odpowiedzi na pytania instalatora przed 2 etapem w linii grub, uruchom ponownie, a następnie VNC do instalatora.
Teraz, jeśli moja pamięć służy mi poprawnie, z poziomu tego instalatora powinieneś mieć możliwość upuszczenia do powłoki, z której możesz uzyskać dostęp i zniszczyć dysk.
Skopiuj pliki vmlinuz i initrd z katalogu PXE w dystrybucji CentOS ( http://mirror.centos.org/centos/5/os/i386/images/pxeboot/ ) do / boot i zmodyfikuj konfigurację grub:
Nawiasem mówiąc, każda przyzwoita firma hostingowa powinna być przygotowana na zniszczenie twoich dysków.
źródło
/boot
będziesz mógł zacząć od nowa, na wypadek gdyby maszyna została ponownie uruchomiona w trakcie procesu. Jeśli/boot
zdarzy się, że znajduje się na/
partycji, można usunąć wszystkie pliki poza nią/boot
i wyczyścić wolne miejsce przed ostatecznym wyczyszczeniem całej partycji. Pozwoliłoby to zminimalizować ilość danych pozostawionych na dysku w przypadku, gdyby został ponownie uruchomiony po wyczyszczeniu tak dużo, że nie będzie już można go uruchomić.Przed zniszczeniem systemu operacyjnego możesz usunąć wszystko wrażliwe i zerować (używając dd if = / dev / zero of = justabigfile).
I wierzę, że większość systemów przetrwa dd na działającym systemie wystarczająco długo, aby zastąpić cały dysk. Oczywiście nie ma odwrotu, jeśli nie.
źródło
Moje rozwiązanie polega na wieloetapowym podejściu wykonującym niektóre z powyższych czynności, ale także na chroocie w pamięci RAM, który powinien pozwolić dd na całkowite wyczyszczenie dysku.
Najpierw usuń wszystkie wrażliwe dane, pozostawiając pliki niezbędne do uruchomienia systemu operacyjnego. Następnie zrób to (nie w skrypcie, zrób to jedno polecenie na raz):
To powinno się tym zająć!
źródło
Możesz po prostu
dd
zastąpić całą partycję / dysk na działającym serwerze bez żadnych obaw. Używamy go często w pracy (gdy klient nie chce płacić za bezpieczne niszczenie dysku fizycznego).W rzeczywistości usuwasz dane bez wiedzy o zamontowanym systemie plików, więc system plików zacznie wariować w miarę utraty metadanych, a następnie sam system operacyjny zacznie się „załamywać”. Jednak to, co jest już w pamięci podręcznej, nadal działa. Możesz więc monitorować postęp za pomocą zdalnej konsoli lub KVM (nie próbowałem tego przez ssh). System działa nawet po
dd
zakończeniu, jednak żadne polecenie nie będzie działać, a wszystkie demony prawdopodobnie już nie działają.Używam tych poleceń:
dd if=/dev/zero of=/dev/sda bs=1M &
a następniekill -HUP %1
do monitorowania postępu (dd wydrukuje aktualną prędkość i ilość zapisanych danych). Ustawienie rozmiaru bloku (bs
) jest bardzo ważne dla osiągnięcia prędkości zapisu sekwencji HDD za pomocądd
.Za każdym razem
dd
mogłem wyczyścić dysk do końca i mogłem wydaćkill
polecenie (wbudowane w powłokę) do końca. Jeśli masz raid oprogramowania, możesz wyczyścićmd
samo urządzenie lub każde urządzenie składowe osobno.źródło
Protokół ATA ma polecenie „bezpiecznego wymazywania”, które, jak wskazuje jego nazwa, powinno bezpiecznie wyczyścić cały dysk twardy.
Szczegółowe informacje można znaleźć w artykule wiki jądra, ale pamiętaj o ostrzeżeniach u góry:
https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase
źródło
Możesz spróbować zapisać losowe dane na dysku w następujący sposób:
Jest bezpieczniejszy niż używanie / dev / zero, ponieważ zapisuje on losowe dane, ale jest także DUŻO wolniejszy ..
źródło
Cokolwiek wybierzesz, skontaktuj się z innym dostawcą i przetestuj go.
Pobierz podobną instancję na AWS (lub gcloud lub ...) i wypróbuj ją tam, trzymając dysk, a następnie dołączając go do innej instancji jako dodatkową pamięć i skanując. dd if = sdb | hd
Prawie wszystkie wrażliwe materiały powinny być w środku
To pliki konfiguracyjne z osadzonymi hasłami przeszkadzają większości ludzi. Jeśli wiesz, czym one są, przeszukaj cały system plików, aby je wykorzenić.
rm usunie pliki, ale edytor szesnastkowy nadal będzie czytał dysk. Więc zero potem. Spójrz na strzępy. Powinieneś mieć dziennik swoich plików konfiguracyjnych i gdzie są one do celów odzyskiwania DR, prawda? Powiedzmy, że nie zapomnij plików crontab, jeśli masz w nich hasła.
Instalacja CentOS lub dowolne rozwiązanie ramdysku jest prawidłowe. Jądro będzie w pamięci, potrzebujesz dd i trochę zawartości bin. Ale jeśli uruchomisz ponownie w trybie odzyskiwania, możesz nie mieć sieci lub SSH i odciąć się.
Uwaga: Kedare ma dobry pomysł, a jeśli uciekasz z pamięci RAM przy następnym ponownym uruchomieniu (ramdysku), jest to możliwe, bardzo trudno jest odzyskać od / dev / zero zapisów na początku, więc tak naprawdę nie dodaje wartości, chyba że twoje życie zależy od tego?
źródło