Ubuntu Sverige

Howtos/Krypterat virtuellt filsystem

Ubuntu Sverige

Hoppa till: navigering, sök
Krypterat virtuellt filsystem

Ibland har man filer på sin dator som man inte vill att andra ska kunna se. Tyvärr är det ganska lätt för någon som får tillgång till datorn att titta på dina filer. Man behöver bara starta datorn från en CD-skiva med t ex Knoppix eller Ubuntu för att kunna komma åt filerna på hårddisken. Det här är inte minst ett problem när man har en bärbardator som man bär med sig över allt. Vad händer om den blir stulen?

En lösning är att kryptera innehållet på datorn. Det finns några olika sätt att göra det på. Här ska vi se på en lösning där man skapar ett krypterat virtuellt filsystem som man skyddar med ett starkt lösenord.

En fördel är det du får en fil som är helt krypterad. Ingen kan se vad den innehåller, t ex hur många filer det finns och hur stora de är.

Det finns några nackdelar. För det första måste man med det här sättet använda ett konto som har administrativa rättigheter. I Ubuntu innebär det att man behöver kunna köra sudo. Man behöver nämligen montera filen med filsystemet. För det andra får filsystemet en fast storlek, så du måste bestämma dig från början hur stort det ska vara.

Jag har läst några introduktioner i ämnet, men efter en del meckande har jag kommit fram till något som fungerade på min Ubuntu 8.04.

Innehåll

[redigera] Installera paket för kryptering

Först behöver man installera en del paket för att kunna kryptera.

sudo apt-get install aespipe loop-aes-utils dm-crypt

Efter installationen kollar man om kärnmodulerna för kryptering är laddade.

lsmod | grep crypt

Resultatet bör bli något som liknar det här.

cryptoloop  4352 2
loop       18948 4 cryptoloop
dm_crypt   15364 0
dm_mod     62660 1 dm_crypt

För mig laddades inte modulerna efter en omstart. Om det händer skriver man så här.

sudo modprobe cryptoloop

[redigera] Skapa en fil

Nu är det dags att skapa en fil som ska innehålla vårt virtuella filsystem. Vi gör det med kommandot dd.

dd if=/dev/urandom of=filnamn.img bs=1M count=100

Vad är det som händer här? urandom innebär att hela filen skrivs över med slumptecken. Beroende på hur stor man gör filen, kan det här ta lite olika lång tid. filnam.img är det namn du ger filen. Den behöver inte ha ändelsen .img. Den behöver faktiskt inte ha någon ändelse alls! bs=1M talar om att filstorleken ska räknas i Megabyte och count=100 att det ska multipliceras med 100. Resultatet är en fil på 100MB.

[redigera] Anknyta till ett loopgränssnitt

Vi ska nu koppla filen till ett s k loopgränssnitt. Vi ska också passa på att kryptera och sätta ett starkt lösenord. Lösenordet ska vara på minst 20 tecken!

sudo losetup -e aes-256 /dev/loop0 filnamn.img
Lösenord: <ett_minst_20_tecken_långt_lösenord>

Loopgränssnittet i det här fallet är loop0. (Det är en nolla på slutet!) Men det går att ange någon siffra från 0 till 7.

[redigera] Ett filsystem i filen

Nu formaterar vi insidan av filen så att det får ett eget filsystem. Det kan vara viket som helst som Linux kan läsa, men vi kör här med ext2.

sudo mkfs.ext2 /dev/loop0

Sedan kommer en bekräftelse där man får mycket information om filsystemet.

[redigera] Montera loop-enheten

Så är det dags att montera loop-enheten. Man gör det på samma sätt som man monterar vilken annan enhet som helst.

Först måste man ha en mapp där man kan montera enheten.

sudo mkdir /mnt/filmapp

Sedan monterar man i den nyss skapade mappen.

sudo mount -t ext2 /dev/loop0 /mnt/filmapp

Det ska nu dyka upp en enhetsikon på skrivbordet. Genom att klicka på den kan man gå in i den med filbläddraren.

Det finns nog ett sätt att komma runt det här, men innehållet i den monterade enheten ägs av root. Så du kommer inte att kunna skriva där som vanlig användare. En kumplig men fungerande lösning är att skapa en eller flera mappar som ska ägas av dig. Där för går du in i mappen och skapar en sådan.

sudo cd /mnt/filmapp
sudo mkdir minmapp
sudo chown dittkonto:dittkonto minmapp

Nu ska det gå att komma in i mappen och skriva i den.

[redigera] Montera en existerande fil

När man väl har skapat filen gör man så här för att komma åt innehållet igen.

sudo modprobe cryptoloop
sudo losetup -e aes-256 /dev/loop0 filnamn.img
Ange lösenord:
sudo mount -t ext2 /dev/loop0 /mnt/filmapp
ls -lh /mnt/filmapp

[redigera] Avmontera

När man är klar och vill stänga, så måste man först avmontera filen. Därefter måste man också koppla loss den från loopgränssnittet.

sudo umount /mnt/filmapp
sudo losetup -d /dev/loop0

[redigera] Resurser

Jones, M. Tim. [Anatomy of the Linux file system]. ibm.com

Hölzer, Ralf. [Cryptoloop HOWTO]. Linux Documentation Project.

Wikipedia.org [Loop device].

OpenSourceProject.org [Hack 70. Use an Encrypted Filesystem to Protect Your Data].

Saout, Christophe. [dm-crypt: a device-mapper crypto target].

Saout.de [Welcome to the dm-crypt wiki].

Striegel, Jason. [Howto disk encryption in Linux].

Ruusu, Jari. [Loop-AES README].

Manning, Brian. [Linux Encryption].

Personliga verktyg