Een encrypted drive maken met Luks

By Eelco Jellesma, 27 december 2014

N.B. Als je een grote harde schijf wilt versleutelen, zoek dan een pc uit die je dagen niet hoeft te gebruiken! De dd opdracht in deze procedure kan bij een stick van 500 GB twee dagen duren.

Op het internet kwam ik diverse handleidingen tegen over het versleutelen (encrypten) van een harde schijf. Sommige vond ik onduidelijk, bij andere ontbrak er een deel van de handleiding zodat geen van allen mij echter bij een voltooid eindproduct, een versleutelde schijf brachten.

In de tabel hieronder vind je links de beschrijving van de noodzakelijke commando´s en rechts de gebruikte commando´s. De rode tekst bevat variabelen, die per pc, harddisk of usb-stick veranderen. Je moet hier je eigen variabelen invoeren. De kleinere italic geschreven tekst bevat de resultaten in de terminal, wanneer je een commando hebt uitgevoerd. Zo kun je zien of je op de goede weg bent. Ik heb hier een USB-stick versleuteld, maar hetzelfde principe kan ook op een partitie toegepast worden. Je kunt ook tijdens het installeren van Linux kiezen voor het encrypten van je hele systeem – zie de linux mint tutorial in de bronnen onderaan.

Beschrijving en Uitvoer

Commandos

Installeer de benodigde software

sudo apt-get install cryptsetup

Open Gparted via systeem/beheer

Kijk hoe je USB-stick of Harde schijf heet. (bij mij was dit sdb)

Unmount deze USB-stick dan via je rechtermuisknop in GParted. Maak een nieuwe (msdos) partitietabel aan voor deze USB-stick en formatteer deze als een ext4. (of kies je partitie)

n.b. uitwerpen via je rechtermuis is niet hetzelfde als unmounten. Doe dit via het commando sudo umount xxx (de naam van je schijf, bij mij sdb) of via GParted.

luks1

Open je terminal (CTRL+ALT+T)

Configureer de USB-stick met :

Dit verwijdert oude data en formatteert je schijf. Je moet YES intypen in hoofdletters. Dit wist alles van de aangegeven schijf!

Voer een wachtwoord in (Passphrase)Dit is het wachtwoord dat je straks nodig hebt om je schijf te lezen. Hoewel er passphrase staat, moet dit een gewoon wachtwoord zijn. Geen zinnen met spaties intikken dus!

sudo cryptsetup -y -v luksFormat /dev/sdb

Reserveer geheugen (met mapping)

sudo cryptsetup luksOpen /dev/sdb backup2

Controleer of dit goed is uitgevoerd.

Ik krijg te zien:

lrwxrwxrwx 1 root root 7 dec 9 14:28 /dev/mapper/backup2 -> ../dm-0

ls -l /dev/mapper/backup2

Controleer de status

/dev/mapper/backup2 is active.
type: LUKS1
cipher: aes-xts-plain64
keysize: 256 bits
device: /dev/sdb
offset: 4096 sectors
size: 62648320 sectors
mode: read/write
Command successful.

sudo cryptsetup -v status backup2

Plaats nu de Luks headers met:
(de functies & structuur van je bestanden)
LUKS header information for /dev/sdb
Version: 1
Cipher name: aes
Cipher mode: xts-plain64
Hash spec: sha1
Payload offset: 4096
MK bits: 256
MK digest: 0c 83 d9 ad ed 74 47 4c c8 02 d7 74 f4 a3 01 0d 51 f0 4b 4c
MK salt: 54 32 64 5d 31 74 a3 b8 5b f7 54 af 29 cd 84 15
d2 f1 02 7d 58 25 a5 49 e6 c8 8e 21 7f 51 5c 15
MK iterations: 26750
UUID: 2eb6b3f4-243f-4bf3-9ec1-f94d1af5cdc1
Key Slot 0: ENABLED
Iterations: 108842
Salt: 84 6f 7d 3c 38 14 55 db ec 70 0b db 7c c0 40 ce
08 45 d6 26 73 7d 7b fd 04 af 26 b0 09 35 25 e2
Key material offset: 8
AF stripes: 4000
Key Slot 1: DISABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

sudo cryptsetup luksDump /dev/sdb

Alle oude informatie ga je nu met willekeurige gegevens overschrijven en zo met het dd commando onherstelbaar wissen.

Het terugzetten van verwijderde bestanden wordt hiermee onmogelijk.

Bij mij duurde 500GB …..46 uur en een 4 GB usb schijf 25 minuten.

sudo dd if=/dev/urandom of=/dev/mapper/backup2

Maak het bestandssysteem aan.

Hier ext4, maar ook vfat is bijvoorbeeld mogelijk, de procedure verandert dan en is hier niet opgenomen.Ik kreeg dan diverse foutmeldingen.
[sudo] password for eelco:
mke2fs 1.42.9 (4-Feb-2014)
Bestandssysteemlabel=
Soort besturingssysteem: Linux
Blokgrootte=4096 (log=2)
Fragmentgrootte=4096 (log=2)
‘stride’=0 blokken, ‘stripe’-breedte=0 blokken
1957888 inodes, 7831040 blokken
391552 blokken (5.00%) gereserveerd voor
systeembeheer
Eerste gegevensblok=0
Maximum aantal bestandssysteemblokken=0
239 blokgroepen
32768 blokken per groep, 32768 fragmenten per groep
8192 inodes per groep
Superblokreservekopieën opgeslagen in blokken:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,4096000
Reserveren van groepstabellen: voltooid
Schrijven van inodetabellen: voltooid
Aanmaken van journal (32768 blokken): voltooid
Schrijven van superblokken en bestandssysteem-metagegevens: voltooid

sudo mkfs.ext4 /dev/mapper/backup2

Maak de directory’s aan (overslaan als je dit al eerder op deze pc hebt gedaan) anders krijg je de volgende foutmelding:

mkdir: cannot create directory ‘/backup2’: File exists

sudo mkdir /backup2

Koppel dit bestandssysteem

sudo mount /dev/mapper/backup2 /backup2

Laat de vrije ruimte op het systeem zien
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 50G 8,8G 38G 19% /
none 4,1k 0 4,1k 0% /sys/fs/cgroup
udev 1,6G 13k 1,6G 1% /dev
tmpfs 311M 1,5M 310M 1% /run
none 5,3M 0 5,3M 0% /run/lock
none 1,6G 82k 1,6G 1% /run/shm
none 105M 41k 105M 1% /run/user
/dev/sda7 197G 80G 108G 43% /home
/dev/mapper/backup2 32G 47M 30G 1% /backup2

sudo df -H

Verander van actieve directory

cd /backup2

Laat de informatie over de bestanden zien.

total 16
drwx—— 2 root root 16384 dec 18 13:41 lost+found

sudo ls -l

Haal je USB-Stick er uit en steek hem er weer in. Controle, vraagt om het passphrase? Opent het?

Een ikoontje van een schijf met een slotje verschijnt op mijn scherm.luks2

Ga naar de media map

Bekijk de naam van je USB-stick met: eelco-Compaq-Presario-CQ71-Notebook-PC eelco # ls

7ea70111-3701-4bed-9d8a-19230f08debe

Vind je geen gegevens, haal dan de stick er uit en steek hem er weer in.

Plak de naam, vaak een lange cijfercode acher het volgende commando

cd /media/eelco/

lsluks3

sudo chmod 777 7ea70111-3701-4bed-9d8a-19230f08debe

KLAAR

Ik kwam de volgende informatie nog tegen in handleidingen over LUKS. Het mounten en unmounten is iets wat ik niet doe. Ik heb daar nog geen problemen mee ondervonden. Het veranderen van het wachtwoord lukte zonder problemen.

Unmount met

sudo umount /backup2

cryptsetup luksClose backup2

(Re)mount met

sudo cryptsetup luksOpen /dev/sdb backup2

sudo mount /dev/mapper/backup2 /backup2

sudo df -H

sudo mount

Verander wachtwoord met

sudo cryptsetup luksDump /dev/sdb

sudo cryptsetup luksAddKey /dev/sdb

sudo cryptsetup luksRemoveKey /dev/sdb

(gebruik oude wachtwoord!)

Problemen die ik af en toe tegenkwam:

  • De rechten waren niet goed ingesteld. Nadat ik dat nogmaals, vaak op dezelfde wijze had geprobeerd, waren ze wel goed ingesteld. Mijn sticks zijn nu te beschrijven en te lezen op diverse pc´s.

  • Een stick die met LUKS had versleuteld, maar waarvoor ik daarna een tweede keer een partitietabel had aangemaakt en opnieuw had versleuteld, vroeg twee keer om een wachtwoord. Het oude wordt dus niet gewist na het aanmaken van een nieuwe partitietabel. Dit moet toch met de commando´s zoals beschreven in (verander wachtwoord) verwijderd worden.

  • Pogingen om een android micro-sd kaartje ook te versleutelen, liepen op niets uit. Volgens diverse handleidingen moet je eerst een fat32 stuk hebben en daarna een ext4 deel voordat je het met de app (luks manager) kan lezen. De ext2 partitie wordt echter niet herkend.

Bronnen:

http://www.cyberciti.biz/hardware/howto-linux-hard-disk-encryption-with-luks-cryptsetup-command/

https://balau82.wordpress.com/2011/08/25/encrypting-data-on-usb-flash-drives-with-luks/

http://en.wikipedia.org/wiki/Dm-crypt

http://community.linuxmint.com/tutorial/view/344

https://help.ubuntu.com/community/EncryptedFilesystemHowto3

4 Comments

  1. Freerk Jongsma schreef:

    De eerste gebruiker op een computer heeft als UID=1000. De tweede gebruiker heeft als UID=1001, enz
    Heb je een ander UID dan het UID van de maker van een bestand op deze stick dan kun je wel lezen maar niet bewerken. dit is de voornaamste reden dan USB sticks gebruikt met Linux vaak in NTFS formatting blijven staan. Ze zijn gewoon beschrijfbaar onafhankelijk van je UID.
    Je hebt er geen last van als je als enige gebruik maakt van de Linux computer. Maar in een gezin met vier kinderen die allemaal een eigen account hebben dan zijn er UID’s van 1000 tm 1005.
    Een gezamelijke USB harddisk dus lekker in NTFS laten staan.
    Voor mensen in deze situatie, doe niet sudo mkfs.ext4 /dev/mapper/backup2 maar in plaats hiervan sudo mkfs.ntfs /dev/mapper/backup2
    Nu kun je zowel bestanden bekijken als bewerken op je beveiligde stick.
    sudo chmod 777 DiskID is dan ook overbodig geworden

  2. Ben schreef:

    Eindelijk eens een Nederlandse tutorial waar je wat aan hebt, dank zij deze is het me eindelijk gelukt.Hartelijk dank!

  3. Freerk Jongsma schreef:

    Mooie manier om commando’s van uitvoer op scherm te scheiden; heel duidelijk zo.
    En een goed artikel Eelco. Ik heb dit trouwens gedaan met een stick van 2 G en dat duurde geen uren. 20 minuten nam het formatteren in beslag. En ik kan op die 2 G al mijn geheime passwords kwijt en nog een boel andere dingen die ik eventueel geheim wil houden…

  4. Machiel Machiel schreef:

    He Eelco,

    Wat eengoed artikel! Dank je wel hiervoor ik ga het eens serieus verder bekijken de komende week!

    mvgr,

    Machiel

What do you think?

What are you waiting for join the conversation!

%d bloggers liken dit: