Howtos/Krypterat virtuellt filsystem
Ubuntu Sverige
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].


