Jos pyörittää omaa sähköpostipalvelinta ulkomailla, saattaa olla fiksua salata sähköpostien sisältö siltä varalta, että palvelimen turvallisuus joskus vaarantuu. Erityisesti tämä pätee, jos kyseessä on IMAP-palvelin, joka säilyttää sähköpostit palvelimella ikuisesti.

Ubuntusta löytyy suhteellisen yksinkertainen tapa toteuttaa salaus hakemistokohtaisesti EncFS:llä. Se otetaan käyttöön asentamalla ensin tarvittava paketti:

apt-get install encfs

Tämän jälkeen luodaan kaksi hakemistoa: 1) salatun datan sisältävä hakemisto sekä 2) mountpoint, johon data ilmestyy selkokielisenä, kun salasana on annettu.

mkdir $HOME/kassakaappi.encrypted
mkdir $HOME/kassakaappi

EncFS otetaan käyttöön komentamalla:

encfs $HOME/kassakaappi.encrypted $HOME/kassakaappi

Tämän jälkeen EncFS pyytää valitsemaan salaustavan (enterin painallus riittää) ja kysyy sitten salasanaa, joka syötetään kahteen kertaan. Nyt hakemistoon "kassakaappi" voi alkaa tallentaa luottamuksellisia tiedostojaan. Samalla voi havainnoida, miten hakemistoon "kassakaappi.encrypted" syntyy satunnaisen nimisiä tiedostoja, joissa sama data on salattuna.

Jos selkokielisen hakemiston haluaa välillä poistaa käytöstä, käytetään komentoa fusermount -u:

fusermount -u $HOME/kassakaappi

Hakemiston saa jälleen takaisin käyttöön antamalla ylempänä mainitun encfs-komennon uudelleen. Tämä täytyy myös tehdä jokaisen palvelimen uudelleenkäynnistyksen jälkeen manuaalisesti, sillä EncFS kysyy aina salasanaa.

Salasanaa ei tietenkään pidä tallentaa palvelimelle, koska muuten koko salauksesta ei olisi mitään hyötyä. Muutenkin on syytä pitää mielessä, että salaus ei auta mitään, jos hyökkääjä pääsee palvelimelle sen ollessa käynnissä ja EncFS-hakemistojen ollessa mountattuna paikoilleen. Tämäntyyppinen suojaus estää lähinnä sen, ettei joku voi kaapata koko fyysistä palvelinta (tai siitä otettua backup imagea) mukaansa ja saada salaisia tietoja haltuunsa.

EncFS ja Maildir

Itse käytän sähköpostipalvelimellani Maildir-formaattia, mikä tarkoittaa, että sähköpostit tallennetaan käyttäjän kotihakemistossa olevaan Maildir-hakemistoon. Tämän ansiosta sähköpostit on aika helppo salata muuttamalla koko Maildir salatuksi EncFS-hakemistoksi.

Ensin täytyy vain pysäyttää IMAP-palvelin (tai -palvelimet), nimetä Maildir uudelleen väliaikaishakemistoksi, luoda aiemman esimerkin mukaan uudet hakemistot Maildir ja Maildir.encrypted, sekä käynnistää EncFS niihin. Nyt vanha Maildir-sisältö voidaan siirtää paikoilleen uuteen Maildir-hakemistoon sekä käynnistää IMAP-palvelimet uudelleen.

Ainoa juju tässä on se, että EncFS (tai tarkemmin sanotuna FUSE) mounttaa oletusarvoisesti hakemistot siten, että ainoastaan käyttäjä itse pääsee niihin käsiksi. Tämä estää sähköpostin toiminnan, sillä Maildir-hakemistoon pitää päästä kirjoittamaan root-käyttäjänä. Ongelma ratkaistaan lisäämällä ensin /etc/fuse.conf-tiedostoon rivi:

user_allow_other

Samalla varmistetaan, että /etc/fuse.conf on käyttäjien luettavissa (permissiot 644 / rw-r--r--).

Sitten lisätään encfs-komentoon FUSE-optio "-o allow_other":

encfs $HOME/Maildir.encrypted $HOME/Maildir -- -o allow_other

Näin Maildir on myös root-käyttäjän kirjoitettavissa ja sähköposti toimii normaaliin tapaan.

Itse en huomannut käyttää allow_other-optiota, kun kokeilin salausta ensimmäistä kertaa. Tämän seurauksena luulin jo kadottaneeni usean päivän ajalta sähköpostia. procmail on kuitenkin sen verran fiksu, että jos se ei onnistu kirjoittamaan sähköpostia Maildir-hakemistoon, niin se yrittää kirjoittaa myös käyttäjän kotihakemistoon. Sähköpostini jäivät siis talteen kotihakemistossa olevaan "new"-hakemistoon, josta ne oli helppo siirtää oikealle paikalleen Maildir/new-hakemistoon. Saman tempun voi joutua tekemään, jos unohtaa käynnistää EncFS:n palvelimen uudelleenkäynnistyksen jälkeen.