Pełne szyfrowanie dysku LUKS: Przewodnik konfiguracji serwera Linux
15 min czytania - 5 czerwca 2026

Pełne szyfrowanie dysków LUKS dla serwerów Linux, obejmujące konfigurację LUKS2, układ LVM, zarządzanie kluczami, zdalne odblokowywanie za pomocą Tang i TPM oraz hartowanie.
Przewodnik po serwerach z pełnym szyfrowaniem dysków LUKS
LUKS (Linux Unified Key Setup) szyfruje całe urządzenie blokowe systemu Linux, dzięki czemu jego zawartość jest nieczytelna bez klucza głównego. Skradziony dysk, wycofana z eksploatacji obudowa, zapomniany dysk z kopią zapasową: żadna z tych sytuacji nie naraża danych na ujawnienie, jeśli system LUKS jest poprawnie skonfigurowany. Ten wpis opisuje, jak wdrożyć pełne szyfrowanie dysku LUKS na serwerze, w tym układ LVM, zarządzanie kluczami, zdalne odblokowywanie oraz tryby awarii, które uniemożliwiają użytkownikom dostęp do własnych danych.
Referencyjną implementacją jest tutaj LUKS2 z LVM wewnątrz zaszyfrowanego kontenera, na serwerze Linux z AES-NI w procesorze. Ta kombinacja radzi sobie z każdym współczesnym obciążeniem, działa dobrze i spełnia wymagania dotyczące danych w spoczynku określone w HIPAA, PCI-DSS, RODO i SOC 2.
Dlaczego LUKS2 i co sprawdzić w pierwszej kolejności
LUKS szyfruje na poziomie urządzenia blokowego przy użyciu dm-crypt, a klucz główny jest przechowywany w slotach kluczy wewnątrz nagłówka LUKS. To rozdzielenie ma znaczenie: można zmieniać hasła lub dodawać nowe klucze bez ponownego szyfrowania dysku.
LUKS2 jest obecnie ustawieniem domyślnym. Obsługuje do 32 slotów kluczy, metadane w formacie JSON, ponowne szyfrowanie online oraz szyfrowanie uwierzytelnione za pomocą flagi --integrity . LUKS1 obsługuje 8 slotów na klucze i sprawdza się na starszych systemach, ale nowe wdrożenia powinny rozpoczynać się od LUKS2.
Obciążenie wydajnościowe związane z AES-NI wynosi zazwyczaj poniżej 5% na nowoczesnym sprzęcie. Sprawdź przed rozpoczęciem:
grep -o aes /proc/cpuinfo | head -1
cryptsetup benchmarkJeśli grep nie zwraca żadnego wyniku, oznacza to, że procesor nie obsługuje AES-NI, a szyfrowanie będzie obciążać procesor przy intensywnych operacjach wejścia/wyjścia. cryptsetup benchmark pokazuje przepustowość dla poszczególnych szyfrów, dzięki czemu możesz wybrać najszybszy z obsługiwanych przez twój sprzęt. Sprawdź również, czy cryptsetup jest zainstalowany i czy dostępny jest moduł jądra dm-crypt moduł jądra jest dostępny. Oba są dostarczane domyślnie w systemach Ubuntu, Debian, RHEL i Arch.
Układ dysku
Dwie partycje pozostają niezaszyfrowane: partycja systemowa EFI (512 MB FAT32) oraz /boot (1 do 2 GB, ext4 lub xfs). GRUB musi odczytać obie, zanim będzie mógł poprosić o hasło. Wszystko inne znajduje się wewnątrz kontenera LUKS.
Zalecany układ to LVM wewnątrz LUKS: jeden kontener LUKS zawierający grupę woluminów LVM, z woluminami logicznymi dla partycji root, swap i dowolnych partycji danych. Dzięki temu metadane LVM pozostają zaszyfrowane i można zmieniać rozmiar woluminów lub tworzyć ich migawki bez ingerencji w warstwę LUKS. LUKS na LVM również działa, ale ujawnia strukturę grupy woluminów.
| Partycja | Rozmiar | System plików | Szyfrowany |
|---|---|---|---|
| System EFI | Od 512 MB do 1 GB | FAT32 | Nie |
/boot | Od 1 do 2 GB | ext4 / xfs | Nie |
| Kontener LUKS | Pozostałe miejsce | LUKS2 | Tak |
| Katalog główny LVM | 20 do 100 GB+ | ext4 / xfs | Tak (w ramach LUKS) |
| LVM swap | Równa pamięci RAM | swap | Tak (w ramach LUKS) |
ext4 jest bezpiecznym domyślnym systemem plików dla woluminu root. xfs lepiej radzi sobie z dużymi plikami i równoległym zapisem, co ma znaczenie dla serwerów multimedialnych, ML i baz danych. W przypadku dysków SSD i NVMe dodaj opcję discard opcję w /etc/crypttab , aby włączyć TRIM. TRIM ujawnia, które sektory są w użyciu, co stanowi niewielki wyciek informacji. W przypadku większości obciążeń korzyści wynikające z wyrównywania zużycia przeważają nad tym ryzykiem. Jeśli model zagrożeń obejmuje analizę kryminalistyczną urządzenia, należy pozostawić tę opcję wyłączoną.
Konfiguracja LUKS z LVM
Zidentyfikuj dysk docelowy za pomocą lsblk i wyczyść wszelkie istniejące metadane:
wipefs -a /dev/sdXOpcjonalnie nadpisz go losowymi danymi, aby zaszyfrowane bloki nie różniły się od pustej przestrzeni:
dd if=/dev/urandom of=/dev/sdX bs=1M status=progressZainicjuj kontener LUKS2. Użyj --sector-size 4096 dla dysków NVMe i nowoczesnych dysków SSD z fizycznymi sektorami 4K:
cryptsetup luksFormat --type luks2 --sector-size 4096 /dev/sdX
cryptsetup luksOpen /dev/sdX cryptdataNatychmiast wykonaj kopię zapasową nagłówka, zanim umieścisz jakiekolwiek dane na dysku:
cryptsetup luksHeaderBackup /dev/sdX --header-backup-file luks-header-backup.imgUtwórz LVM na odblokowanym kontenerze, a następnie sformatuj woluminy logiczne:
pvcreate /dev/mapper/cryptdata
vgcreate vg_secure /dev/mapper/cryptdata
lvcreate -L 50G -n lv_root vg_secure
lvcreate -L 8G -n lv_swap vg_secure
mkfs.xfs /dev/vg_secure/lv_root
mkswap /dev/vg_secure/lv_swapDodaj wpis do /etc/crypttab , używając UUID, a nie /dev/sdX, który może się zmieniać przy ponownym uruchomieniu. Uzyskaj go za pomocą blkid /dev/sdX:
cryptdata UUID=<your-uuid> none luks,discardNastępnie zamontuj za pomocą /etc/fstab:
/dev/vg_secure/lv_root / xfs defaults,noatime 0 1Zregeneruj initramfs, aby hooki szyfrowania były ładowane podczas uruchamiania:
# Debian/Ubuntu
update-initramfs -u -k all
# RHEL/Fedora
dracut -f --regenerate-allUruchom ponownie komputer, wprowadź hasło i potwierdź konfigurację za pomocą cryptsetup status cryptdata i lsblk -f. To ostatnie powinno wyświetlić crypto_LUKS jako FSTYPE na zaszyfrowanej partycji.
Zarządzanie kluczami i zdalne odblokowywanie
LUKS2 obsługuje 32 sloty na klucze. Od samego początku należy używać co najmniej trzech: hasła administratora, klucza odzyskiwania przechowywanego offline (wydrukowanego i zamkniętego w sejfie lub na zaszyfrowanej pamięci USB w sejfie) oraz pliku klucza do automatycznego odblokowywania dodatkowych woluminów danych. Trzymaj się 95 drukowalnych znaków ASCII, ponieważ znaki spoza ASCII powodują problemy z układem klawiatury w wierszu poleceń podczas uruchamiania, których debugowanie jest irytujące. Zmieniaj hasło administratora za każdym razem, gdy ktoś z dostępem opuszcza zespół.
Wyświetl aktywne sloty za pomocą cryptsetup luksDump /dev/sdX, dodaj klucz za pomocą cryptsetup luksAddKey, a cofnąć jeden za pomocą cryptsetup luksKillSlot. Chroń wszystkie pliki kluczy za pomocą ścisłych uprawnień:
chmod 0400 /etc/luks/keyfile.binW przypadku serwerów bez monitorów w zdalnych centrach danych problemem jest monit o hasło. Istnieją trzy sposoby radzenia sobie z tym:
| Metoda | Najlepsze zastosowanie | Kompromis |
|---|---|---|
| Dropbear w initramfs | Ręczne odblokowanie przez SSH | Nadal wymaga interwencji człowieka przy ponownym uruchomieniu |
| Clevis + Tang (NBDE) | Automatyczne odblokowanie w zaufanej sieci | Serwer musi połączyć się z serwerem Tang, aby się uruchomić |
| TPM2 poprzez systemd-cryptenroll | Automatyzacja oparta na sprzęcie | Aktualizacje oprogramowania układowego mogą zmienić wartości PCR i zablokować dostęp |
Dropbear uruchamia niewielki serwer SSH w initramfs. Po uruchomieniu logujesz się przez SSH i ręcznie wpisujesz hasło. Clevis z Tang wykorzystuje szyfrowanie dysku powiązane z siecią: serwer odblokowuje się, o ile ma dostęp do serwera Tang w zaufanej sieci. Tang nie przechowuje Twojego klucza, zapewnia jedynie połowę klucza w ramach wymiany McCallum-Relyea. Używaj wielu serwerów Tang z sss pin, aby odblokowanie nadal działało, gdy jeden z nich jest offline. Powiązanie TPM 2.0 poprzez systemd-cryptenroll powiązuje klucz z PCR 7 (stan bezpiecznego rozruchu), więc serwer odblokowuje się tylko wtedy, gdy oprogramowanie układowe i program rozruchowy nie zostały naruszone. Zawsze należy zachować hasło jako rozwiązanie awaryjne podczas korzystania z TPM, ponieważ aktualizacje oprogramowania układowego zmieniają wartości PCR.
Zabezpieczanie i unikanie blokad
Używaj haseł składających się z co najmniej 20 znaków. Włącz szyfrowanie uwierzytelnione za pomocą --integrity w luksFormat , jeśli model zagrożeń obejmuje nie tylko poufność, ale także manipulowanie danymi. Wiąże się to z kosztem amplifikacji zapisu, więc najpierw przeprowadź testy porównawcze.
Nie klonuj kontenera LUKS na różnych maszynach. Klucz woluminu jest kopiowany wraz z nim, więc zmiana hasła na jednym hoście nie ochroni drugiego. Sformatuj każdy dysk osobno.
Aby zapewnić bezpieczne wycofanie z eksploatacji, cryptsetup erase /dev/sdX w ciągu milisekund kasuje wszystkie miejsca na klucze, uniemożliwiając odzyskanie danych z dysku bez jego fizycznego zniszczenia. Już to samo stanowi mocny argument za domyślnym szyfrowaniem wszystkiego.
Typowe tryby awarii:
| Objaw | Prawdopodobna przyczyna | Rozwiązanie |
|---|---|---|
| System zawiesza się przy monicie o hasło | Niezgodność układu klawiatury | Zmień układ klawiatury lub użyj klucza odzyskiwania |
| „Urządzenie nie jest prawidłowym urządzeniem LUKS” | Nieprawidłowa ścieżka do urządzenia | Sprawdź lsblk , czy wybrano partycję, czy cały dysk |
| Klawiatura nie reaguje podczas uruchamiania | Kolejność haków Initramfs | Umieść keyboard przed encrypt w mkinitcpio.conf |
| GRUB pomija monit o hasło | GRUB_ENABLE_CRYPTODISK nie ustawiono | Ustaw GRUB_ENABLE_CRYPTODISK=y w /etc/default/grub, zainstaluj ponownie GRUB |
| „Nie udało się znaleźć urządzenia root” | Brak lvm2 lub encrypt haki | Dodaj haki i uruchom mkinitcpio -P |
Najpoważniejszym trybem awarii jest uszkodzenie nagłówka. Jeśli nagłówek LUKS zostanie utracony lub uszkodzony, dane przepadną. Nie ma możliwości odzyskania danych poza przywróceniem z kopii zapasowej nagłówka. Przechowuj kopię na oddzielnym nośniku, najlepiej w dwóch lokalizacjach, i nigdy na samym zaszyfrowanym dysku. W przypadku niekrytycznych woluminów pomocniczych dodaj nofail do /etc/crypttab , aby nieudane zamontowanie nie spowodowało zawieszenia systemu podczas uruchamiania.
Serwery dedykowane FDC są dostarczane z oprogramowaniem sprzętowym obsługującym AES-NI i pełne szyfrowanie dysku od razu po wyjęciu z pudełka. Skonfiguruj serwer dedykowany, gdy będziesz gotowy do wdrożenia.

Masz dość powolnych wdrożeń lub ograniczeń przepustowości? FDC Servers oferuje natychmiastowy dostęp do dedykowanych zasobów, globalny zasięg oraz elastyczne plany dostosowane do każdej skali działalności. Gotowy na modernizację?
Odblokuj wydajność już teraz
Samouczek dotyczący programu iperf3: Testowanie prędkości sieci w systemach Linux i Windows
Zainstaluj iperf3, przeprowadź testy przepustowości i dostosuj bufory TCP, aby uzyskać dokładne wyniki w systemach Linux i Windows. Obejmuje testy UDP, dwukierunkowe oraz testy 10GbE+.
10 min czytania - 7 maja 2026
Dostosowane profile do optymalizacji obciążenia serwerów z systemem Linux
16 min czytania - 9 czerwca 2026

Masz pytania lub potrzebujesz niestandardowego rozwiązania?
Elastyczne opcje
Globalny zasięg
Natychmiastowe wdrożenie
Elastyczne opcje
Globalny zasięg
Natychmiastowe wdrożenie