Kryptering av hårddiskpartitioner under linux med dm_crypt

Är du nyfiken på kryptering av hårddiskpartitioner och har funderat på men inte haft möjlighet att prova på det? Då kan den här introduktionen till dm_crypt vara någonting för sig.

Kryptering av hårddiskpartitioner är ett bra sätt att kryptera data på och det är extra viktigt i bärbara datorer. Om viktiga och känsliga data finns på disken bör de krypteras ifall de kan komma i orätta händer. dm_crypt är ett av de system som finns för detta.

Installera dm_crypt

För att kunna köra dm-crypt krävs följande: De ovanstående följer med de flesta linuxdistributioner och finns färdigpaketerade i dessa distributioner.

I Debian, Ubuntu och liknande system behöver du installera paketet cryptsetup eller se till att det är installerat. I RedHat, CentOS och Fedora behöver du installera paketet cryptsetup-luks eller se till att det finns installerat.

I Linuxkärnan finns dmcrypt och så finns programmet cryptsetup för att hantera krypteradefilsystem. Med den behöver man inte använda och förstå hur man använder dmsetup. Resten av denna guide går igenom hur man installerar och använder cryptsetup.

I många Linuxdistributioner ingår cryptsetup och kan installeras med paketsystemet för den distributionen. Om du redan har den med din Linuxdistribution kan du hoppa över nästa avsnitt och gå till Skapa ett krypterat filsystem. Om den inte ingår eller om du vill bygga och installera en nyare version kan du följa guiden nedan för hur du bygger och installerar cryptsetup.

Installera cryptsetup enligt följande:
Ladda hem källkoden till den senaste versionen. Packa upp tar-arkivet med (här är det version 2.3.3 som används):

tar xvfj cryptsetup-2.3.3.tar.bz2

Gå till katalogen som skapades och kompilera upp programmet med:

cd cryptsetup-2.3.3
./configure
make
Till ./configure kan du ange --prefix=/sökväg/till/där/den/ska/installeras. När du kör ./configure kommer den att tala om ifall någonting saknas för att kunna bygga cryptsetup.

Notera att om du har checkat ut från git:
git clone https://gitlab.com/cryptsetup/cryptsetup.git
Då måste du först köra:
./autogen.sh
Innan du kör ./configure och make.

Som användaren root installera med:
make install

Nu är cryptsetup installerat. För att kunna använda dm-crypt behöver några kärnmoduler laddas. Hur du laddar dem automatiskt vid boot varierar något beroende på vilken distribution som används. I Fedora kan de laddas in via /etc/modprobe.conf. Du behöver åtminstone ladda in modulerna dm_crypt och aes_x86_64.

Modulen dm_crypt används för att få krypteringsstödet. Modulen aes_x86_64 är ett exempel på kryptering.

Om datorn inte använder devfs eller udev måste katalogen /dev/mapper /respektive devicefilen /dev/mapper/control skapas. Skapa katalogen med mkdir /dev/mapper . Devicefilen kan skapas med hjälp av skriptet scripts/devmap_mknod.sh som följer med i device-mapper. Filen ska ha major number 10 och minor number 63. Se dokumentationen för device-mapper.

Skapa ett krypterat filsystem

För att skapa ett krypterat filsystem behövs en tom partition. För denna partition sätter man upp en mappning, t.ex. med cryptsetup, där mappningen sedan används för att skapa ett krypterat filsystem.

Om t.ex. /dev/sdb2 är en tom partition som ska krypteras går det att åstadkomma med hjälp av cryptsetup med följande kommandorad:

cryptsetup -y -v luksFormat /dev/sdb2
eller med:
cryptsetup -y -v --type luks2 luksFormat /dev/sdb2/

Man kan använda ren dm-crypt men det är bättre att använda LUKS. LUKS står för "the Linux Unified Key Setup". Med LUKS är det mindre risk för användarfel. luks2 är en nyare version av luks som innehåller en del utökningar.

Här kommer cryptsetup att skapa ett luksformatterat system på /dev/sdb2. Flaggan -v gör att cryptsetup visar mer information om vad som händer (verbose). Om man vill vara säker på att man skriver rätt passfras går det att ge flaggan -y till cryptsetup som då tvingar en att skriva passfrasen två gånger och den kontrollerar att det är samma passfras bägge gångerna.

Nästa steg är att skapa en mappning. Denna kommer att fråga efter lösenordet för den krypterade enheten och sätta upp mappningen /dev/mapper/data.
cryptsetup luksOpen /dev/sdb2 data

Det går nu att skapa ett filsystem på partitionen /dev/mapper/data :

mkfs.ext4 /dev/mapper/data

Här skapas ett ext4-filsystem på den aktuella partitionen. Det nya filsystemet kan nu monteras in i filsystemet. Om det t.ex. ska monteras under /usr/data blir det:

mount /dev/mapper/data /usr/data

Om det krypterade filsystemet inte längre behövs kan det avmonteras och mappningen kan tas bort:

umount /dev/mapper/data
cryptsetup remove data

Genom att ta bort mappningen går det inte längre att accessa filsystemet och de filer som finns där. Filsystemet är endast nåbart om mappningen återskapas med samma passfras igen.

Montera ett krypterat filsystem

För att kunna montera filsystemet igen måste mappningen skapas på nytt på samma sätt som tidigare och samma passfras som användes tidigare måste anges. som.

cryptsetup luksOpen /dev/sdb2 data

Nu kan filsystemet monteras:

mount /dev/mapper/data /usr/data





För länkar till dm-crypt och loop-aes se avsnittet krypterade filsystem på sidan Linuxlänkar.

Copyright © 2010-2020 Kjell Enblom.
This document is covered by the GNU Free Documentation License, Version 1.3

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".