Niszczenie dysku twardego na Linux

Niszczenie dysku twardego na Linux

Kiedy usuniemy plik z systemu plików, dane nie są fizycznie usuwane: System operacyjny po prostu oznacza obszar wcześniej zajęty przez plik, jako bezpłatny i udostępnia go do przechowywania nowych informacji. Jedynym sposobem na upewnienie się, że dane są faktycznie usuwane z urządzenia, jest zastąpienie ich innymi danymi. Możemy chcieć wykonać taką operację ze względów prywatności (być może planujemy sprzedać urządzenie i chcemy mieć pewność, że nowy właściciel nie może uzyskać dostępu do naszych danych), a może przygotować urządzenie do szyfrowania. W tym samouczku zobaczymy niektóre narzędzia, których możemy użyć, aby całkowicie wyczyścić dane na urządzeniu

W tym samouczku nauczysz się:

  • Jak niszczyć dane za pomocą DD
  • Jak zabezpieczyć pliki i urządzenia z erase za pomocą shred narzędzie
  • Jak zastąpić dane za pomocą badblocks


Zastosowane wymagania i konwencje oprogramowania

Wymagania oprogramowania i konwencje linii poleceń Linux
Kategoria Wymagania, konwencje lub wersja oprogramowania
System Niezależny od rozkładu
Oprogramowanie DD, Shred lub Badblocks
Inny
  • Znajomość powłoki bash i interfejsu linii poleceń Linux
Konwencje # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny

Usuwanie danych za pomocą DD

DD to bardzo potężny program zawarty domyślnie we wszystkich głównych dystrybucjach Linuksa. W poprzednim artykule widzieliśmy, jak szczegółowo używać DD; W tym przypadku tylko chcemy zastąpić zawartość naszego hipotetycznego urządzenia blokowego z zerami lub losowymi danymi. W obu przypadkach możemy używać danych generowanych przez pliki „specjalne”: /dev/zero I Dev/Urandom (Lub /dev/losowe) odpowiednio. Pierwsze zwracają zero za każdym razem, gdy wykonywana jest operacja odczytu; ten ostatni zwraca losowe bajty za pomocą generatora liczb losowych jądra Linux.

Aby wypełnić dysk zerami, możemy uruchomić:

$ sudo dd if =/dev/zero =/dev/sdx

Zamiast tego używać losowych danych:

$ sudo dd if =/dev/urandom o =/dev/sdx


Korzystanie z kontenera LUKS jako losowego generatora danych

Zastąpienie urządzenia z losowymi danymi jest czasem czasochłonnym, ale może być przydatne, zwłaszcza jeśli planujemy użyć pełnego szyfrowania dysku, aby użyć używanej i nieużywanej części dysków nierozróżnialna. Aby przyspieszyć proces, możemy użyć małego „sztuczki”: możemy stworzyć Luks(Konfiguracja klawiszu Linux) Kontener na urządzeniu lub partycji, którą chcemy wypełnić losowymi danymi i zapisać do niego zera. Dzięki szyfrowaniu dane zostaną przejrzysty na urządzeniu bazowym jako losowe.

Przede wszystkim tworzymy Luks pojemnik:

$ sudo cryptsetup luksformat /dev /sdx ostrzeżenie! ======== Niedowarstwnie zastąpi dane /dev /sdx. Jesteś pewny? (Wpisz wieloletnią, tak): Tak Wprowadź hasło dla /dev /sdx: Sprawdź hasło:

W takim przypadku nie jest tak naprawdę konieczne użycie silnego hasła, ponieważ używamy kontenera jako losowego generatora danych i wyczyścimy go po zakończeniu operacji. Gdy kontener będzie gotowy, otwieramy go, uruchamiając następujące polecenie:

$ sudo cryptsetUp luksopen /dev /sdx crypted enter PassPhraze dla /dev /sdx:

Teraz, gdy pojemnik jest otwarty, możemy użyć DD i wypełnić go zera. Bardzo ważne: piszemy do kontenera Luks Maped jako /dev/mapper/crypted, nie na podstawie podstaw /dev/sdx urządzenie bezpośrednio:

$ sudo dd if =/dev/zero =/dev/mapper/crypted bs = 1m

Po napisaniu wszystkich danych zamykamy pojemnik i zastępujemy nagłówek Luksa. Rozmiar nagłówka zależy od formatu Luks W użyciu: tak jest 2 MIB dla dziedzictwa Luks format i 16 MIB dla Luks2 Format, który stał się domyślnie w ostatnich wersjach CryptsetUp. Z pewnością możemy zastąpić pierwsze 20 MIB dysku:

$ sudo cryptsetup luksclose/dev/mapper/crypted $ sudo dd if =/dev/urandom o =/dev/sdx bs = 1m liczba = 20


Usuwanie danych za pomocą shred

Nazwa tego narzędzia jest całkiem wyjaśnieniem: jej głównym celem, jak stwierdzono w instrukcji, jest zastąpienie plików i opcjonalne usuwanie go. strzęp Narzędzie polega na założeniu, że system plików zastępuje dane. Aplikacja może nie pozwolić nam osiągnąć oczekiwanego wyniku, na przykład w dzienników systemów plików, takich jak ext4 (prawdopodobnie najczęściej używany system plików Linux), jeśli jest zamontowany z data = dziennik opcja.

Podczas montażu systemu plików ext4, z dane = uporządkowane Lub Data = Writeback Opcje (te pierwsze są domyślnie), dane są zapisywane w głównym systemie plików po metadane jest zaangażowany w czasopismo. W obu przypadkach, strzęp działa dobrze, dając oczekiwane wyniki.

Podczas korzystania z data = dziennik Zamiast tego opcja nie tylko metadane, ale same dane są zapisywane w czasopiśmie FileSystem, zanim zostaną napisane do głównego systemu plików. Łatwo zrozumieć, dlaczego może to powodować problemy.

Zobaczmy kilka przykładów użycia aplikacji. Załóżmy, że chcemy zabezpieczyć plik o nazwie „Test”. Wszystko, co musimy zrobić, to uruchomić następujące polecenie (tutaj używamy -v opcja, aby program był bardziej szczegółowy):

$ shred -v Test shred: Test: Pass 1/3 (losowy)… shred: Test: Pass 2/3 (losowe)… shred: test: pass 3/3 (losowy)… 

Domyślnie aplikacja zastępuje określony plik 3 Czasy z losowymi danymi. Liczbę podań można zmienić za pomocą -N (Krótkie dla --iteracje) opcja. Aby zastąpić plik 6 razy, uruchomiliśmy:

Shred -V -n 6 Test Test: Test: Pass 1/6 (losowy)… Shred: Test: Pass 2/6 (000000)… Shred: Test: Pass 3/6 (555555)… Shred: Test: Pass 4/ 6 (ffffff)… shred: Test: Pass 5/6 (aaaaaa)… shred: Test: Pass 6/6 (losowy)… 

Istnieją pewne przypadki, w których możemy chcieć ukryć fakt, że operacja strzępienia została wykonana w pliku lub urządzeniu. W takich sytuacjach możemy korzystać z programu -z (Krótkie dla --zero) Opcja, aby program wykonał dodatkową przepustkę z zerami po niszczeniu:

$ shred -v -n 6 -z Pass 4/7 (555555)… Shred: Test: Pass 5/7 (000000)… Shred: Test: Pass 6/7 (losowy)… shred: Test: Pass 7/7 (000000)… 


Ze wyjścia polecenia możemy rzeczywiście zauważyć, w jaki sposób ostatnie podanie jest wykonywane przez pisząc zero (000000). Możemy to zweryfikować, uruchamiając Hexdump program w pliku:

$ Hexdump Test 0000000 0000 0000 0000 0000 0000 0000 0000 0000 * 0008000 

Usuwanie pliku

Jeśli przyjrzymy się systemowi plików po uruchomieniu jednego z poleceń w powyższych przykładach, możemy zauważyć, że chociaż nadpisany przypadkowymi danymi, sam plik nie został usunięty: dzieje się tak, ponieważ polecenie można również użyć w plikach reprezentujących całe pliki reprezentujące całe pliki Urządzenia lub partycje blokujące (e.G /dev/sda), a te nie należy usuwać.

Jednak podczas pracy na wspólnych plikach możemy chcieć również przekazać plik z systemu plików po przesłaniu. Aby osiągnąć to zachowanie, możemy użyć -u albo --usunąć opcje. Obie opcje powodują usunięcie pliku, ale z tym ostatnim możemy również określić, w jaki sposób należy wykonać usunięcie. Możemy przenosić między:

  • odczepić: Plik jest usuwany za pomocą standardu odczepić wywołanie systemu;
  • wytrzeć: bajty w nazwie pliku są zaciemnione przed usunięciem;
  • Wipesync: zaciemnione bajty są również synchronizowane z dysku;

Wipesync Tryb jest domyślny.

Usuwanie danych za pomocą badblocks

Chociaż Badblocks głównym celem użyteczności jest poszukiwanie złych bloków, używając tryb zapisu test przełomowy możemy skutecznie zastąpić i zabezpieczyć istniejące dane na urządzeniu. Wszystko, co musimy zrobić, to uruchomić polecenie i określić -w Opcja: Test zostanie wykonany przez pierwsze pisanie, a następnie czytanie 0xaa, 0x55, 0xff I 0x00 Wzorce danych na każdym bloku i porównaj zawartość.

Możemy użyć -S I -v Opcje, aby odpowiednio wyświetlić informacje o postępach programu oraz liczbę napotkanych błędów odczytu i zapisu. Aby wyczyścić nasze urządzenie, zatem uruchomilibyśmy:

$ sudo badblocks -WSV /dev /sdx Sprawdzanie złych bloków w trybie odczytu od bloku 0 do 3870719 Testowanie z wzorem 0xAA: ^c6.30% wykonane, 0:41 upłynęło. (0/0/0 błędy)

Aby uruchomić polecenie nad urządzeniem Badblocks odmówię uruchomienia, chyba że operacja zostanie wymuszona z -F opcja. Domyślna liczba bloków testowanych na raz jest 64; Możemy jednak zmienić ten parametr za pomocą -C opcja.

Wnioski

W tym artykule widzieliśmy trzy narzędzia, których możemy użyć do niszczenia danych na urządzeniu, a także niektórych przykładów ich użycia. Dd I strzęp są częścią UTILS GNU Core, więc prawie na pewno są już zainstalowane w twoim systemie. Badblocks jest oprogramowaniem używanym do testowania złych bloków: podczas przeprowadzania z nim testu odczytu, możemy zastąpić dane na urządzeniu. Proszę zauważyć, że skuteczność rozdrobnienia danych zależy również od rodzaju używanego urządzenia: na przykład dyski stanu solidnego muszą radzić sobie z fenomenami takimi jak wzmocnienie zapisu.

Powiązane samouczki Linux:

  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Odzyskaj swoją prywatność i bezpieczeństwo w erze cyfrowej
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Jak korzystać z Dysku Google w Linux
  • Jak podzielić napęd USB w Linux
  • Jak porównywać wydajność dysku na Linux
  • Jak podzielić dysk na Linuksie
  • Pełne szyfrowanie dysku z Veracrypt na Ubuntu Linux
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa