Wyszukiwanie w witrynie

Jak szyfrować dyski za pomocą LUKS w Fedorze Linux


W tym artykule wyjaśnimy pokrótce szyfrowanie blokowe, ujednoliconą konfigurację klucza systemu Linux (LUKS) i opiszemy instrukcje tworzenia zaszyfrowanego urządzenia blokowego w Fedorze Linux.

Blokuj szyfrowanie urządzenia

Szyfrowanie urządzenia blokowego służy do zabezpieczania danych na urządzeniu blokowym poprzez ich szyfrowanie, a do odszyfrowania danych użytkownik musi podać hasło lub klucz, aby uzyskać dostęp. Daje to dodatkowe mechanizmy bezpieczeństwa, ponieważ chroni zawartość urządzenia nawet jeśli zostało ono fizycznie odłączone od systemu.

Wprowadzenie do LUKS-a

LUKS (Linux Unified Key Setup) to standard szyfrowania urządzeń blokowych w systemie Linux, który działa poprzez ustalenie formatu danych na dysku oraz zasady zarządzania hasłami/kluczami . Przechowuje wszystkie niezbędne informacje konfiguracyjne w nagłówku partycji (znanym również jako nagłówek LUKS), umożliwiając w ten sposób bezproblemowy transport lub migrację danych.

LUKS wykorzystuje podsystem mapowania urządzeń jądra z modułem dm-crypt, aby zapewnić mapowanie niskiego poziomu, które przechowuje szyfrowanie i deszyfrowanie danych urządzenia. Programu cryptsetup można używać do wykonywania zadań na poziomie użytkownika, takich jak tworzenie i uzyskiwanie dostępu do zaszyfrowanych urządzeń.

Przygotowanie urządzenia blokowego

Poniższe instrukcje przedstawiają kroki tworzenia i konfigurowania szyfrowanych urządzeń blokowych po instalacji.

Zainstaluj pakiet cryptsetup.

dnf install cryptsetup-luks

Następnie wypełnij urządzenie losowymi danymi przed ich zaszyfrowaniem, ponieważ znacznie zwiększy to siłę szyfrowania za pomocą poniższych poleceń.

dd if=/dev/urandom of=/dev/sdb1	           [slow with high quality random data ]
OR
badblocks -c 10240 -s -w -t random -v /dev/sdb1  [fast with high quality random data]

Ostrzeżenie: powyższe polecenia usuną wszelkie istniejące dane z urządzenia.

Formatowanie zaszyfrowanego urządzenia

Następnie użyj narzędzia wiersza poleceń cryptsetup, aby sformatować urządzenie jako urządzenie zaszyfrowane dm-crypt/LUKS.

cryptsetup luksFormat /dev/sdb1

Po uruchomieniu polecenia zostaniesz poproszony o wpisanie YES (wielkimi literami) w celu dwukrotnego podania hasła potrzebnego do sformatowania urządzenia do użycia, jak pokazano na poniższym zrzucie ekranu.

Aby sprawdzić, czy operacja się powiodła, uruchom następujące polecenie.

cryptsetup isLuks /dev/sdb1 && echo Success

Możesz wyświetlić podsumowanie informacji o szyfrowaniu urządzenia.

cryptsetup luksDump /dev/sdb1

Tworzenie mapowania umożliwiającego dostęp do odszyfrowanej zawartości

W tej sekcji skonfigurujemy sposób dostępu do odszyfrowanej zawartości zaszyfrowanego urządzenia. Stworzymy mapowanie za pomocą narzędzia mapowania urządzeń jądra. Zaleca się utworzenie zrozumiałej nazwy dla tego mapowania, na przykład luk-uuid (gdzie <uuid> zastępuje się LUKS UUID urządzenia ( Uniwersalny unikalny identyfikator).

Aby uzyskać UUID zaszyfrowanego urządzenia, uruchom następujące polecenie.

cryptsetup luksUUID /dev/sdb1

Po uzyskaniu UUID możesz utworzyć nazwę mapowania, jak pokazano (zostaniesz poproszony o wprowadzenie utworzonego wcześniej hasła).

cryptsetup luksOpen /dev/sdb1 luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c

Jeśli polecenie się powiedzie, węzeł urządzenia o nazwie /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c reprezentuje odszyfrowane urządzenie.

Z utworzonego właśnie urządzenia blokowego można odczytywać i zapisywać dane, tak jak w przypadku każdego innego niezaszyfrowanego urządzenia blokowego. Możesz wyświetlić informacje o zamapowanym urządzeniu, uruchamiając następujące polecenie.

dmsetup info /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c

Tworzenie systemów plików na zmapowanym urządzeniu

Teraz przyjrzymy się, jak utworzyć system plików na zmapowanym urządzeniu, co pozwoli ci używać zmapowanego węzła urządzenia tak samo, jak każdego innego urządzenia blokowego.

Aby utworzyć system plików ext4 na zmapowanym urządzeniu, uruchom następujące polecenie.

mkfs.ext4 /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c

Aby zamontować powyższy system plików, utwórz dla niego punkt montowania, np. /mnt/encrypted-device, a następnie zamontuj go w następujący sposób.

mkdir -p /mnt/encrypted-device
mount /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c /mnt/encrypted-device/

Dodaj informacje o mapowaniu do /etc/crypttab i /etc/fstab

Następnie musimy skonfigurować system tak, aby automatycznie konfigurował mapowanie urządzenia, a także montował je podczas uruchamiania.

Informacje o mapowaniu należy dodać w pliku /etc/crypttab w następującym formacie.

luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c  UUID=59f2b688-526d-45c7-8f0a-1ac4555d1d7c   none

w powyższym formacie:

  • luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c – to nazwa mapowania
  • UUID=59f2b688-526d-45c7-8f0a-1ac4555d1d7c – to nazwa urządzenia

Zapisz plik i zamknij go.

Następnie dodaj następujący wpis do /etc/fstab, aby automatycznie zamontować zmapowane urządzenie podczas uruchamiania systemu.

/dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c  /mnt/encrypted-device  ext4 0 0

Zapisz plik i zamknij go.

Następnie uruchom następujące polecenie, aby zaktualizować jednostki systemowe wygenerowane z tych plików.

systemctl daemon-reload

Kopia zapasowa nagłówków LUKS

Na koniec omówimy, jak wykonać kopię zapasową nagłówków LUKS. Jest to kluczowy krok, pozwalający uniknąć utraty wszystkich danych znajdujących się w zaszyfrowanym urządzeniu blokowym, na wypadek uszkodzenia sektorów zawierających nagłówki LUKS w wyniku błędu użytkownika lub awarii sprzętu. Ta czynność pozwala na odzyskanie danych.

Aby wykonać kopię zapasową nagłówków LUKS.

mkdir /root/backups  
cryptsetup luksHeaderBackup --header-backup-file luks-headers /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c 

I przywrócić nagłówki LUKS.

cryptsetup luksHeaderRestore --header-backup-file /root/backups/luks-headers /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c 

To wszystko! W tym artykule wyjaśniliśmy, jak szyfrować urządzenia blokowe przy użyciu LUKS w dystrybucji Fedora Linux. Jeśli masz jakieś pytania lub uwagi dotyczące tego tematu lub przewodnika, skorzystaj z poniższego formularza opinii, aby się z nami skontaktować.