Kryptering med dm-crypt 1

Skrevet af: Patrick Kerwood

I dag har man ofte bærbarer enheder med sig rundt, i form af USB pens eller Eksterne harddiske. For at beskytte følsomt data, er det en god idé at kryptere sin enhed, så hvis man taber eller får den stjålet, ikke risikere at andre får fingre i ens data.

I denne post vil jeg gennemgå processen til at kryptere en partition/enhed med dm-crypt. Metoden kan selvfølgelig bruges på en intern harddisk også.

Registrer din enhed

 
Inden du indsætter din enhed i din computer, kører du nedenstådende kommando.
fdisk -l

Indsæt der efter din enhed og kør samme kommando igen. Forskellen vil være din indsatte enhed og vil højst sandsynligt være nederst.

Nedenstående output er fra min egen.
Disk /dev/sdb: 2102 MB, 2102919168 bytes
65 heads, 62 sectors/track, 1019 cylinders, total 4107264 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x411f3ab8

I mit tilfælde, hedder enheden /dev/sdb

Sørg for at din enhed ikke er mounted. Kør følgende kommando for at få en list med dine mounts.

df -h

Som du kan se på nedenstående er min partition blevet auto-mounted da jeg indsatte den.
/dev/sdb1    2.0G     35M    1.8G    2%    /media/USB2GB

Unmount med følgende kommando.
umount /media/USB2GB

Klargøring af partitioner

 
Næste skridt i processen er partitionerne. Har du allerede din partition klar, kan du springe ned til næste sektion “Cryptsetup”.

Start med bruge programmet “badblocks” til at checke for beskadiget blocks på din enhed og skrive tilfældig data, for at sænke et eventuelt angreb på din kryptering. Dette er et valgfrit trin og er ikke nødvendigt, hvis ikke du gider at spilde tid på det. Ved min 2GB enhed tog det 10 min.
Heldigvis kommer der en progress-bar så man i det mindste kan se hvor langt den er.

Nedenstående vil slette alt på den valgte enhed! Sørg for at vælge den rigtige.

badblocks -c 10240 -s -w -t random -v /dev/sdb

/dev/sdb skal selvfølgelig være navnet på din egen enhed. Kig i manualen for badblocks for at se hvad de forskellige argumenter gør (man badblocks).

cfdisk
Du skal nu oprette din partition. Sprang du badblocks trinnet over, skal du første slette de gamle partitioner, hvis du har nogle. Åben programmet cfdisk for at slette og oprette partitioner.

cfdisk /dev/sdb

Du vil blive promptet med følgende. Tryk y for “yes”.
unknown partition table type
Do you wish to start with a zero table [y/N] ?

Dette åbner cfdisk, hvor du kan se alle partitioner på den given enhed.

Slet partitionerne ved at trykke “Delete” i menuen for neden. Det skal lige siges, at intet bliver skrevet til enheden før der bliver valgt “Write” i menuen. Du kan altid fortryde ved at quitte.

Opret en nye partition ved at vælge [ New ] -> [ Primary ].
Automatisk foreslår den alle MB der er tilgængelig på enheden.
Tryk enter og vælg [ Beginning ]. Partitionen er nu oprettet.
Du kan se i venstre side, at partitionen hedder /dev/sdb1

Vælg [ Write ] i menuen og skriv “yes”. Quit programmet.

Cryptsetup

Start med at installer cryptsetup
apt-get install cryptsetup

Når installationen er færdig, kører du nedenstående kommando. Skift /dev/sdb1 ud med navnet på din egen partition.
cryptsetup -v -y luksFormat /dev/sdb1

Output – Skriv YES, husk at det skal være med stort!
Skriv sit pass til krypteringen. Lav et ordenligt pass, ingen grund til at ødelægge det hele med et lorte pass. Og som alle andre steder i Linux kan du ikke noget, når skriver det.
WARNING!!! Possibly insecure memory. Are you root?
 
WARNING!
========
This will overwrite data on /dev/sdb1 irrevocably.
 
Are you sure? (Type uppercase yes):YES [ENTER]
Enter LUKS passphrase:
Verify passphrase:
Command successful.

Efterfølgene skal vi mounte den nye krypteret partition. Dette gøres med cryptsetup. Indtast efterfølgende dit password.
cryptsetup luksOpen /dev/sdb1 USB2GB

USB2GB er et virtuelt device navn og kan være hvad som helst. Det virtuelle device vil ligge sig i /dev/mapper/

Opret et filsystem på det virtuelle device.
mkfs.ext4 /dev/mapper/USB2GB

Opret en mappe og mount din nye krypteret enhed i den.
mkdir /media/USB2GBmount /dev/mapper/USB2GB /media/USB2GB

Jeg havde lidt problemer, i Kubuntu, med at mounte den manuelt, med ovenstående kommando. Hvis det også driller dig, så brug nedenstående kommando istedet. Den vil automatisk blive mounted i /media/din-endheds-UUID
udisks --mount /dev/mapper/USB2GB

Din enhed er nu færdig og klar til at skrive på.

For at unmounte det virtuelle device og lukke den ned.
umount /media/USB2GBcryptsetup luksClose /dev/mapper/USB2GB

Fremadrettet mounting

De fleste desktop Linux distro’er, vil mounte krypteret enheder automatisk og et password vindue vil poppe op. Så man undgår manuelt at mounte den via CLI. Det er meget straightforward.

Hvis ikke dette er tilfældet, fx. hvis det er et drev i en server, gentager jeg hurtigt fremgangs måden for at mounting og unmounting.

Find ud af hvad din enhed hedder.
fdisk -l

Åben enheden med cryptsetup.
cryptsetup luksOpen /dev/sdb1 NAVN

Mount det virtuelle device.
mount /dev/mapper/NAVN /sti/til/mappe

Unmount det virtuelle device.
umount /sti/til/mappe

Luk enheden med cryptsetup.
cryptsetup luksClose /dev/mapper/NAVN

Video Guide


10 maj 2013   | Alle · Programmer · Sikkerhed · Video Guide

One comment on “Kryptering med dm-crypt

  1. Pingback: Decrypt og mount script - LinuxBloggen.dk

Leave a Reply