Krypterede filsystemer i OpenBSD

Af Lars Sommer, lasg@lasg.dk, 31-07-2004

OpenBSD understøtter krypterede virtuelle filsystemer godt. Det er let at sætte
op, og jeg vil her skrive kortfattet hvordan.
Jeg må lige minde dig om at brug af denne vejledning er helt dit eget ansvar.
Ligeledes er tabt data på grund af denne vejledning selvfølgelig også dit
eget ansvar.

Først et par vigtige informationer om emnet:
-> Filsystemet bliver virtuelt. Det vil sige at det reelt er en stor fil du har
på din harddisk, der indeholder filsystemet, og som du så monterer et sted.
-> Dit filsystem bliver krypteret med blowfish-algoritmen.
-> Jeg mener der er et størrelsesmaksimum på 8,2GB for virtuelle filsystemer på
grund af noget i mkfs. Kontakt mig gerne hvis du kan af- eller bekræfte det.
-> Du kan risikere at skade det krypterede filsystem ved uregelmæssig lukning
af maskinen, og fsck kan ikke reparere virtuelle filsystemer. Det er ikke
nogen enorm fare, da der normalt ikke sker de store skader, men for en
sikkerheds skyld kan du f.eks. sætte din box til automatisk at tage en backup
af filsystemet før det mountes, og så f.eks. hver anden time derefter.
-> Et krypteret filsystem indeholder ingen HMAC (læs her hvad det er:
http://www.faqs.org/rfcs/rfc2104.html). Hvis du er superparanoid, kan du evt.
selv fikse det, med Digest::HMAC_MD5 eller Digest::HMAC_SHA1, som begge er i
OpenBSD’s port p5-Digest-MD5. Kontakt mig gerne hvis du får lavet noget sådant
der virker.

Nå, til sagen; først skal du sikre dig at din kerne understøtter virtuelle
enheder. Hvis du har GENERIC-kernen, (det har du hvis du ikke har lavet en ny
og underlig kerne selv), er alting fint. GENERIC understøtter op til 4
virtuelle enheder. Hvis du selv fikser kerner, skal du huske denne linje i
din kernekonfiguration:
pseudo-device vnd n
hvor n er et tal, der bestemmer hvor mange virtuelle enheder du kan lave.
(I GENERIC er n så sat til 4).

Så kan du starte med at oprette en fil du vil opbevare dit filsystem i. Det gør
du med dd, og for f.eks. at lave en fil på 100MB, skriver du:
dd if=/dev/zero of=/home/lasg/kryptfs bs=1024 count=102400
Hvor du self. selv kan ændre som du har lyst på stedet den skal ligge,
og størrelserne.

Lav en mappe du vil have dit filsystem skal monteres i, f.eks.
mkdir /mnt/kryptfs

Så skal du bruge vnconfig til at associere et svnd (en secure udgave af vnc
sjovt nok). Når du associerer til sådan en sikker enhed, skal du indtaste den
adgangskode du senere vil bruge hver gang du monterer filsystemet.
/usr/sbin/vnconfig -ck -v /dev/svnd0c /home/lasg/kryptfs
hvor du self. retter stien til den fil der skal indeholde filsystemet til.

Nu kan du bruge OpenBSD’s disklabel til at konfigurere /dev/svnd0c som du vil.
Det letteste er at lade være med at gøre noget somhelst, og bare lade dit
filsystem være hele størrelsen, og derfor hedde /dev/svnd0c (c er som bekendt
hele partitionen/slicen).

Så kan du bruge newfs for at lave selve filsystemet på de partitioner du har
oprettet med disklabel. Hvis du ikke brugte disklabel, så self. bare på
c-partitionen, som her:
/sbin/newfs /dev/rsvnd0c

Så er dit krypterede filsystem lavet, og klar til at blive monteret.
mount /dev/svnd0c /mnt/kryptfs

Nu kan du så arbejde på filsystemet helt som var det et alm. system. Alle de
data du gemmer på filsystemet bliver dog krypterede.

Når har afmonteret filsystemet igen, bør du også afassociere svnd’et fra din
filsystemsfil med:
/usr/sbin/vnconfig -v -u /dev/svnd0c

Før du så monterer filsystemet igen, skal du så self. associere svnd’et med
filsystemsfilen igen. Du kan evt. lave nogle smarte shellscripts der gør noget
af alt det for dig. Eller bruge nogle af mine, som bør være at finde i
nærheden af denne vejledning.

Du er velkommen til at kontakte mig hvis du har spørgsmål ang. denne vejledning
eller emnet den behandler, men jeg lover ikke at kunne hjælpe dig.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *