Cifrare completamente un device usb
Cifrare completamente un device usb ….
Cominciamo con l’individuare la nostra chiave usb
:~#fdisk -l
………
Disco /dev/sdb: 7747 MB, 7747397632 byte
40 testine, 40 settori/tracce, 9457 cilindri, totale 15131636 settori
Unità = settori di 1 * 512 = 512 byte
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identificativo disco: 0x00000000
Dispositivo Boot Start End Blocks Id System
/dev/sdb1 2048 15131635 7564794 c W95 FAT32 (LBA)
:~#
ecco individuato il mio disco usb, il device è il /dev/sdb
Pertanto cominciamo con il piallarlo poiché è già formattato ed al suo interno c’è una partizione chiamata sdb1
Quindi:
:~# shred -n1 -v /dev/sdb
shred: /dev/sdb: passo 1/1 (random)…
shred: /dev/sdb: passo 1/1 (random)…1,4GiB/7,3GiB 20%
….
In pochi minuti, otteniamo una chiavetta piallata a dovere, non serve che questa venga piallata più volte perché con la cifratura non si riconoscerà comunque la fine del filesystem.
A questo punto dobbiamo istallare il software necessario a cifrare completamente il device.
:~# apt-get install cryptsetup initramfs-tools -y
ed istruire il kernel
:~# echo aes-i586 >>/etc/initramfs-tools/modules
:~# echo dm-crypt >>/etc/initramfs-tools/modules
:~# echo dm-mod >>/etc/initramfs-tools/modules
:~# update-initramfs -k all -u
Purtroppo adesso è necessario riavviare il sistema perché il kernel carichi i giusti moduli.
:~# shutdown -r now
Avremmo potuto usare anche il modprobe, ma preferisco il riavvio, in questo modo i moduli necessari a cifrare completamente il device usb verranno caricati automaticamente in memoria.
…………………………
Quando il sistema si sarà riavviato, possiamo passare alla preparazione ed apertura del disco usb.
:~# cryptsetup luksFormat /dev/sdb
WARNING!
========
Ciò sovrascriverà i dati in /dev/sdb in modo irreversibile.
Are you sure? (Type uppercase yes): YES (scrivere YES tutto maiuscolo)
Inserire la passphrase LUKS: parolachiavedialmenosedicicaratteri
Verify passphrase:parolachiavedialmenosedicicaratteri
:~#
Questo passaggio è necessario a cifrare completamente un device usb.
Il nostro disco è stato cifrato completamente.
Adesso vediamo come poterlo formattare con il filesystem che più ci aggrada.
:~# cryptsetup luksOpen /dev/sdb discocifrato
Inserire la passphrase per /dev/sdb: parolachiavedialmenosedicicaratteri
:~#
Se controlliamo con un fdisk -l noteremo un nuovo device
:~# fdisk -l
…………
Il disco /dev/sdb non contiene una tabella delle partizioni valida
Disco /dev/mapper/discocifrato: 7745 MB, 7745300480 byte
255 testine, 63 settori/tracce, 941 cilindri, totale 15127540 settori
Unità = settori di 1 * 512 = 512 byte
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identificativo disco: 0x90af5154
Il disco /dev/mapper/discocifrato non contiene una tabella delle partizioni valida
:~#
In effetti /dev/sdb è cifrata pertanto il sistema operativo non riconosce in quel device una partition table valida, mentre il device virtuale /dev/mapper/discocifrato lo dobbiamo ancora battezzare, pertanto adesso lo formattiamo come ci pare.
Trattandosi di un disco cifrato consiglio l’utilizzo di un filesystem evoluto come reiserfs o xfs.
Quindi istalliamo il software necessario ad utilizzare i due filesystem e poi provvediamo a formattare.
:~# apt-get install xfsprogs reiserfsprogs -y
formattiamo
:~# mkfs -t xfs /dev/mapper/discocifrato
meta-data=/dev/mapper/discocifrato isize=256 agcount=4, agsize=472736 blks
= sectsz=512 attr=2, projid32bit=0
data = bsize=4096 blocks=1890942, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =nessuno extsz=4096 blocks=0, rtextents=0
:~#
Montiamo la nostra partizione nel punto di mount
:~# mount -t xfs /dev/mapper/discocifrato /mnt
e verifichiamo
:~# mount
……………
/dev/mapper/discocifrato on /mnt type xfs (rw)
:~#
:~# cd /mnt/
:/mnt# ls -la
totale 1
drwxr-xr-x 2 root root 6 lug 30 16:12 .
drwxr-xr-x 29 root root 776 mar 30 18:37 ..
:/mnt#
:/mnt# mkdir pippo
:/mnt# touch foo
:/mnt#
abbiamo creato una directory nel disco cifrato ed un file vuoto.
adesso smontiamo il disco e proviamo a ridecifrarlo
:/mnt# cd
:~#
:~# umount /dev/mapper/discocifrato
:~# cryptsetup luksClose /dev/mapper/discocifrato
A questo punto possiamo sganciare il disco usb.
Proviamo a rimontare il disco manualmente, chiaramente il sistema operativo si accorge che il nostro è un disco cifrato, quindi quando inseriamo la “chiavetta USB” il sistema prova a montarla e ci chiede la passphrase, ma se siamo testardi, facciamo tutto manualmente, quindi chiudiamo l’interfaccia grafica che si apre ed apriamo un terminale.
:~# cryptsetup luksOpen /dev/sdb discocifrato
Inserire la passphrase per /dev/sdb:
:~#
Verifichiamo che /mnt non contenga nulla
:~# ls -la /mnt/
totale 1
drwxr-xr-x 2 root root 48 ott 13 2013 .
drwxr-xr-x 29 root root 776 mar 30 18:37 ..
:~#
Perfetto, adesso montiamo la partizione.
:~# mount /dev/mapper/discocifrato /mnt/
Controlliamo cosa contiene il ns punto di mount
:~# ls -la /mnt/
totale 1
drwxr-xr-x 3 root root 28 lug 30 16:18 .
drwxr-xr-x 29 root root 776 mar 30 18:37 ..
-rw-r–r– 1 root root 0 lug 30 16:18 foo
drwxr-xr-x 2 root root 6 lug 30 16:18 pippo
:~#
OPERAZIONE RIUSCITA
Smontiamo il tutto ed usiamo l’interfaccia grafica per accedere al ns disco.
:~# umount /dev/mapper/discocifrato
:~# cryptsetup luksClose /dev/mapper/discocifrato
:~#
Estraiamo il chiavino usb e reinseriamolo in altra porta per stare tranquilli.
Inseriamo la nostra frase segreta ed il disco verrà montato in automatico.
Prima di strappare la chiavetta è necessario smontarla e rimuovere l’unità in sicurezza.