Hvordan kryptere stasjoner ved å bruke LUKS i Fedora Linux


I denne artikkelen vil vi forklare kort om blokkkryptering, Linux Unified Key Setup (LUKS), og beskriver instruksjonene for å lage en kryptert blokkeringsenhet i Fedora Linux.

Blokker enhetskryptering

Blokkeringsenhetskryptering brukes til å sikre dataene på en blokkeringsenhet ved å kryptere dem, og for å dekryptere data må en bruker oppgi en passordfrase eller nøkkel for å få tilgang. Dette gir ekstra sikkerhetsmekanismer da det beskytter enhetens innhold selv om den er fysisk løsrevet fra systemet.

Introduksjon til LUKS

LUKS (Linux Unified Key Setup) er standarden for blokkeringsenhetskryptering i Linux, som fungerer ved å etablere et diskformat for dataene og en passordfrase/nøkkeladministrasjonspolicy . Den lagrer all nødvendig oppsettinformasjon i partisjonsoverskriften (også kjent som LUKS-overskriften), slik at du kan transportere eller migrere data sømløst.

LUKS bruker kjerneenhetskartleggingsundersystemet med dm-crypt-modulen for å gi en lavnivåkartlegging som inneholder kryptering og dekryptering av enhetsdataene. Du kan bruke cryptsetup-programmet til å utføre oppgaver på brukernivå som å lage og få tilgang til krypterte enheter.

Klargjøring av en blokkeringsenhet

Følgende instruksjoner viser trinnene for å opprette og konfigurere krypterte blokkenheter etter installasjon.

Installer cryptsetup-pakken.

dnf install cryptsetup-luks

Deretter fyller du enheten med tilfeldige data før du krypterer den, da dette vil øke styrken på krypteringen betydelig ved å bruke 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: Kommandoene ovenfor vil slette alle eksisterende data på enheten.

Formatering av en kryptert enhet

Deretter bruker du kommandolinjeverktøyet cryptsetup for å formatere enheten som en dm-crypt/LUKS-kryptert enhet.

cryptsetup luksFormat /dev/sdb1

Etter å ha kjørt kommandoen, vil du bli bedt om å skrive inn JA (med store bokstaver) for å gi en passordfrase to ganger for enheten som skal formateres for bruk, som vist i følgende skjermbilde.

For å bekrefte om operasjonen var vellykket, kjør følgende kommando.

cryptsetup isLuks /dev/sdb1 && echo Success

Du kan se et sammendrag av krypteringsinformasjonen for enheten.

cryptsetup luksDump /dev/sdb1

Opprette kartlegging for å gi tilgang til et dekryptert innhold

I denne delen vil vi konfigurere hvordan du får tilgang til den krypterte enhetens dekrypterte innhold. Vi vil lage en kartlegging ved å bruke kjerneenhetsmapperen. Det anbefales å lage et meningsfylt navn for denne kartleggingen, noe sånt som luk-uuid (hvor <uuid> er erstattet med enhetens LUKS UUID( Universelt unik identifikator).

For å få den krypterte enheten UUID, kjør følgende kommando.

cryptsetup luksUUID /dev/sdb1

Etter å ha fått UUID, kan du opprette tilordningsnavnet som vist (du vil bli bedt om å skrive inn passordfrasen som ble opprettet tidligere).

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

Hvis kommandoen er vellykket, en enhetsnode kalt /dev/mapper/luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c som representerer den dekrypterte enheten.

Blokkerenheten som nettopp er opprettet kan leses fra og skrives til som enhver annen ukryptert blokkenhet. Du kan se litt informasjon om den tilordnede enheten ved å kjøre følgende kommando.

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

Opprette filsystemer på tilordnet enhet

Nå skal vi se på hvordan du lager et filsystem på den tilordnede enheten, som lar deg bruke den tilordnede enhetsnoden akkurat som alle andre blokkenheter.

For å lage et ext4-filsystem på den tilordnede enheten, kjør følgende kommando.

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

For å montere filsystemet ovenfor, lag et monteringspunkt for det, f.eks. /mnt/encrypted-device, og monter det som følger.

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

Legg til kartinformasjon til /etc/crypttab og /etc/fstab

Deretter må vi konfigurere systemet til automatisk å sette opp en kartlegging for enheten, samt montere den ved oppstart.

Du bør legge til kartinformasjonen i /etc/crypttab-filen, i følgende format.

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

i formatet ovenfor:

  • luk-59f2b688-526d-45c7-8f0a-1ac4555d1d7c – er kartnavnet
  • UUID=59f2b688-526d-45c7-8f0a-1ac4555d1d7c – er enhetsnavnet

Lagre filen og lukk den.

Deretter legger du til følgende oppføring i /etc/fstab for å automatisk montere den tilordnede enheten ved systemoppstart.

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

Lagre filen og lukk den.

Kjør deretter følgende kommando for å oppdatere systemd enheter generert fra disse filene.

systemctl daemon-reload

Backup LUKS Headers

Til slutt vil vi dekke hvordan du sikkerhetskopierer LUKS-overskriftene. Dette er et kritisk skritt for å unngå å miste all data i den krypterte blokkeringsenheten, i tilfelle sektorene som inneholder LUKS-hodene blir skadet av enten brukerfeil eller maskinvarefeil. Denne handlingen tillater datagjenoppretting.

For å sikkerhetskopiere LUKS-hodene.

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

Og for å gjenopprette LUKS-hodene.

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

Det er alt! I denne artikkelen har vi forklart hvordan du krypterer blokkeringsenheter ved å bruke LUKS i Fedora Linux-distribusjon. Har du spørsmål eller kommentarer angående dette emnet eller veiledningen, bruk tilbakemeldingsskjemaet nedenfor for å nå oss.