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 limitów przepustowości? FDC Servers oferuje natychmiastową dedykowaną moc, globalny zasięg i elastyczne plany dostosowane do dowolnej skali. Gotowy do aktualizacji?
Odblokuj wydajność teraz
Linux Traffic Control (tc): praktyczny przewodnik
Kontroluj przepustowość, ustalaj priorytety ruchu oraz kształtuj ruch przychodzący i wychodzący w systemie Linux za pomocą tc. Działająca konfiguracja HTB, IFB, DSCP i fq_codel dla rzeczywistych serwerów.
12 min czytania - 5 czerwca 2026
Dlaczego ważne jest posiadanie wydajnego i niezmierzonego serwera VPS?
7 min czytania - 9 maja 2025

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