Een partitie van een USB-stick versleutelen

Op deze pagina:

Een hele USB-sick versleutelen maakt deze geheel onleesbaar, je kunt dus alleen partities versleutelen. Deze partities moet je eerst aanmaken. Om te zien welke partities er zijn kun je de volgende opdracht gebruiken:


ls /dev/sd*

Als je deze opdracht een keer uitvoert zonder dat de USB-stick is gemount en een keer met de USB-stick wel gemount, dan kun je aan de verschillen in de uitvoer van deze opdracht zien wat de partities op de USB-stick zijn.

Als cryptsetup nog niet op je computer staat, dan moet je deze eerst installeren:


apt-get install cryptsetup

Als voorbeeld hier een USB-stick sdc met partitie sdc1.

Om de partitie te kunnen versleutelen, mag deze niet meer gemount zijn. Dit kun je controleren via:


mount | grep sdc1

Mocht de partitie nog gemount zijn, dan kan deze ge-unmount worden via:


umount *hier het pad dat met mount | grep sdc1 gevonden werd*

De partitie (als voorbeeld sdc1) versleutelen doe je dan met:


cryptsetup --verbose --verify-passphrase -s 512 luksFormat /dev/sdc1

Er volgt een waarschuwing, je moet YES intypen en de passphrase voor de te versleutelen partitie (2x, want verify is als parameter toegevoegd).

Nadat dit voltooid is, moet de partitie gemapt worden zodat deze aangekoppeld kan worden:


cryptsetup luksOpen /dev/sdc1 *mijnpartitie*

Hiermee wordt de versleutelde partitie gemapt naar mijnpartitie. De naam mijnpartitie is iets wat je zelf kiest, kan dus van alles zijn. Met onderstaande opdracht kun je controleren of dit gelukt is:


ls /dev/mapper

De uitvoer van dit commando geeft je dan control (deze is er altijd) en mijnpartitie.

Nu kun je de versleutelde partitie gaan formatteren:


mkfs.ext4 /dev/mapper/mijnpartitie

Als je nu in de grafische omgeving van je desktop in de bestandsmanager deze partitie probeert aan te koppelen, dan wordt er gevraagd om de passphrase.

Automisch aankoppelen via een keyfile

Elke keer een wachtwoord voor de usb in moeten typen kan onpraktisch zijn. Een keyfile op de computer plaatsen kan er voor zorgen dat de usb automatisch aangekoppeld kan worden. Dit kan alleen op de computer waar de keyfile staat. Op andere computers moet nog steeds eerst het wachtwoord worden ingetypt.

Om ervoor te zorgen dat alleen de root-gebruiker bij de keyfile kan, maak je de keyfile aan in /root. Het eerste wat je nu moet doen is root worden, dat kan via sudo (tijdelijk) of su of sudo su, afhankelijk van de instellingen hiervoor in je systeem.

Het aanmaken van de keyfile kan via de volgende opdracht:


dd if=/dev/urandom of=/root/usb1.key bs=1024 count=4

Na het aanmanken van de keyfile moet je deze toevoegen, dat kan alleen als je het wachtwoord weet (anders zou het versleutelen niet veilig zijn).


cryptsetup luksAddKey /dev/sdc1 /root/usb1.key

Het wachtwoord wordt nu gevraagd.

Het mappen ga je doen via de luksUUID, deze moet je eerst opvragen:


cryptsetup luksUUID /dev/sdc1

De luksUUID kopiëer je.

Nu crypttab aanvullen, usb1 is de naam die gekozen is voor de usb, deze is vrij te kiezen. Het bestand /etc/crypttab moet aangevuld worden (als root):


usb1 /dev/disk/bu-uuid/*luksUUID* /root/usb.key luks

Nu rebooten of de volgende opdracht gebruiken:


cryptdisks_start usb1

Een koppelmap aanmaken in je home directory en deze immutable maken:


mkdir usb1
chattr +i usb1

Het bestand /etc/fstab aanpassen (als root):


/dev/mapper/usb1 /home/debian/usb1 ext4 defailts,nofail,rw,user,x-systemd.device-timeout=5 0 0

De nofail is nodig om te voorkomen dat het systeem hangt als de usb niet wordt gevonden.

De usb nu met de hand aankoppelen:


mount -a

 

Verwante artikelen