Decrypt og mount script v2

Skrevet af: Patrick Kerwood

Jeg har før lavet et “Decrypt og mount script” som automatisk dekrypter og mounter enheder, med et password. Dette script bruger istedet en key fil til at dekryptere med, som ligger på en USB enhed.

Formålet med dette er bla. at mindske risikoen for at nogen kan gætte eller brute force koden. Key filen ligger jeg på en USB enhed, som er krypteret med et kodeord.
Resultatet bliver, at man skal indsætte USB enheden i computeren/serveren, for at dekrypter sin(e) disk(e). Her efter kører man scriptet, skriver koden til USB’en og resten af processen sker automatisk. Nedenstående kan du se hele processen.

  • Indsæt USB
  • Kør scriptet
  • Indtast kode til USB (Resten sker automatisk)
  • Partitionen på USB’en bliver dekrypteret og mountet
  • Disk(e) bliver dekrypteret med keyfilen på USB’en og mountet
  • USB’en bliver unmountet og lukket
  • Fjern USB’en

Start med at lave en krypteret partition på USB enheden, med denne guide. Når det er gjort mounter du den et sted. I dette eksempel bruger vi /mnt/USB

Kør nu nedenstående kommando for at lave en fil på 2048 bytes, der skal bruges som nøglefil. Læg mærke til at jeg smider filen direkte på USB enheden. Det er for fjerne muligheden for at gendanne filen, hvis den først har lagt på system disken. Kort sagt, man kan ikke gendanne noget der aldrig har været der.
dd bs=512 count=4 if=/dev/urandom of=/mnt/USB/mykeyfile iflag=fullblock

Når key filen er lavet kan du nu kryptere de andre diske, på samme måde som med USB enheden. Dog med en lille ændring. Når luksFormat kommandoen skal kørers, skal key filen tilføjes til slutning af kommandoen og uden parameteren -y, som vist nedenunder. sdX skal selvfølgelig være device navnet på partitionen der skal krypteres. Plus når partitionen skal mountes efter luksFormat kommandoen, skal der også ændres lidt i den, da den jo skal bruge key filen.

sudo cryptsetup -v luksFormat /dev/sdX /mnt/USB/mykeyfilesudo cryptsetup --key-file /mnt/USB/mykeyfile luksOpen /dev/sdX DISK1

Hvis du allerede har krypteret din disk med et kodeord, skal key filen tilføjes og kodeordet slettes. Tryk på nedenstående dropdown for at se hvordan.

Tilføj key til Luks partition (Drop down)
 
Kør nedenstående kommando for at tilføje key filen til luks partitionen.
cryptsetup luksAddKey /dev/sdX /mnt/USB/mykeyfile

Når key’en er tilføjet kan du fjerne kodeordet. Efter nedenstående kommando, skriver du kodeordet som skal fjernes.
cryptsetup luksRemoveKey /dev/sdXSkriv her efter den kode som der skal fjernes.

Til scriptet skal vi bruge uuid’en på USB enheden. Denne kan man se med nedenstående kommando. Find det uuid der peger på den krypterede partition.
ls -l /dev/disk/by-uuid/

Eksempelvis..
lrwxrwxrwx 1 root root 10 nov 26 18:26 1425ff43-e4g7-4f6c-57cb-214bcd175f17 -> ../../sda1
lrwxrwxrwx 1 root root 10 nov 26 18:29 411d005a-fcae-0bd9-ae49-ed21d35d24e1 -> ../../sde1
lrwxrwxrwx 1 root root 10 nov 26 18:29 57ca00f9-f023-4529-8839-571fb7230b55 -> ../../sdf1

Scriptet

Nu til selve scriptet.
Smid USB enheden’s uuid i variablen uuid, i linje 4.
Linje 8 – 13 søger for at scriptet kun kan køres med root privilegier.
Linje 15 – 22 er en function som bliver brugt ved Success/Failure output.

Nedenstående sektion prompter for et kodeord til at dekryptere USB enheden. Efterfølgende tjekker den om mappen /mnt/KeyMount eksisterer, hvis ikke bliver den oprettet. USB’en bliver så mountet i mappen

Så kommer selve dekryptering af diske med key filen. Nedenstående sektion dekrypter og mounter DISK1. Ændre uuid’en i linje 2 så den passer med den krypteret partition på disken. Denne sektion kan kopiers, hvis du har flere diske der skal dekrypteres. Ændre DISK1 og uuid’en for hver ny disk.

Grunden til at uuid’en bliver brugt i stedet for fx. device navnet er at navnet er dynamisk, men uuid’en vil altid være det samme uanset hvilket system man mounter disken i.

Sidste del af scriptet unmounter og lukker USB enheden igen, så du kan fjerne den fra computeren.

Scriptet i helhed

11 jan 2015   | Alle · Scripts · Sikkerhed

Leave a Reply