LUKS Full Disk Encryption: Installationsguide för Linux-server
15 min läsning - 5 juni 2026

LUKS fulldiskkryptering för Linux-servrar, som omfattar LUKS2-installation, LVM-layout, nyckelhantering, fjärrupplåsning med Tang och TPM samt härdning.
Guide till LUKS-server för fullständig diskkryptering
LUKS (Linux Unified Key Setup) krypterar en hel Linux-blockenhet så att innehållet är oläsbart utan huvudnyckeln. En stulen hårddisk, ett uttjänt chassi, en bortglömd backup-disk: inget av detta utsätter dina data för risk om LUKS är korrekt konfigurerat. Det här inlägget beskriver hur man implementerar LUKS-helskivskryptering på en server, inklusive LVM-layout, nyckelhantering, fjärrupplåsning och de felmodeller som låser användare ute från sina egna data.
Referensimplementeringen här är LUKS2 med LVM inuti den krypterade behållaren, på en Linux-server med AES-NI i processorn. Den kombinationen hanterar alla moderna arbetsbelastningar, presterar bra och uppfyller kraven för data i vila i HIPAA, PCI-DSS, GDPR och SOC 2.
Varför LUKS2, och vad man bör kontrollera först
LUKS krypterar på blockenhetsnivå med hjälp av dm-crypt, där huvudnyckeln lagras i nyckelfack inuti LUKS-huvudet. Denna uppdelning är viktig: du kan rotera lösenord eller lägga till nya nycklar utan att behöva kryptera om disken.
LUKS2 är den nuvarande standarden. Den stöder upp till 32 nyckelfack, metadata i JSON-format, omkryptering online och autentiserad kryptering via flaggan --integrity flaggan. LUKS1 stöder 8 nyckelfack och fungerar bra på äldre system, men nya installationer bör börja med LUKS2.
Prestandaförlusten med AES-NI är vanligtvis under 5 % på modern hårdvara. Kontrollera innan du börjar:
grep -o aes /proc/cpuinfo | head -1
cryptsetup benchmarkOm grep returnerar ingenting saknar din CPU AES-NI och krypteringen kommer att vara CPU-bunden vid tung I/O. cryptsetup benchmark visar genomströmning per krypteringsalgoritm så att du kan välja den snabbaste som din hårdvara stöder. Kontrollera också att cryptsetup är installerat och att dm-crypt kärnmodulen är tillgänglig. Båda levereras som standard på Ubuntu, Debian, RHEL och Arch.
Disklayout
Två partitioner förblir okrypterade: EFI-systempartitionen (512 MB FAT32) och /boot (1 till 2 GB, ext4 eller xfs). GRUB måste läsa båda innan det kan be om lösenordet. Allt annat finns inuti LUKS-behållaren.
Den rekommenderade layouten är LVM inuti LUKS: en LUKS-behållare som innehåller en LVM-volymgrupp, med logiska volymer för root, swap och eventuella datapartitioner. Detta håller LVM-metadata krypterade och låter dig ändra storlek på eller ta snapshots av volymer utan att röra LUKS-lagret. LUKS-på-LVM fungerar också, men det exponerar volymgruppens struktur.
| Partition | Storlek | Filsystem | Krypterad |
|---|---|---|---|
| EFI-system | 512 MB till 1 GB | FAT32 | Nej |
/boot | 1 till 2 GB | ext4 / xfs | Nej |
| LUKS-behållare | Återstående utrymme | LUKS2 | Ja |
| LVM-rot | 20 till 100 GB+ | ext4 / xfs | Ja (inom LUKS) |
| LVM-swap | Lika med RAM | swap | Ja (inuti LUKS) |
ext4 är det säkra standardvalet för rotvolymen. xfs hanterar stora filer och parallella skrivningar bättre, vilket är viktigt för media-, ML- och databasservrar. För SSD-enheter och NVMe, lägg till discard alternativet i /etc/crypttab för att aktivera TRIM. TRIM avslöjar vilka sektorer som används, vilket är en liten informationsläcka. För de flesta arbetsbelastningar är det värt fördelarna med slitageutjämning. Om din hotmodell inkluderar forensisk analys av enheten, lämna den avstängd.
Konfigurera LUKS med LVM
Identifiera måldisken med lsblk och rensa eventuella befintliga metadata:
wipefs -a /dev/sdXÖverskriv eventuellt med slumpmässiga data så att krypterade block inte kan skiljas från tomt utrymme:
dd if=/dev/urandom of=/dev/sdX bs=1M status=progressInitiera LUKS2-behållaren. Använd --sector-size 4096 för NVMe och moderna SSD-enheter med 4K fysiska sektorer:
cryptsetup luksFormat --type luks2 --sector-size 4096 /dev/sdX
cryptsetup luksOpen /dev/sdX cryptdataSäkerhetskopiera rubriken omedelbart, innan du lägger in några data på disken:
cryptsetup luksHeaderBackup /dev/sdX --header-backup-file luks-header-backup.imgSkapa LVM ovanpå den olåsta behållaren och formatera sedan de logiska volymerna:
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_swapLägg till en post i /etc/crypttab med hjälp av UUID, inte /dev/sdX, som kan ändras mellan omstarter. Hämta den med blkid /dev/sdX:
cryptdata UUID=<your-uuid> none luks,discardMontera sedan via /etc/fstab:
/dev/vg_secure/lv_root / xfs defaults,noatime 0 1Återskapa initramfs så att krypteringsfunktionerna laddas vid uppstart:
# Debian/Ubuntu
update-initramfs -u -k all
# RHEL/Fedora
dracut -f --regenerate-allStarta om, ange lösenfrasen och bekräfta inställningen med cryptsetup status cryptdata och lsblk -f. Det senare bör visa crypto_LUKS som FSTYPE på den krypterade partitionen.
Nyckelhantering och fjärrupplåsning
LUKS2 stöder 32 nyckelslots. Använd minst tre från början: en administratörslösenfras, en återställningsnyckel som lagras offline (utskriven och inlåst, eller på ett krypterat USB-minne i ett kassaskåp) och en nyckelfil för automatisk upplåsning av sekundära datavolymer. Håll dig till de 95 utskrivbara ASCII-tecknen, eftersom icke-ASCII-tecken orsakar problem med tangentbordslayouten vid startprompten som är irriterande att felsöka. Byt ut administratörslösenordet varje gång någon med åtkomst lämnar teamet.
Visa aktiva platser med cryptsetup luksDump /dev/sdX, lägg till en nyckel med cryptsetup luksAddKeyoch återkalla en med cryptsetup luksKillSlot. Skydda alla nyckelfiler med strikta behörigheter:
chmod 0400 /etc/luks/keyfile.binFör headless-servrar i fjärrdatacenter är lösenordsfrågan ett problem. Tre sätt att hantera det:
| Metod | Bäst för | Nackdel |
|---|---|---|
| Dropbear i initramfs | Manuell upplåsning via SSH | Kräver fortfarande en person vid omstart |
| Clevis + Tang (NBDE) | Automatisk upplåsning på ett betrott nätverk | Servern måste nå Tang-servern för att starta |
| TPM2 via systemd-cryptenroll | Hårdvarubunden automatisering | Firmwareuppdateringar kan ändra PCR-värden och låsa dig ute |
Dropbear kör en liten SSH-server i initramfs. Du loggar in via SSH efter uppstart och anger lösenfrasen manuellt. Clevis med Tang använder nätverksbunden diskkryptering: servern låser upp sig själv så länge den kan nå en Tang-server på det betrodda nätverket. Tang lagrar inte din nyckel, utan tillhandahåller ena halvan av ett McCallum-Relyea-utbyte. Använd flera Tang-servrar med sss pinnen så att upplåsningen fortfarande fungerar om en är offline. TPM 2.0-bindning via systemd-cryptenroll binder nyckeln till PCR 7 (Secure Boot-status), så servern låser upp sig själv endast om firmware och bootloader inte har manipulerats. Ha alltid en lösenfras som reserv när du använder TPM, eftersom firmwareuppdateringar ändrar PCR-värden.
Säkerhetsåtgärder och undvikande av utelåsning
Använd lösenord på minst 20 tecken. Aktivera autentiserad kryptering med --integrity vid luksFormat om din hotmodell inkluderar datamanipulation snarare än bara konfidentialitet. Det medför en kostnad i form av skrivförstärkning, så gör först en prestandatest.
Klon inte en LUKS-behållare mellan maskiner. Volymnyckeln kopieras med den, så att ändra lösenfrasen på en värd skyddar inte den andra. Formatera varje disk individuellt.
För säker avveckling cryptsetup erase /dev/sdX rensas alla nyckelplatser på några millisekunder, vilket gör disken omöjlig att återställa utan fysisk förstörelse. Det i sig är ett starkt argument för att kryptera allt som standard.
Vanliga fel:
| Symptom | Trolig orsak | Åtgärd |
|---|---|---|
| Uppstarten hänger sig vid lösenordsfrågan | Felaktig tangentbordslayout | Byt layout eller använd återställningsnyckeln |
| "Enheten är inte en giltig LUKS-enhet" | Felaktig enhetsväg | Kontrollera lsblk om det är en partition eller hela disken |
| Tangentbordet svarar inte vid uppstart | Initramfs-hook-ordning | Placera keyboard före encrypt i mkinitcpio.conf |
| GRUB hoppar över lösenordsfrågan | GRUB_ENABLE_CRYPTODISK inte inställd | Ställ in GRUB_ENABLE_CRYPTODISK=y i /etc/default/grub, installera om GRUB |
| "Kunde inte hitta rotenheten" | Saknas lvm2 eller encrypt krokar | Lägg till hooks och kör mkinitcpio -P |
Det fel som är viktigast är skadad header. Om LUKS-headern går förlorad eller skadas är data borta. Det finns ingen återställning förutom att återställa från en säkerhetskopia av headern. Spara en kopia på separat media, helst på två platser, och aldrig på den krypterade disken själv. För icke-kritiska sekundära volymer, lägg till nofail till /etc/crypttab så att en misslyckad montering inte blockerar uppstarten.
FDC:s dedikerade servrar levereras med hårdvara som stöder AES-NI och fullständig diskkryptering direkt ur lådan. Konfigurera en dedikerad server när du är redo att driftsätta den.

Trött på långsamma driftsättningar eller bandbreddsbegränsningar? FDC Servers erbjuder omedelbar dedikerad kraft, global räckvidd och flexibla planer som är byggda för alla skalor. Är du redo att uppgradera?
Lås upp prestanda nu
Linux Traffic Control (tc): en praktisk guide
Kontrollera bandbredd, prioritera trafik och forma in- och utpassering på Linux med tc. Fungerande HTB-, IFB-, DSCP- och fq_codel-konfiguration för riktiga servrar.
12 min läsning - 5 juni 2026
Varför det är viktigt att ha en kraftfull och omättad VPS
7 min läsning - 9 maj 2025

Har du frågor eller behöver du en anpassad lösning?
Flexibla alternativ
Global räckvidd
Omedelbar driftsättning
Flexibla alternativ
Global räckvidd
Omedelbar driftsättning