Šifrování celého disku LUKS: Průvodce nastavením linuxového serveru

15 min čtení - 5. června 2026

hero section cover
Obsah
  • Průvodce serverem pro šifrování celého disku LUKS
  • Proč LUKS2 a co zkontrolovat jako první
  • Rozložení disku
  • Nastavení LUKS s LVM
  • Správa klíčů a vzdálené odemykání
  • Zabezpečení a prevence uzamčení
Sdílet

Šifrování celého disku LUKS pro linuxové servery, zahrnující nastavení LUKS2, rozložení LVM, správu klíčů, vzdálené odemykání pomocí Tang a TPM a hardening.

Průvodce serverem pro šifrování celého disku LUKS

LUKS (Linux Unified Key Setup) šifruje celé blokové zařízení Linuxu, takže obsah je bez hlavního klíče nečitelný. Ukradený disk, vyřazený šasi, zapomenutý záložní disk: nic z toho neohrozí vaše data, pokud je LUKS správně nastaven. Tento příspěvek popisuje, jak nasadit úplné šifrování disku LUKS na serveru, včetně rozložení LVM, správy klíčů, vzdáleného odemykání a režimů selhání, které lidem znemožňují přístup k jejich vlastním datům.

Referenční implementací je zde LUKS2 s LVM uvnitř šifrovaného kontejneru na linuxovém serveru s AES-NI v procesoru. Tato kombinace zvládá všechny moderní pracovní zátěže, má dobrý výkon a splňuje požadavky na data v klidu podle HIPAA, PCI-DSS, GDPR a SOC 2.

Proč LUKS2 a co zkontrolovat jako první

LUKS šifruje na úrovni blokového zařízení pomocí dm-crypt, přičemž hlavní klíč je uložen v klíčových slotech uvnitř hlavičky LUKS. Toto oddělení je důležité: můžete střídat hesla nebo přidávat nové klíče, aniž byste museli disk znovu šifrovat.

LUKS2 je aktuální výchozí nastavení. Podporuje až 32 klíčových slotů, metadata ve formátu JSON, online přešifrování a autentizované šifrování pomocí příznaku --integrity příznak. LUKS1 podporuje 8 klíčových slotů a je vhodný pro starší systémy, ale nové nasazení by mělo začínat s LUKS2.

Výkonnostní ztráta s AES-NI je na moderním hardwaru obvykle pod 5 %. Před spuštěním zkontrolujte:

grep -o aes /proc/cpuinfo | head -1
cryptsetup benchmark

Pokud grep nevrátí nic, váš procesor nemá AES-NI a šifrování bude při vysokém zatížení I/O závislé na procesoru. cryptsetup benchmark zobrazuje propustnost pro jednotlivé šifry, takže si můžete vybrat tu nejrychlejší, kterou váš hardware podporuje. Ověřte také, zda je nainstalován cryptsetup a zda je k dispozici dm-crypt modul jádra je k dispozici. Oba jsou standardně dodávány v Ubuntu, Debianu, RHEL a Archu.

Rozložení disku

Dva oddíly zůstávají nešifrované: systémový oddíl EFI (512 MB FAT32) a /boot (1 až 2 GB, ext4 nebo xfs). GRUB musí přečíst oba oddíly, než může vyžádat heslo. Všechno ostatní se nachází uvnitř kontejneru LUKS.

Doporučené rozložení je LVM uvnitř LUKS: jeden kontejner LUKS obsahující skupinu svazků LVM s logickými svazky pro kořenový, odkládací a jakékoli datové oddíly. Tím zůstávají metadata LVM zašifrovaná a umožňuje to měnit velikost svazků nebo vytvářet jejich snímky, aniž by se zasahovalo do vrstvy LUKS. LUKS-on-LVM také funguje, ale odhaluje strukturu skupiny svazků.

OddílVelikostSouborový systémŠifrovaný
Systém EFI512 MB až 1 GBFAT32Ne
/boot1 až 2 GBext4 / xfsNe
Kontejner LUKSZbývající místoLUKS2Ano
LVM root20 až 100 GB+ext4 / xfsAno (uvnitř LUKS)
LVM swapStejný jako RAMswapAno (uvnitř LUKS)

ext4 je bezpečná výchozí volba pro kořenový svazek. xfs lépe zpracovává velké soubory a paralelní zápisy, což je důležité pro mediální, ML a databázové servery. U SSD a NVMe přidejte volbu discard v /etc/crypttab , abyste povolili TRIM. TRIM odhaluje, které sektory jsou v použití, což představuje malý únik informací. U většiny pracovních zatížení to stojí za výhodu vyrovnávání opotřebení. Pokud váš model hrozeb zahrnuje forenzní analýzu zařízení, nechte tuto možnost vypnutou.

Nastavení LUKS s LVM

Identifikujte cílový disk pomocí lsblk a vymažte veškerá existující metadata:

wipefs -a /dev/sdX

Volitelně přepište náhodnými daty, aby šifrované bloky nebyly odlišitelné od prázdného místa:

dd if=/dev/urandom of=/dev/sdX bs=1M status=progress

Inicializujte kontejner LUKS2. Použijte --sector-size 4096 pro NVMe a moderní SSD s fyzickými sektory 4K:

cryptsetup luksFormat --type luks2 --sector-size 4096 /dev/sdX
cryptsetup luksOpen /dev/sdX cryptdata

Okamžitě zálohujte hlavičku, než na disk uložíte jakákoli data:

cryptsetup luksHeaderBackup /dev/sdX --header-backup-file luks-header-backup.img

Vytvořte LVM nad odemčeným kontejnerem a poté naformátujte logické svazky:

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_swap

Přidejte záznam do /etc/crypttab pomocí UUID, nikoli /dev/sdX, který se může při restartu měnit. Získejte jej pomocí blkid /dev/sdX:

cryptdata UUID=<your-uuid> none luks,discard

Poté připojte pomocí /etc/fstab:

/dev/vg_secure/lv_root  /  xfs  defaults,noatime  0 1

Znovu vygenerujte initramfs, aby se šifrovací háčky načítaly při spuštění:

# Debian/Ubuntu
update-initramfs -u -k all
 
# RHEL/Fedora
dracut -f --regenerate-all

Restartujte, zadejte heslo a potvrďte nastavení pomocí cryptsetup status cryptdata a lsblk -f. Ten by měl zobrazit crypto_LUKS jako FSTYPE na šifrovaném oddílu.

Správa klíčů a vzdálené odemykání

LUKS2 podporuje 32 klíčových slotů. Od začátku použijte alespoň tři: heslo správce, obnovovací klíč uložený offline (vytisknutý a uzamčený nebo na šifrovaném USB v trezoru) a klíčový soubor pro automatické odemykání sekundárních datových svazků. Držte se 95 tisknutelných znaků ASCII, protože znaky mimo ASCII způsobují při spouštění systému problémy s rozložením klávesnice, jejichž odstraňování je velmi obtížné. Vyměňujte heslo správce vždy, když někdo s přístupem opustí tým.

Zobrazte aktivní sloty pomocí cryptsetup luksDump /dev/sdX, přidejte klíč pomocí cryptsetup luksAddKeya zrušte jej pomocí cryptsetup luksKillSlot. Chraňte všechny klíčové soubory přísnými oprávněními:

chmod 0400 /etc/luks/keyfile.bin

U serverů bez monitoru ve vzdálených datových centrech je výzva k zadání hesla problém. Existují tři způsoby, jak to vyřešit:

MetodaNejvhodnější proKompromis
Dropbear v initramfsRuční odemknutí přes SSHPři restartu je stále nutná lidská přítomnost
Clevis + Tang (NBDE)Automatické odemknutí v důvěryhodné sítiServer se musí připojit k serveru Tang, aby se mohl spustit
TPM2 přes systemd-cryptenrollAutomatizace vázaná na hardwareAktualizace firmwaru mohou změnit hodnoty PCR a zablokovat vám přístup

Dropbear spouští malý SSH server v initramfs. Po spuštění se přihlásíte přes SSH a ručně zadáte heslo. Clevis s Tangem používá šifrování disku vázané na síť: server se odemkne, pokud se může spojit se serverem Tang v důvěryhodné síti. Tang neukládá váš klíč, poskytuje pouze polovinu výměny McCallum-Relyea. Použijte více serverů Tang s sss pin, aby odemykání fungovalo i v případě, že je jeden z nich offline. Vázání TPM 2.0 pomocí systemd-cryptenroll vázání TPM 2.0 váže klíč na PCR 7 (stav Secure Boot), takže se server odemkne pouze v případě, že firmware a bootloader nebyly narušeny. Při používání TPM si vždy ponechte klíčovou frázi jako zálohu, protože aktualizace firmwaru mění hodnoty PCR.

Zabezpečení a prevence uzamčení

Používejte hesla o délce nejméně 20 znaků. Povolte ověřené šifrování pomocí --integrity v luksFormat , pokud váš model hrozeb zahrnuje nejen důvěrnost, ale i manipulaci s daty. Je to spojeno s náklady na zesílení zápisu, proto nejprve proveďte benchmark.

Neklonujte kontejner LUKS mezi stroji. Klíč svazku se zkopíruje spolu s ním, takže změna hesla na jednom hostiteli neochrání ten druhý. Každý disk přeformátujte samostatně.

Pro bezpečné vyřazení z provozu cryptsetup erase /dev/sdX vymazání všech klíčových slotů v řádu milisekund, což znemožňuje obnovu disku bez jeho fyzického zničení. To samo o sobě je pádným argumentem pro šifrování všeho ve výchozím nastavení.

Běžné typy selhání:

PříznakPravděpodobná příčinaŘešení
Zavádění se zasekne na výzvě k zadání heslaNeshoda rozložení klávesniceZměňte rozložení nebo použijte obnovovací klíč
„Zařízení není platným zařízením LUKS“Nesprávná cesta k zařízeníZkontrolujte lsblk , zda se jedná o oddíl nebo celý disk
Klávesnice při spouštění nereagujePořadí háčků InitramfsUmístění keyboard před encrypt v mkinitcpio.conf
GRUB přeskočí výzvu k zadání heslaGRUB_ENABLE_CRYPTODISK není nastavenoNastavit GRUB_ENABLE_CRYPTODISK=y v /etc/default/grub, přeinstalujte GRUB
„Nepodařilo se najít kořenové zařízení“Chybí lvm2 nebo encrypt háčkyPřidejte háčky a spusťte mkinitcpio -P

Nejzávažnějším typem selhání je poškození hlavičky. Pokud dojde ke ztrátě nebo poškození hlavičky LUKS, data jsou ztracena. Neexistuje žádný způsob obnovy kromě obnovení ze zálohy hlavičky. Uložte kopii na samostatné médium, ideálně na dvě místa, a nikdy ne na samotný šifrovaný disk. U nedůležitých sekundárních svazků přidejte nofail k /etc/crypttab , aby selhání připojení nezablokovalo bootování.

Dedikované servery FDC se dodávají s hardwarem, který podporuje AES-NI a plné šifrování disku ihned po vybalení. Nakonfigurujte dedikovaný server, až budete připraveni k nasazení.

background image
Brzdí váš server váš růst?

Máte už dost pomalého nasazování nebo omezení šířky pásma? Společnost FDC Servers nabízí okamžitý vyhrazený výkon, globální dosah a flexibilní plány vytvořené pro libovolný rozsah. Jste připraveni na upgrade?

Odemkněte výkon nyní

Blog

Tento týden byly představeny

Další články
Linux Traffic Control (tc): praktický průvodce

Linux Traffic Control (tc): praktický průvodce

Řízení šířky pásma, upřednostňování provozu a formování vstupů a výstupů v systému Linux pomocí tc. Pracovní konfigurace HTB, IFB, DSCP a fq_codel pro skutečné servery.

12 min čtení - 5. června 2026

Proč je důležité mít výkonný a neměřený VPS

7 min čtení - 9. května 2025

Další články
background image

Máte dotazy nebo potřebujete vlastní řešení?

icon

Flexibilní možnosti

icon

Globální dosah

icon

Okamžité nasazení

icon

Flexibilní možnosti

icon

Globální dosah

icon

Okamžité nasazení