Btrfs-krypteringsfunksjonen på filsystemnivå er fortsatt ikke tilgjengelig. Men du kan bruke et tredjeparts krypteringsverktøy som dm-krypt for å kryptere hele lagringsenhetene til Btrfs-filsystemet.
I denne artikkelen skal jeg vise deg hvordan du krypterer lagringsenhetene lagt til et Btrfs-filsystem med dm-crypt. Så la oss komme i gang.
Forkortelser
- LUKS - Linux Unified Key Setup
- HDD - Harddisk
- SSD - Solid State Drive
Forutsetninger
For å følge denne artikkelen:
- Du må kjøre enten Fedora 33 arbeidsstasjon eller Ubuntu 20.04 LTS Linux-distribusjon på datamaskinen din.
- Du må ha en gratis HDD / SSD på datamaskinen.
Som du ser har jeg en harddisk sdb på min Ubuntu 20.04 LTS maskin. Jeg vil kryptere den og formatere den med Btrfs-filsystemet.
$ sudo lsblk -e7
Installere nødvendige pakker på Ubuntu 20.04 LTS
For å kryptere lagringsenheter og formatere dem med Btrfs-filsystemet, må du ha btrfs-progs og kryptsetup pakker installert på Ubuntu 20.04 LTS maskin. Heldigvis er disse pakkene tilgjengelige i det offisielle pakkelageret til Ubuntu 20.04 LTS.
Oppdater først APT-pakkelagerbufferen med følgende kommando:
$ sudo apt oppdatering
Å installere btrfs-progs og cryptsetup, kjør følgende kommando:
Trykk på for å bekrefte installasjonen Y og trykk deretter på <Tast inn>.
De btrfs-progs og cryptsetup pakker og deres avhengighet blir installert.
De btrfs-progs og kryptsetup pakker skal installeres på dette tidspunktet.
Installere nødvendige pakker på Fedora 33
For å kryptere lagringsenheter og formatere dem med Btrfs-filsystemet, må du ha btrfs-progs og kryptsetup pakker installert på Fedora 33 Workstation-maskinen din. Heldigvis er disse pakkene tilgjengelige i det offisielle pakkelageret til Fedora 33 Workstation.
Oppdater først DNF-pakkeoppbevaringsbufferen med følgende kommando:
$ sudo dnf makecache
Å installere btrfs-progs og kryptsetup, kjør følgende kommando:
Fedora 33 Workstation bruker Btrfs-filsystemet som standard. Så det er mer sannsynlig at du allerede har disse pakkene installert, som du kan se på skjermbildet nedenfor. Hvis de av en eller annen grunn ikke er installert, blir de installert.
Genererer en krypteringsnøkkel
Før du kan kryptere lagringsenhetene dine med kryptsetup, du må generere en tilfeldig nøkkel på 64 byte.
Du kan generere krypteringsnøkkelen din og lagre den i / etc / kryptnøkkel fil med følgende kommando:
$ sudo dd if = / dev / urandom of = / etc / cryptkey bs = 64 count = 1
En ny krypteringsnøkkel skal genereres og lagres i / etc / kryptnøkkel fil.
Krypteringsnøkkelfilen / etc / kryptnøkkel kan leses av alle som standard, som du kan se på skjermbildet nedenfor. Dette er en sikkerhetsrisiko. Vi vil bare ha rot bruker å kunne lese / skrive til / etc / cryptkey-fil.
For å la bare rotbrukeren lese / skrive til / etc / cryptkey-fil, endre filtillatelsene som følger:
Som du kan se, er bare rot brukeren har lese / skrive (rw) tillatelse til / etc / kryptnøkkel fil. Så ingen andre kan se hva som er i / etc / kryptnøkkel fil.
Kryptering av lagringsenhetene med dm-crypt
Nå som du har generert en krypteringsnøkkel, kan du kryptere lagringsenheten din. la oss si, sdb, med LUKS v2 (versjon 2) diskkrypteringsteknologi som følger:
$ sudo cryptsetup -v --type luks2 luksFormat / dev / sdb / etc / cryptkey
cryptsetup vil be deg om å bekrefte krypteringsoperasjonen.
MERK: Alle dataene på harddisken / SSD-en din skal fjernes. Så sørg for å flytte alle viktige data før du prøver å kryptere HDD / SSD.
Skriv inn for å bekrefte diskkryptering JA (med store bokstaver) og trykk
På dette punktet, lagringsenheten / dev / sdb skal krypteres med krypteringsnøkkelen / etc / kryptnøkkel.
Åpne krypterte lagringsenheter
Når du har kryptert en lagringsenhet med cryptsetup, du må åpne den med cryptsetup verktøy for å kunne bruke det.
Du kan åpne den krypterte lagringsenheten sdb og kartlegg den til datamaskinen din som en data lagringsenhet som følger:
$ sudo cryptsetup open --key-file = / etc / cryptkey --type luks2 / dev / sdb data
Nå vil den dekrypterte lagringsenheten være tilgjengelig i banen / dev / mapper / data. Du må opprette ønsket filsystem i / dev / mapper / dataenhet og monter / dev / mapper / dataenhet i stedet for / dev / sdb fra nå av.
Opprette Btrfs-filsystem på krypterte enheter:
For å lage et Btrfs-filsystem på den dekrypterte lagringsenheten / dev / mapper / data kjør følgende kommando med etikettdataene:
$ sudo mkfs.btrfs -L data / dev / mapper / data
Et Btrfs-filsystem skal opprettes på / dev / mapper / datalagringsenhet, som dekrypteres fra lagringsenheten / dev / sdb (kryptert med LUKS 2).
Montering av kryptert Btrfs-filsystem
Du kan også montere Btrfs-filsystemet du har opprettet tidligere.
La oss si at du vil montere Btrfs-filsystemet du har opprettet tidligere i /data katalog.
Så lag den /data katalog som følger:
$ sudo mkdir -v / data
For å montere Btrfs-filsystemet opprettet på / dev / mapper / datalagringsenhet i /data katalog, kjør følgende kommando:
Som du kan se, ble Btrfs-filsystemet opprettet på den krypterte lagringsenheten sdb er montert i /data katalog.
Montering automatisk kryptert Btrfs-filsystem ved oppstartstid
Du kan også montere det krypterte Btrfs-filsystemet ved oppstart.
For å montere det krypterte Btrfs-filsystemet ved oppstart, må du:
- dekryptere lagringsenheten / dev / sdb ved oppstart ved å bruke / etc / kryptnøkkel krypteringsnøkkelfil
- monter den dekrypterte lagringsenheten / dev / mapper / data til /data katalog
Finn først UUID av sdb kryptert lagringsenhet med følgende kommando:
$ sudo blkid / dev / sdb
Som du kan se, er UUID for sdb kryptert lagringsenhet er 1c66b0de-b2a3-4d28-81c5-81950434f972. Det vil være annerledes for deg. Så sørg for å endre den med din fra nå av.
Å automatisk dekryptere sdb lagringsenhet ved oppstartstid, må du legge til en oppføring for den på / etc / crypttab fil.
Åpne / etc / crypttab fil med nano tekstredigerer som følger:
$ sudo nano / etc / crypttab
Legg til følgende linje på slutten av / etc / crypttab filen hvis du bruker en harddisk.
Legg til følgende linje på slutten av / etc / crypttab filen hvis du bruker en SSD.
data UUID = 1c66b0de-b2a3-4d28-81c5-81950434f972 / etc / cryptkey luks, noearly, kastNår du er ferdig, trykk <Ctrl> + X, etterfulgt av Y, og <Tast inn> for å redde / etc / crypttab fil.
Finn nå UUID for dekryptert / dev / mapper / data lagringsenhet med følgende kommando:
Som du kan se, er UUID for / dev / mapper / data dekryptert lagringsenhet er dafd9d61-bdc9-446a-8b0c-aa209bfab98d. Det vil være annerledes for deg. Så sørg for å endre den med din fra nå av.
For å automatisk montere den dekrypterte lagringsenheten / dev / mapper / data i / data-katalogen ved oppstartstid, må du legge til en oppføring for den på / etc / fstab fil.
Åpne / etc / fstab-fil med nano tekstredigerer som følger:
$ sudo nano / etc / fstab
Nå legger du til følgende linje på slutten av / etc / fstab fil:
Når du er ferdig, trykk <Ctrl> + X, etterfulgt av Y, og <Tast inn> for å redde / etc / fstab fil.
Til slutt starter du datamaskinen på nytt for at endringene skal tre i kraft.
Den krypterte lagringsenheten sdb er dekryptert til en data lagringsenhet, og data lagringsenhet er montert i /data katalog.
Som du kan se, ble Btrfs-filsystemet, som ble opprettet på dekryptert / dev / mapper / data lagringsenhet er montert i /data katalog.
Konklusjon
I denne artikkelen har jeg vist deg hvordan du krypterer en lagringsenhet ved hjelp av LUKS 2-krypteringsteknologi med cryptsetup. Du lærer også hvordan du dekrypterer den krypterte lagringsenheten og formaterer den med Btrfs-filsystemet også. I tillegg til hvordan man automatisk dekrypterer den krypterte lagringsenheten og monterer den ved oppstart. Denne artikkelen skal hjelpe deg i gang med Btrfs-filsystemkryptering.