Kategória: Debian Linux

Zmenené: 3. máj 2014

Šifrovaná partícia kľúča USB

Nakoniec som sa rozhodol urobiť si na kľúči USB šifrovanú partíciu. Prednostne uvažujem, že bude určená na citlivé zálohy, ako súkormné kľúče k OpenPGP, SSL, SSH a podobne, časom uvidím a možno to urobím aj inak. Na šifrovanie partície som sa rozhodol využiť LUKS – Linux Unified Key Setup.

Dlho som sa chystal na túto operáciu, pretože som sa obával, že to bude vyžadovať veľa nastavení a prispôsobení, ale mýlil som sa. Celý postup je jednoduchý a priamočiary. Má však jednu nevýhodu, na takto zašifrovanú partíciu sa nedostanete z Windows, ale to ma netrápi…

Identifikácia zariadenia

Ako celkom prvé je potrebné vedieť aké označenie systém pre kľúč USB používa. V každom systéme to môže byť iné, keď z nijakého iného dôvodu, tak pretože v každom stroji môže byť iný počet zapojených diskov. Na jednoznačnú identifikáciu zariadenia stačí sledovať systémový počas pripojenia kľúča USB (skrátené):

tailf /var/log/syslog
kernel: [ 6295.252090] usb-storage 2-1:1.0: USB Mass Storage device detected
kernel: [ 6295.252329] scsi10 : usb-storage 2-1:1.0
kernel: [ 6296.253339] scsi 10:0:0:0: Direct-Access     Generic  Flash Disk       8.07 PQ: 0 ANSI: 4
kernel: [ 6296.254025] sd 10:0:0:0: Attached scsi generic sg3 type 0
kernel: [ 6296.256826] sd 10:0:0:0: [sdc] 15974400 512-byte logical blocks: (8.17 GB/7.61 GiB)
kernel: [ 6296.257941] sd 10:0:0:0: [sdc] Write Protect is off
kernel: [ 6296.257955] sd 10:0:0:0: [sdc] Mode Sense: 23 00 00 00
kernel: [ 6296.259612] sd 10:0:0:0: [sdc] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
kernel: [ 6296.265316]  sdc: sdc1
                        ^^^^^^^^^
kernel: [ 6296.283963] sd 10:0:0:0: [sdc] Attached SCSI removable disk
                                    ^^^^^

Môj kľúč USB je označený ako sdc, presnejšie /dev/sdc a jeho partícia ako sdc1.

Rada

Znova zdôrazním, vy si musíte nájsť vlastné označenie a vo zvyšku článku nahradiť moje sdc tým svojim.

Rozdelenie USB

Začal som tým, že som kľúč USB rozdelil na dve partície – jedna bez šifrovania s vfat (aby bola použiteľná aj vo Windows) a jedna šifrovaná s ext4. Na rozdelenie som použil nástroj GParted, v ktorom som nechal partíciu s vfat (FAT32) priamo aj naformátovať a pre šifrovanú som nechal partíciu neformátovanú, ,pretože GParted nedokáže pracovať s LUKS:

Poznámka

Verím, že ospravedlníte, že zobrazené rozdelenie kľúča je už v stave konečného výsledku…

Rozdelené USB

Po rozdelení disku som musel kľúč vytiahnuť a znova pripojiť, aby systém novú partíciu našiel. Teda celkom presne existuje aj iný spôsob, ale tento sa mi zdal najjednoduchší.

Vytvorenie šifrovanej partície

Tip

Zvyšok práce je potrebné urobiť v príkazovom riadku (s právami root).

Vytvorenie šifrovanej partície pozostáva z dvoch krokov:

  • vytvorenie kontajnera LUKS
  • vytvorenie súborového systému v kontajneri

Príprava LUKS

Keď máte pripravený kľúč s partíciou, ktorú chcete mať šifrovanú, je potrebné na nej najprv vytvoriť tzv. kontajner LUKS, ktorý bude obaľovať samotnú partíciu. Na to potrebujete nástroj cryptsetup (balík cryptsetup-bin). Spomínaný kontajner LUKS vytvoríte pomocou:

cryptsetup --verbose --verify-passphrase luksFormat /dev/sdc2

WARNING!
========
Toto nevratně přepíše data na /dev/sdc2.

Ako prvá si program vyžiada potvrdenie operácie, pretože dôjde k nevratnej strate dát, i preto si ešte pred potvrdením (YES veľkými písmenami) riadne skontrolujte, že ste označenie partície napísali správne:

Are you sure? (Type uppercase yes): YES

Po potvrdení si program vyžiada heslo, ktoré bude slúžiť na prístup k dátam:

Zadejte heslo:
Ověřte heslo:

Ak dopadne všetko ako má (ešte sa mi nestalo aby nie, možno len kvôli vadnému disku), nakoniec program vypíše:

Příkaz úspěšně vykonán.

Rada

LUKS podporuje viacero hesiel (až osem naraz), ale tomu sa teraz venovať nebudem. Ak máte záujem môžete pátrať po príkazoch luksAddKey a luksRemoveKey.

Ak potrebujete zmeniť heslo, jednoducho najprv pridajte nové pomocou luksAddKey, vyskúšajte a potom staré odoberte pomocou luksRemoveKey alebo jednoducho použite luksChangeKey.

Vytvorenie súborového systému

Po vytvorení kontajnera je ešte potrebné vytvoriť v ňom súborový systém, tj. partíciu naformátovať, k čomu však treba kontajner „otvoriť”:

cryptsetup luksOpen /dev/sdc2 sdc2

Program si vyžiada zadanie hesla:

Zadejte heslo pro /dev/sdc2:

Výsledkom tohoto príkazu je zariadenie sdc2 v adresári /dev/mapper/, ku ktorému už možno pristupovať ako ku každému inému diskovému zariadeniu. Takže na zariadení možno vytvoriť súborový systém štandardným spôsobom:

mkfs.ext4 -L mojLuks /dev/mapper/sdc2
  • voľba -L mojLuks nastavuje menovku disku - ja si na menovky potrpím…

No a po naformátovaní ostáva kontajner LUKS zatvoriť:

cryptsetup luksClose sdc2

Rada

Znova zopakujem, sdc2 je označenie partície v mojom systéme, vy si musíte nájsť označenie vlastné a v príkazoch ho nahradiť!!!

Použitie v XFCE

Pripojenie LUKS v XFCE – heslo

Pripojenie LUKS v XFCE – heslo

Pretože už dlhší čas používam XFCE, predvediem ako jednoducho pripojíte svoju šifrovanú partíciu pomocou správcu súborov Thunar (áno, niektorí ho milujú, iní nenávidia – ja patrím k tým prvým).

Po pripojení kľúča USB sa jeho partície objavia v bočnom paneli Thunaru. Kliknite na šifrovanú partíciu (áno, zatiaľ nepozná menovku) a objaví sa dialóg na zadanie hesla a voľbu doby jeho platnosti:

Aj odpojenie je štandardným spôsobom, takže (až na to heslo) vlastne ani nepoznáte, že pracujete so šifrovanou partíciou. Jediné, čo vás na šifrovanú partíciu upozorní je malý emblém zámku na ikone partície.

Poznámka

Dobre zvážte možnosť zapamätania si hesla na stálo – jednak netuším kde a ako sa uloží a jednak, potom ste disk čiastočne zbytočne šifrovali, pretože si ho pripojí každý, kto sa dostane do počítača… Ale uznávam, že aj toto je pre mnohých jedna z možností.

Zmena vlastníctva partície

Ak neviete ako zmeniť vlastníctvo koreňa partície, tak rýchly návod…

Najprv pripojte vytvorenú partíciu na kľúči USB, potom si pozrite, kde je pripojená:

mount | grep mojLuks
/dev/mapper/luks-926c9f5d-8c1f-48e0-815b-584a742c76b0 on /media/slavko/mojLuks type ext4 (rw,nosuid,nodev,relatime,data=ordered,uhelper=udisks2)

Potom už stačí jednoducho (ako root):

chown slavko: /media/slavko/mojLuks

A skontrolovať výsledok:

ls -ld /media/slavko/mojLuks
drwxr-xr-x 3 slavko slavko 4096 máj  2 17:36 /media/slavko/mojLuks

Poznámka

Už viete prečo mám rád menovky partícií?

Zmena menovky

Ak sa vám neskôr prestane nastavená menovka páčiť, jednoducho znova otvorte šifrovanú partíciu (pomocou luksOpen) alebo jednoducho partíciu pripojte a použite e2label (prípadne iný nástroj, podľa použitého súborového systému):

e2label /media/slavko/mojLuks nová_menovka