Krypteringsfunktionen för Btrfs-filsystemnivå är fortfarande inte tillgänglig. Men du kan använda ett tredjeparts krypteringsverktyg som dm-crypt för att kryptera hela lagringsenheterna i ditt Btrfs-filsystem.
I den här artikeln ska jag visa dig hur du krypterar lagringsenheterna som läggs till i ett Btrfs-filsystem med dm-crypt. Så, låt oss komma igång.
Förkortningar
- LUKS - Linux Unified Key Setup
- Hårddisk - Hårddisk
- SSD - Solid State Drive
Förutsättningar
För att följa den här artikeln:
- Du måste köra antingen Fedora 33 Workstation eller Ubuntu 20.04 LTS Linux-distribution på din dator.
- Du måste ha en gratis hårddisk / SSD på din dator.
Som du kan se har jag en hårddisk sdb på min Ubuntu 20.04 LTS-maskin. Jag kommer att kryptera den och formatera den med Btrfs-filsystemet.
$ sudo lsblk -e7
Installera nödvändiga paket på Ubuntu 20.04 LTS
För att kryptera lagringsenheter och formatera dem med Btrfs-filsystemet måste du ha btrfs-progs och kryptsetup paket installerade på din Ubuntu 20.04 LTS-maskin. Lyckligtvis finns dessa paket tillgängliga i det officiella paketförvaret för Ubuntu 20.04 LTS.
Uppdatera först APT-paketets förvarscache med följande kommando:
$ sudo apt uppdatering
Att installera btrfs-progs och kryptsetup, kör följande kommando:
För att bekräfta installationen, tryck på Y och tryck sedan på <Stiga på>.
De btrfs-progs och kryptsetup paket och deras beroenden installeras.
De btrfs-progs och kryptsetup paket bör installeras vid denna tidpunkt.
Installera nödvändiga paket på Fedora 33
För att kryptera lagringsenheter och formatera dem med Btrfs-filsystemet måste du ha btrfs-progs och kryptsetup paket installerade på din Fedora 33 Workstation-maskin. Lyckligtvis finns dessa paket tillgängliga i det officiella paketförvaret för Fedora 33 Workstation.
Uppdatera först DNF-paketförvarets cache med följande kommando:
$ sudo dnf makecache
Att installera btrfs-progs och kryptsetup, kör följande kommando:
Fedora 33 Workstation använder Btrfs-filsystemet som standard. Så det är mer troligt att du redan har dessa paket installerade, som du kan se på skärmdumpen nedan. Om de av någon anledning inte är installerade kommer de att installeras.
Generera en krypteringsnyckel
Innan du kan kryptera dina lagringsenheter med kryptsetup, du måste generera en 64 byte lång slumpmässig nyckel.
Du kan skapa din krypteringsnyckel och lagra den i / etc / cryptkey fil med följande kommando:
$ sudo dd if = / dev / urandom of = / etc / cryptkey bs = 64 count = 1
En ny krypteringsnyckel ska genereras och lagras i / etc / cryptkey fil.
Krypteringsnyckelfilen / etc / cryptkey kan läsas av alla som standard, som du kan se på skärmdumpen nedan. Detta är en säkerhetsrisk. Vi vill bara ha rot användare att kunna läsa / skriva till / etc / cryptkey-fil.
För att endast låta rotanvändaren läsa / skriva till / etc / cryptkey-fil, ändra filbehörigheterna enligt följande:
Som du kan se, bara rot användaren har läs / skriv (rw) behörighet till / etc / cryptkey fil. Så ingen annan kan se vad som finns i / etc / cryptkey fil.
Kryptera lagringsenheterna med dm-crypt
Nu när du har skapat en krypteringsnyckel kan du kryptera din lagringsenhet. låt oss säga, sdb, med LUKS v2 (version 2) diskkrypteringsteknik enligt följande:
$ sudo cryptsetup -v --typ luks2 luksFormat / dev / sdb / etc / cryptkey
kryptsetup kommer att uppmana dig att bekräfta krypteringen.
NOTERA: All data på din hårddisk / SSD ska tas bort. Så se till att flytta alla dina viktiga data innan du försöker kryptera din hårddisk / SSD.
För att bekräfta skivkryptering, skriv in JA (i versaler) och tryck på
Vid denna punkt lagringsenheten / dev / sdb ska krypteras med krypteringsnyckeln / etc / cryptkey.
Öppna krypterade lagringsenheter
När du har krypterat en lagringsenhet med kryptsetup, du måste öppna den med kryptsetup verktyg för att kunna använda det.
Du kan öppna den krypterade lagringsenheten sdb och mappa den till din dator som en data lagringsenhet enligt följande:
$ sudo cryptsetup open --key-file = / etc / cryptkey --typ luks2 / dev / sdb data
Nu kommer den dekrypterade lagringsenheten att finnas tillgänglig i sökvägen / dev / mapper / data. Du måste skapa önskat filsystem i / dev / mapper / data-enhet och montera / dev / mapper / data-enhet istället för / dev / sdb från och med nu.
Skapa Btrfs-filsystem på krypterade enheter:
Att skapa ett Btrfs-filsystem på den dekrypterade lagringsenheten / dev / mapper / data med etikettdata kör du följande kommando:
$ sudo mkfs.btrfs -L data / dev / mapper / data
Ett Btrfs-filsystem ska skapas på / dev / mapper / datalagringsenhet, som dekrypteras från lagringsenheten / dev / sdb (krypterad med LUKS 2).
Montering av krypterat Btrfs-filsystem
Du kan också montera Btrfs-filsystemet du skapat tidigare.
Låt oss säga att du vill montera Btrfs-filsystemet du skapade tidigare i /data katalog.
Så, skapa /data katalog enligt följande:
$ sudo mkdir -v / data
För att montera Btrfs-filsystemet som skapats på / dev / mapper / datalagringsenhet i /data katalog, kör följande kommando:
Som du kan se skapade Btrfs-filsystemet på den krypterade lagringsenheten sdb är monterad i /data katalog.
Montera automatiskt krypterat Btrfs-filsystem vid starttid
Du kan också montera det krypterade Btrfs-filsystemet vid start.
För att montera det krypterade Btrfs-filsystemet vid starttid måste du:
- dekryptera lagringsenheten / dev / sdb vid starttid med / etc / cryptkey krypteringsnyckelfil
- montera den dekrypterade lagringsenheten / dev / mapper / data till /data katalog
Hitta först UUID för sdb krypterad lagringsenhet med följande kommando:
$ sudo blkid / dev / sdb
Som du kan se UUID för sdb krypterad lagringsenhet är 1c66b0de-b2a3-4d28-81c5-81950434f972. Det kommer att vara annorlunda för dig. Så se till att ändra den med din från och med nu.
För att automatiskt dekryptera sdb lagringsenhet vid starttid, måste du lägga till en post för den på / etc / crypttab fil.
Öppna / etc / crypttab fil med nano textredigerare enligt följande:
$ sudo nano / etc / crypttab
Lägg till följande rad i slutet av / etc / crypttab fil om du använder en hårddisk.
Lägg till följande rad i slutet av / etc / crypttab fil om du använder en SSD.
data UUID = 1c66b0de-b2a3-4d28-81c5-81950434f972 / etc / cryptkey luks, noearly, kasseraNär du är klar trycker du på <Ctrl> + X, följd av Y, och <Stiga på> för att spara / etc / crypttab fil.
Hitta nu UUID för den dekrypterade / dev / mapper / data lagringsenhet med följande kommando:
Som du kan se UUID för / dev / mapper / data dekrypterad lagringsenhet är dafd9d61-bdc9-446a-8b0c-aa209bfab98d. Det kommer att vara annorlunda för dig. Så se till att ändra den med din från och med nu.
För att automatiskt montera den dekrypterade lagringsenheten / dev / mapper / data i / data-katalogen vid starttid måste du lägga till en post för den på / etc / fstab fil.
Öppna / etc / fstab-fil med nano textredigerare enligt följande:
$ sudo nano / etc / fstab
Lägg nu till följande rad i slutet av / etc / fstab fil:
När du är klar trycker du på <Ctrl> + X, följd av Y, och <Stiga på> för att spara / etc / fstab fil.
Slutligen starta om datorn för att ändringarna ska träda i kraft.
Den krypterade lagringsenheten sdb dekrypteras till en data lagringsenhet och data lagringsenhet är monterad i /data katalog.
Som du kan se, Btrfs-filsystemet, som skapades på den dekrypterade / dev / mapper / data lagringsenhet är monterad i /data katalog.
Slutsats
I den här artikeln har jag visat dig hur du krypterar en lagringsenhet med hjälp av LUKS 2-krypteringstekniken med cryptsetup. Du lär dig också hur du dekrypterar den krypterade lagringsenheten och formaterar den med Btrfs-filsystemet också. Samt hur man automatiskt dekrypterar den krypterade lagringsenheten och monterar den vid starttid. Den här artikeln ska hjälpa dig att komma igång med Btrfs-filsystemkryptering.