Commandline tips – Schijfencryptie
- February 10, 2021
- 0
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
- 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.
- 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
- 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.
- 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.
- 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.
- 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.