LUKS volledige schijfversleuteling: Linux server installatiegids

15 min lezen - 5 juni 2026

hero section cover
Inhoudsopgave
  • Handleiding voor LUKS-server met volledige schijfversleuteling
  • Waarom LUKS2, en wat moet je eerst controleren
  • Schijfindeling
  • LUKS instellen met LVM
  • Sleutelbeheer en ontgrendelen op afstand
  • Beveiliging en het voorkomen van uitsluiting
Delen

LUKS volledige schijfversleuteling voor Linux-servers, waaronder LUKS2 setup, LVM lay-out, sleutelbeheer, ontgrendeling op afstand met Tang en TPM, en hardening.

Handleiding voor LUKS-server met volledige schijfversleuteling

LUKS (Linux Unified Key Setup) versleutelt een volledig Linux-blokapparaat, zodat de inhoud onleesbaar is zonder de hoofdsleutel. Een gestolen schijf, een buiten gebruik gesteld chassis, een vergeten back-upschijf: geen van deze situaties brengt uw gegevens in gevaar als LUKS correct is ingesteld. Dit bericht behandelt hoe u LUKS volledige schijfversleuteling op een server implementeert, inclusief LVM-indeling, sleutelbeheer, ontgrendeling op afstand en de storingsmodi die ervoor zorgen dat mensen geen toegang meer hebben tot hun eigen gegevens.

De referentie-implementatie hier is LUKS2 met LVM binnen de versleutelde container, op een Linux-server met AES-NI in de CPU. Die combinatie kan elke moderne werklast aan, presteert goed en voldoet aan de vereisten voor data-at-rest in HIPAA, PCI-DSS, GDPR en SOC 2.

Waarom LUKS2, en wat moet je eerst controleren

LUKS versleutelt op het blokapparaatniveau met behulp van dm-crypt, waarbij de hoofdsleutel wordt opgeslagen in sleutelslots in de LUKS-header. Die scheiding is belangrijk: u kunt wachtzinnen rouleren of nieuwe sleutels toevoegen zonder de schijf opnieuw te versleutelen.

LUKS2 is de huidige standaard. Het ondersteunt tot 32 sleufjes, metadata in JSON-formaat, online herversleuteling en geauthenticeerde versleuteling via de --integrity vlag. LUKS1 ondersteunt 8 sleutelslots en is prima op oudere systemen, maar nieuwe implementaties moeten met LUKS2 beginnen.

De prestatie-overhead met AES-NI is op moderne hardware meestal minder dan 5%. Controleer dit voordat u begint:

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

Als grep niets retourneert, beschikt uw CPU niet over AES-NI en zal de versleuteling bij zware I/O CPU-gebonden zijn. cryptsetup benchmark toont de doorvoer per versleutelingsalgoritme, zodat u de snelste kunt kiezen die uw hardware ondersteunt. Controleer ook of cryptsetup is geïnstalleerd en of de dm-crypt kernelmodule beschikbaar is. Beide worden standaard meegeleverd op Ubuntu, Debian, RHEL en Arch.

Schijfindeling

Twee partities blijven onversleuteld: de EFI-systeempartitie (512 MB FAT32) en /boot (1 tot 2 GB, ext4 of xfs). GRUB moet beide lezen voordat het om de wachtwoordzin kan vragen. Al het andere bevindt zich in de LUKS-container.

De aanbevolen indeling is LVM binnen LUKS: één LUKS-container met een LVM-volumegroep, met logische volumes voor root, swap en eventuele gegevenspartities. Hierdoor blijven de LVM-metadata versleuteld en kunt u volumes vergroten of verkleinen of er een snapshot van maken zonder de LUKS-laag aan te raken. LUKS-op-LVM werkt ook, maar legt de structuur van de volumegroep bloot.

PartitieGrootteBestandssysteemVersleuteld
EFI-systeem512 MB tot 1 GBFAT32Nee
/boot1 tot 2 GBext4 / xfsNee
LUKS-containerResterende ruimteLUKS2Ja
LVM-root20 tot 100 GB+ext4 / xfsJa (binnen LUKS)
LVM-swapGelijk aan RAMswapJa (binnen LUKS)

ext4 is de veilige standaard voor het root-volume. xfs kan beter overweg met grote bestanden en parallelle schrijfbewerkingen, wat van belang is voor media-, ML- en databaseservers. Voeg voor SSD's en NVMe de discard optie toe in /etc/crypttab om TRIM in te schakelen. TRIM onthult welke sectoren in gebruik zijn, wat een klein informatielek is. Bij de meeste workloads is het de moeite waard vanwege het voordeel van slijtageverdeling. Als uw dreigingsmodel forensische analyse van het apparaat omvat, laat het dan uitgeschakeld.

LUKS instellen met LVM

Identificeer de doelschijf met lsblk en wis alle bestaande metadata:

wipefs -a /dev/sdX

Overschrijf optioneel met willekeurige gegevens, zodat versleutelde blokken niet te onderscheiden zijn van lege ruimte:

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

Initialiseer de LUKS2-container. Gebruik --sector-size 4096 voor NVMe en moderne SSD's met fysieke sectoren van 4K:

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

Maak onmiddellijk een back-up van de header, voordat u gegevens op de schijf plaatst:

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

Maak LVM bovenop de ontgrendelde container en formatteer vervolgens de logische volumes:

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

Voeg een vermelding toe aan /etc/crypttab met behulp van de UUID, niet /dev/sdX, die bij het opnieuw opstarten kan veranderen. Haal deze op met blkid /dev/sdX:

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

Koppel vervolgens via /etc/fstab:

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

Genereer de initramfs opnieuw zodat de versleutelingshooks bij het opstarten worden geladen:

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

Start opnieuw op, voer de wachtwoordzin in en bevestig de installatie met cryptsetup status cryptdata en lsblk -f. Bij het laatste zou crypto_LUKS als FSTYPE op de versleutelde partitie.

Sleutelbeheer en ontgrendelen op afstand

LUKS2 ondersteunt 32 sleutelvakken. Gebruik vanaf het begin ten minste drie: een beheerderswachtwoord, een offline opgeslagen herstelsleutel (afgedrukt en achter slot en grendel bewaard, of op een versleutelde USB-stick in een kluis) en een sleutelbestand voor het automatisch ontgrendelen van secundaire gegevensvolumes. Houd u aan de 95 afdrukbare ASCII-tekens, want niet-ASCII-tekens veroorzaken problemen met de toetsenbordindeling bij de opstartprompt die erg lastig op te lossen zijn. Wijzig de beheerderswachtwoordzin telkens wanneer iemand met toegang het team verlaat.

Bekijk actieve slots met cryptsetup luksDump /dev/sdX, voeg een sleutel toe met cryptsetup luksAddKeyen trek er een in met cryptsetup luksKillSlot. Beveilig alle sleutelbestanden met strikte machtigingen:

chmod 0400 /etc/luks/keyfile.bin

Voor headless servers in externe datacenters is de wachtwoordprompt een probleem. Drie manieren om hiermee om te gaan:

MethodeHet meest geschikt voorAfweging
Dropbear in initramfsHandmatig ontgrendelen via SSHVereist nog steeds menselijke tussenkomst bij het opstarten
Clevis + Tang (NBDE)Automatisch ontgrendelen op een vertrouwd netwerkServer moet de Tang-server bereiken om op te starten
TPM2 via systemd-cryptenrollHardware-gebonden automatiseringFirmware-updates kunnen PCR-waarden wijzigen en u buitensluiten

Dropbear draait een kleine SSH-server in de initramfs. U logt in via SSH na het opstarten en voert de wachtwoordzin handmatig in. Clevis met Tang maakt gebruik van netwerkgebonden schijfversleuteling: de server ontgrendelt zichzelf zolang deze een Tang-server op het vertrouwde netwerk kan bereiken. Tang slaat uw sleutel niet op, maar levert de ene helft van een McCallum-Relyea-uitwisseling. Gebruik meerdere Tang-servers met de sss pin, zodat het ontgrendelen nog steeds werkt als er één offline is. TPM 2.0-binding via systemd-cryptenroll koppelt de sleutel aan PCR 7 (Secure Boot-status), zodat de server zichzelf alleen ontgrendelt als er niet met de firmware en de bootloader is geknoeid. Houd altijd een wachtzinssleutel als back-up bij het gebruik van TPM, omdat firmware-updates de PCR-waarden wijzigen.

Beveiliging en het voorkomen van uitsluiting

Gebruik wachtzinnen van minimaal 20 tekens. Schakel geauthenticeerde versleuteling in met --integrity op luksFormat als uw dreigingsmodel niet alleen vertrouwelijkheid omvat, maar ook het knoeien met gegevens. Dit brengt kosten voor schrijfversterking met zich mee, dus voer eerst een benchmark uit.

Kloon een LUKS-container niet op verschillende machines. De volumesleutel wordt mee gekopieerd, dus het wijzigen van de wachtzin op de ene host beschermt de andere niet. Formatteer elke schijf afzonderlijk.

Voor veilige buitengebruikstelling cryptsetup erase /dev/sdX worden alle sleutelvakken binnen milliseconden gewist, waardoor de schijf onherstelbaar wordt zonder fysieke vernietiging. Dat alleen al is een sterk argument om standaard alles te versleutelen.

Veelvoorkomende storingsmodi:

SymptoomWaarschijnlijke oorzaakOplossing
Opstarten loopt vast bij wachtwoordpromptToetsenbordindeling komt niet overeenWijzig de indeling of gebruik de herstelsleutel
"Apparaat is geen geldig LUKS-apparaat"Verkeerd apparaatpadControleer lsblk of het om een partitie gaat of om de hele schijf
Toetsenbord reageert niet bij het opstartenVolgorde van Initramfs-hooksPlaats keyboard vóór encrypt in mkinitcpio.conf
GRUB slaat de wachtwoordprompt overGRUB_ENABLE_CRYPTODISK niet ingesteldInstellen GRUB_ENABLE_CRYPTODISK=y in /etc/default/grub, installeer GRUB opnieuw
"Kan root-apparaat niet vinden"Ontbreekt lvm2 of encrypt hooksVoeg hooks toe en voer uit mkinitcpio -P

De belangrijkste storingsmodus is beschadiging van de header. Als de LUKS-header verloren gaat of beschadigd raakt, zijn de gegevens weg. Er is geen herstel mogelijk, tenzij je terugzet vanaf een back-up van de header. Sla een kopie op een apart medium op, idealiter op twee locaties, en nooit op de versleutelde schijf zelf. Voeg voor niet-kritieke secundaire volumes nofail aan /etc/crypttab zodat een mislukte koppeling het opstarten niet blokkeert.

De dedicated servers van FDC worden geleverd met hardware die standaard AES-NI en volledige schijfversleuteling ondersteunt. Configureer een dedicated server wanneer u klaar bent om te implementeren.

background image
Staat uw server uw groei in de weg?

Moe van trage implementaties of bandbreedtelimieten? FDC Servers biedt direct dedicated vermogen, wereldwijd bereik en flexibele plannen voor elke schaalgrootte. Klaar om te upgraden?

Nu prestaties ontgrendelen

Blog

Uitgelicht deze week

Meer artikelen
Linux verkeerscontrole (tc): een praktische gids

Linux verkeerscontrole (tc): een praktische gids

Regel bandbreedte, prioriteer verkeer en geef vorm aan ingress en egress op Linux met tc. Werkende HTB, IFB, DSCP en fq_codel configuratie voor echte servers.

12 min lezen - 5 juni 2026

Waarom het belangrijk is om een krachtige en unmetered VPS te hebben

7 min lezen - 9 mei 2025

Meer artikelen
background image

Hebt u vragen of wilt u een oplossing op maat?

icon

Flexibele opties

icon

Wereldwijd bereik

icon

Directe inzet

icon

Flexibele opties

icon

Wereldwijd bereik

icon

Directe inzet