Voor backupdoeleinden heb ik een poosje geleden een goedkope USB-stick gekocht. Dat is ideaal, zodoende kan ik dagelijks een backup maken van m'n gegevens en dat op verschillende plaatsen dumpen, zoals op m'n werk of bij familie. Er zou een kernbom aan te pas moeten komen om m'n gegevens in één klap definitief te vernietigen. Dat is allemaal wel leuk en aardig, om een USB-stick met je mee te dragen, maar wat als je dat ding verliest? Dan liggen wel al je privézaken op straat, en dat is dan ook weer niet zo'n prettig gevoel. Gelukkig is daar een oplossing voor, en in Linux heet dat EncFS.
EncFS staat voor Encrypted File System, en is in staat om een map of een heel bestandssysteem te versleutelen. Door eenvoudigweg een wachtwoord in te voeren kan je bij je gegevens komen.
EncFS is beschikbaar voor de meeste Linux-distributies, vaak is het dus met één commando te installeren. Omdat EncFS gebouwd is op Fuse (Filesystem In Userspace), dient hiervoor ondersteuning ingeschakeld te zijn in de kernel. Het gaat om de optie CONFIG_FUSE_FS, en is te vinden in de sectie File Systems. Dit zal in de meeste standaardkernels wel aan staan, vaak als een module. Om de module te laden voer je het volgende commando uit:
Als dit zonder slag of stoot lukt, is het mogelijk om EncFS te gebruiken. Om te beginnen dient de USB-stick gemount te zijn (in dit voorbeeld /mnt/usb). Ook moet er een map zijn waar EncFS de onversleutelde versie van je gegevens doet weergeven. Laten we zeggen dat dit /mnt/encusb is. We gaan nu een versleuteld bestandssysteem aanmaken door het volgende commando in te voeren:
Dit is tevens hetzelfde commando om in de toekomst je versleutelde bestandssysteem te openen. Echter, bij de eerste keer ziet EncFS dat er nog geen versleuteld bestandssysteem is en stelt een vraag over hoe het aangemaakt moet worden:
Kies de volgende optie:
kies "x" voor de expert configuratie mode,
kies "p" voor de voorgeconfigureerde paranoia mode.
Iedere andere keuze of een lege regel kiest de standaard mode.
?>
Persoonlijk neig ik altijd om optie p te kiezen. Als je deze optie kiest hoef je alleen nog een wachtwoord in te voeren en je bent klaar. De volgende keer dat je encfs aanroept op dit bestandssysteem zal alleen om het wachtwoord gevraagd worden.
Als dit allemaal gelukt is, reflecteert /mnt/encusb de onversleutelde versie van het bestandssysteem. Je kan hier van lezen, schrijven en verwijderen zoals je altijd gewend bent. Alles wat je doet wordt in de achtergrond automatisch opgepikt door EncFS en zet de versleutelde versie van je gegevens in /mnt/usb. Dat is dus wat daadwerkelijk naar de USB-stick geschreven wordt, en niemand kan hier iets mee tenzij het wachtwoord bekend is.
Er zijn wel een aantal dingen waar je rekening mee moet houden. Bij het aanroepen van encfs moeten altijd absolute paden opgegeven worden, beginnend met /. Bovendien zijn permissies soms problematisch. Het kan zijn dat je geen toegang hebt om naar /mnt/encusb te schrijven. Het gebruiken van de optie --public zou dit op moeten lossen door als root uit te voeren:
Als laatste opmerking wil ik je er op wijzen dat als je de versleutelde gegevens kopieert naar een andere PC, dat je ook het bestand .encfs6.xml meeneemt. Dit bestand bevindt zich in de hoofdmap van het bestandssysteem (/mnt/usb/.encfs6.xml) en vormt de sleutel naar uw werkelijke gegevens. Zonder dit bestand zijn al je gegevens waardeloos geworden.