Pandora’s encrypted filesystem | GELI

En zoals beloofd een korte update over de vorderingen met de Pandora. Ik ben niet ontiegelijk anaal ingesteld qua privacy, maar mijn paranoide-level is wel aanzienlijk gestegen nadat ik 3 jaar geleden aan de slag ben gegaan bij een bedrijf wat in de Infomatiebeveiliging zit 😉

Zo wilde ik eigenlijk wel dat de mail versleuteld opgeslagen wordt op de nieuwe machine. Mijn mail is mij heilig, en in die vorm heb ik gekozen voor GELI als encryptie-methode voor FreeBSD.

Ik maak gebruik van Dovecot als IMAP/POP3 server, omdat het ontiegelijk veel voordelen biedt:

  • Je hebt geen systeemgebruiker (aka: “echte gebruiker”) nodig voor authenticatie. Alle gebruikers staan in een bestandje, netjes komma-gescheiden.
  • Dovecot slaat zijn mail in 1 directory op. Daaronder vallen alle domeinnamen;
  • Alle mail wordt per domein opgeslagen. Mijn moeder heeft de domeinnaam mirakel.nl, en dus wordt de maildirectory voor mirakel.nl
    /var/mail/vhosts/mirakel.nl/gebruikersnaam.

Dat gezegd hebbende wil ik dus de directory /var/mail encrypten. Hiervoor heb ik meteen een slag gemaakt qua partities.

macbookpro-00264a0628ac:~ diederik$ ssh diederik@vpn
Last login: Wed Jan 12 16:41:29 2011 from 10.8.0.6
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
 The Regents of the University of California.  All rights reserved.

FreeBSD 8.1-RELEASE (GENERIC) #0: Mon Jul 19 02:55:53 UTC 2010
[diederik@passionata ~]$ df -h
Filesystem       Size    Used   Avail Capacity  Mounted on
/dev/twed0s1a    3.9G    1.7G    1.9G    46%    /
devfs            1.0K    1.0K      0B   100%    /dev
/dev/twed0s1g     96G     26G     63G    29%    /home
/dev/twed0s1d    1.9G     12M    1.8G     1%    /tmp
/dev/twed0s1e     19G    4.5G     13G    25%    /usr
/dev/twed0s1f     19G     14G    4.3G    76%    /var

Je ziet dat alle mail in /var terecht komt. Echter: MySQL draait in /var/db/mysql, en is al wat lastiger te trimmen.

De nieuwe partitietabel wordt daarom de volgende:

pandora# df -h
Filesystem         Size    Used   Avail Capacity  Mounted on
/dev/da0s1a         19G    171M     18G     1%    /
devfs              1.0K    1.0K      0B   100%    /dev
/dev/da0s1h         97G     26K     89G     0%    /home
/dev/da0s1e        989M     12K    910M     0%    /tmp
/dev/da0s1f         19G    151M     18G     1%    /usr
/dev/da0s1d         48G     88M     44G     0%    /var
/dev/da0s1g     49G    8.0K     45G     0%    /var/mail

Ik heb gebruik gemaakt van deze website om de /var/mail partitie te encrypten. Helemaal correct is hij niet, vooral vanwege het uitgaan van een andere partitiestructuur. Ik ben in ieder geval tevreden.

De genomen stappen:

  • Ik heb FreeBSD “vanilla” geïnstalleerd. Ik heb dit op de standard (niet expert) wijze gedaan, maar wel met de partitietabel zoals boven.
  • Ik heb de Geli-module toegevoegd aan /boot/loader.conf:
    geom_eli_load="YES"
  • Ik heb een keybestand aangemaakt met random data. Dit heb ik opgeslagen in /etc/geli/:
    mkdir /etc/geli
    dd if=/dev/random of=/etc/geli/server.key bs=64 count=1
  • Vervolgens heb ik /var/mail unmounted:
    umount /dev/da0s1g
  • En /dev/da0s1g gecrypt:
    geli init -l 256 -s 4096 -K /etc/geli/server.key /dev/da0s1g
  • Je kan de geencrypte partitie mounten met:
    geli attach -k /etc/geli/server.key /dev/da0s1g
  • En vervolgens formatteren met een FreeBSD-filesystem:
    newfs /dev/da0s1g.eli

Dan de harige delen:

Op dit moment heb je een werkende – geencrypte – partitie. Het nadeel hier is dat hij gemount wordt bij het booten, maar dan nog niet vrijgegeven is. Een oplossing kan zijn dat je dit doet bij het booten. Hiervoor moet je de /boot/loader.conf nog aanpassen:

geom_eli_load="YES"
geli_da0s1g_keyfile0_type="da0s1f:geli_keyfile0"
geli_da0s1g_keyfile0_name="/etc/geli/server.key"

En de /etc/rc.conf:

geli_devices="da0s1g"
geli_da0s1g_flags="-k /etc/geli/server.key"
geli_da0s1g_autodetach="NO"

Hierbij vraagt FreeBSD om je password nadat de kernel geladen is. Het nadeel: je hebt nog geen remote SSH-Shell op dit moment. Ik ben zelf nog aan het nadenken of ik dit wil gaan doen met iLO (van HP), of dat ik handmatig de partitie mount (waardoor – vermoedelijk – mail verloren kan gaan na een reboot). Ik ga dit meenemen in mijn keuze van provider.

Dit bericht is geplaatst in Daily stuff met de tags , , , , . Bookmark de permalink.