De meeste Linux-distributies bieden tijdens installatie de optie aan om je data te versleutelen. Wil je nadien een externe harde schijf of usb-stick versleutelen? Geen probleem: in slechts enkele stappen maak je een versleuteld bestandssysteem aan vanaf de commandline!

Filip Vervloesem

  1. Cryptsetup

Linux biedt uiteenlopende methodes aan om data te versleutelen. De eenvoudigste optie om volledige schijven te versleutelen, is een combinatie van dm-crypt en LUKS. Je hoeft je niet echt te bekommeren om de onderliggende technologieën: dat doet cryptsetup wel voor jou. Cryptsetup is een gebruiksvriendelijke tool om versleutelde block devices te beheren. De tool maakt virtuele apparaten aan onder /dev/mapper om jouw versleutelde data te benaderen. Mocht het cryptsetup-commando nog niet beschikbaar zijn op jouw systeem, installeer dan eerst het gelijknamige pakket.

  1. Apparaat

Zoek om te beginnen de device name op van jouw externe schijf of usb-stick. De eenvoudigste methode is door tweemaal het lsblk-commando uit te voeren: éénmaal vóórdat je de schijf aankoppelt en tweede maal erna. Je ziet meteen welk block device erbij gekomen is, bijvoorbeeld /dev/sdd. Dat is dan jouw externe schijf. Verzeker jezelf ervan dat de schijf geen belangrijke data meer bevat en wis de bestaande partitietabel:

$ sudo wipefs -a /dev/sdd
  1. Container

Vervolgens maak je een versleutelde container aan op het gekozen apparaat:

$ sudo cryptsetup luksFormat /dev/sdd

Kies nu een veilige passphrase: bij voorkeur minstens 12 karakters lang en bestaande uit een combinatie van hoofdletters, kleine letters, cijfers en speciale tekens. Gebruik de pwgen-tool om zo’n passphrase te genereren als je dat zelf te lastig vindt:

$ pwgen -y 12

Daarna open je de versleutelde container door de passphrase in te voeren en een naam te kiezen voor het virtuele device (hier “secretdocs”):

$ sudo cryptsetup open /dev/sdd secretdocs

Cryptsetup maakt nu het virtuele device /dev/mapper/secretdocs aan. Via dat device krijg je toegang tot jouw versleutelde data, maar momenteel is de container nog leeg. Je moet dus eerst nog een bestandssysteem aanmaken in die container.

  1. Bestandssysteem

Op dit ogenblik is het grootste deel van de schijf nog niet overschreven: wipefs heeft enkel de partitietabel verwijderd. De oude, niet-versleutelde data kan dus nog steeds hersteld worden. Om dat te vermijden, overschrijf je de container eerst met willekeurige data:

$ sudo shred -n 1 -v /dev/mapper/secretdocs

Zodra dat gedaan is, maak je een bestandssysteem aan binnen de container:

$ sudo mkfs.ext4 /dev/mapper/secretdocs

En mount je dat op een map naar keuze:

$ mkdir ~/Versleuteld
$ sudo mount /dev/mapper/secretdocs ~/Versleuteld

Via de map ~/Versleuteld benader je al jouw versleutelde bestanden net alsof ze niet versleuteld zijn. Je hoeft dus geen afzonderlijke bestanden of mappen te versleutelen om ze te kunnen gebruiken.

  1. Afsluiten

Ben je klaar met jouw versleutelde data? Dan hoef je slechts één cryptsetup-commando toe te voegen aan de gebruikelijke commando’s om een extern opslagmedium te ontkoppelen:

$ sudo umount ~/Versleuteld
$ sudo cryptsetup close secretdocs
$ sudo eject /dev/sdd

Cryptsetup is dus erg gemakkelijk te gebruiken. Je hoeft enkel de container te openen vóór het mounten en te sluiten na het unmounten: voor de rest verandert er niets.

  1. Backups

We sluiten nog even af met een waarschuwing: verlies je de passphrase van de container, dan is jouw data reddeloos verloren! Bedenk dus goed hoe je back-ups wilt maken van de versleutelde data. Bewaar je de back-up op een relatief veilige plaats (zoals thuis), dan hoef je die niet per se te versleutelen. Je kan dan altijd terugvallen op de onversleutelde versie. Bewaar je de back-ups in de cloud, kies dan een andere encryptie-oplossing met een andere passphrase. Dat verkleint de kans op dataverlies door een technisch probleem.