Niszczenie dysku twardego na Linux
- 3506
- 807
- Juliusz Janicki
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
Kategoria | Wymagania, konwencje lub wersja oprogramowania |
---|---|
System | Niezależny od rozkładu |
Oprogramowanie | DD, Shred lub Badblocks |
Inny |
|
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