LUKS Full Disk Encryption: Installationsguide för Linux-server

15 min läsning - 5 juni 2026

hero section cover
Innehållsförteckning
  • Guide till LUKS-server för fullständig diskkryptering
  • Varför LUKS2, och vad man bör kontrollera först
  • Disklayout
  • Konfigurera LUKS med LVM
  • Nyckelhantering och fjärrupplåsning
  • Säkerhetsåtgärder och undvikande av utelåsning
Dela

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 benchmark

Om 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.

PartitionStorlekFilsystemKrypterad
EFI-system512 MB till 1 GBFAT32Nej
/boot1 till 2 GBext4 / xfsNej
LUKS-behållareÅterstående utrymmeLUKS2Ja
LVM-rot20 till 100 GB+ext4 / xfsJa (inom LUKS)
LVM-swapLika med RAMswapJa (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=progress

Initiera 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 cryptdata

Säkerhetskopiera rubriken omedelbart, innan du lägger in några data på disken:

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

Skapa 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_swap

Lä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,discard

Montera 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-all

Starta 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.bin

För headless-servrar i fjärrdatacenter är lösenordsfrågan ett problem. Tre sätt att hantera det:

MetodBäst förNackdel
Dropbear i initramfsManuell upplåsning via SSHKräver fortfarande en person vid omstart
Clevis + Tang (NBDE)Automatisk upplåsning på ett betrott nätverkServern måste nå Tang-servern för att starta
TPM2 via systemd-cryptenrollHårdvarubunden automatiseringFirmwareuppdateringar 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:

SymptomTrolig orsakÅtgärd
Uppstarten hänger sig vid lösenordsfråganFelaktig tangentbordslayoutByt layout eller använd återställningsnyckeln
"Enheten är inte en giltig LUKS-enhet"Felaktig enhetsvägKontrollera lsblk om det är en partition eller hela disken
Tangentbordet svarar inte vid uppstartInitramfs-hook-ordningPlacera keyboard före encrypt i mkinitcpio.conf
GRUB hoppar över lösenordsfråganGRUB_ENABLE_CRYPTODISK inte inställdStäll in GRUB_ENABLE_CRYPTODISK=y i /etc/default/grub, installera om GRUB
"Kunde inte hitta rotenheten"Saknas lvm2 eller encrypt krokarLä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.

background image
Håller din server tillbaka din tillväxt?

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

Blogg

Utvalda denna vecka

Fler artiklar
Linux Traffic Control (tc): en praktisk guide

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

Fler artiklar
background image

Har du frågor eller behöver du en anpassad lösning?

icon

Flexibla alternativ

icon

Global räckvidd

icon

Omedelbar driftsättning

icon

Flexibla alternativ

icon

Global räckvidd

icon

Omedelbar driftsättning