Sådan krypteres drev ved hjælp af LUKS i Fedora Linux


I denne artikel forklarer vi kort om blokkryptering, Linux Unified Key Setup (LUKS) og beskriver instruktionerne til oprettelse af en krypteret blokenhed i Fedora Linux.

Blokeringskryptering bruges til at sikre dataene på en blokenhed ved at kryptere dem, og til at dekryptere data skal en bruger angive en adgangssætning eller nøgle for at få adgang. Dette giver ekstra sikkerhedsmekanismer, da det beskytter enhedens indhold, selvom det er blevet fysisk løsrevet fra systemet.

LUKS (Linux Unified Key Setup) er standarden for blokering af enhedskryptering i Linux, som fungerer ved at etablere et on-disk-format til dataene og en adgangsfrase/nøglehåndteringspolitik. Den gemmer alle nødvendige installationsoplysninger i partitionens header (også kendt som LUKS-header), så du kan transportere eller migrere data problemfrit.

LUKS bruger kernenhedskartotek-undersystemet med dm-crypt-modulet til at tilvejebringe en kortlægning på lavt niveau, der indeholder kryptering og dekryptering af enhedsdataene. Du kan bruge cryptsetup-programmet til at udføre opgaver på brugerniveau som at oprette og få adgang til krypterede enheder.

Forberedelse af en blokeringsenhed

Følgende instruktioner viser trinene til oprettelse og konfiguration af krypterede blokkenheder efter installationen.

Installer pakken cryptsetup.

# dnf install cryptsetup-luks

Dernæst udfyld enheden med tilfældige data, før du krypterer den, da dette øger krypteringens styrke markant ved hjælp af følgende kommandoer.

# dd if=/dev/urandom of=/dev/sdb1	           [slow with high quality random data ]
OR
# badblocks -c 10240 -s -w -t random -v /dev/sdb1  [fast with high quality random data]

Advarsel: Ovennævnte kommandoer sletter eksisterende data på enheden.

Formatering af en krypteret enhed

Brug derefter kryptsetup-kommandolinjeværktøjet til at formatere enheden som en dm-crypt/LUKS-krypteret enhed.

# cryptsetup luksFormat /dev/sdb1

Når du har kørt kommandoen, bliver du bedt om at indtaste JA (i store bogstaver) for at angive en adgangssætning to gange, så enheden kan formateres til brug, som vist i det følgende skærmbillede.

For at kontrollere, om operationen var vellykket, skal du køre følgende kommando.

# cryptsetup isLuks /dev/sdb1 && echo Success

Du kan se en oversigt over enhedens krypteringsoplysninger.

# cryptsetup luksDump /dev/sdb1

Oprettelse af kortlægning for at give adgang til et dekrypteret indhold

I dette afsnit konfigurerer vi, hvordan du får adgang til den krypterede enheds dekrypterede indhold. Vi opretter en kortlægning ved hjælp af kernen device-mapper. Det anbefales at oprette et meningsfuldt navn til denne kortlægning, noget som luk-uuid (hvor <uuid> erstattes med enhedens LUKS UUID

For at få din krypterede enhed UUID skal du køre følgende kommando.

# cryptsetup luksUUID /dev/sdb1

Efter at have fået UUID, kan du oprette kortlægningsnavnet som vist (du bliver bedt om at indtaste adgangskoden, der blev oprettet tidligere).

# cryptsetup luksOpen /dev/sdb1 luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c

Hvis kommandoen er vellykket, er en enhedsknude kaldet /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c , der repræsenterer den dekrypterede enhed.

Blokeringsenheden, der netop er oprettet, kan læses fra og skrives til ligesom enhver anden ukrypteret blokenhed. Du kan se nogle oplysninger om den kortlagte enhed ved at køre følgende kommando.

# dmsetup info /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c

Oprettelse af filsystemer på kortlagt enhed

Nu vil vi se på, hvordan du opretter et filsystem på den kortlagte enhed, som giver dig mulighed for at bruge den kortlagte enhedsnode ligesom enhver anden blokenhed.

For at oprette et ext4-filsystem på den kortlagte enhed skal du køre følgende kommando.

# mkfs.ext4 /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c

For at montere ovenstående filsystem skal du oprette et monteringspunkt for det f.eks. /mnt/krypteret enhed og derefter montere det som følger.

# mkdir -p /mnt/encrypted-device
# mount /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c /mnt/encrypted-device/

Føj kortoplysninger til / etc / crypttab og / etc / fstab

Dernæst er vi nødt til at konfigurere systemet til automatisk at oprette en kortlægning til enheden samt montere det ved opstartstidspunktet.

Du skal tilføje kortoplysningerne i filen/etc/crypttab i følgende format.

luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c  UUID=59f2b688-526d-45c7-8f0a-1ac4555d1d7c   none

i ovenstående format:

  • luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c – is the mapping name
  • UUID=59f2b688-526d-45c7-8f0a-1ac4555d1d7c – is the device name

Gem filen, og luk den.

Dernæst tilføj følgende post til/etc/fstab for automatisk at montere den kortlagte enhed ved systemstart.

/dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c  /mnt/encrypted-device  ext4 0 0

Gem filen, og luk den.

Kør derefter følgende kommando for at opdatere systemd enheder genereret fra disse filer.

# systemctl daemon-reload

Backup LUKS-overskrifter

Endelig vil vi dække, hvordan du sikkerhedskopierer LUKS-headere. Dette er et kritisk trin for at undgå at miste alle data i den krypterede blokenhed, hvis sektorerne, der indeholder LUKS-overskrifterne, bliver beskadiget af enten brugerfejl eller hardwarefejl. Denne handling muliggør datagendannelse.

Sikkerhedskopiering af LUKS-overskrifter.

# mkdir /root/backups  
# cryptsetup luksHeaderBackup --header-backup-file luks-headers /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c 

Og for at gendanne LUKS-headere.

# cryptsetup luksHeaderRestore --header-backup-file /root/backups/luks-headers /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c 

Det er alt! I denne artikel har vi forklaret, hvordan man krypterer blokkenheder ved hjælp af LUKS i Fedora Linux-distribution. Har du spørgsmål eller kommentarer til dette emne eller vejledning, brug feedbackformularen nedenfor for at nå os.