[glux] File system criptato su chiave usb, in progress ;)

Andrea aerdan@inventati.org
Ven 17 Feb 2006 22:11:18 CET


Come sempre il mio sistema è GNU/Debian Sarge 3.1 r0 con aggiornamenti da
security.debian.org

Per portare a termine con successo questa procedura occorre prima aver impostato
la regola udev per la chiave usb.

Quando avrò finito cercherò di fare un doc unico.

---------------------------------------------------------------------------------

Installo il pacchetto:

    -cryptsetup (configura i dispositivi a blocchi crittati)
    -dmsetup (gestore a basso livello di volumi logici)
    -libdevmapper1.01 (librerie per l'accesso a device-mapper)

sono aggiunti:

    Adding system startup for /etc/init.d/cryptdisks ...
    /etc/rc0.d/S48cryptdisks -> ../init.d/cryptdisks
    /etc/rc6.d/S48cryptdisks -> ../init.d/cryptdisks
    /etc/rcS.d/S28cryptdisks -> ../init.d/cryptdisks

Vedere docs:

    -man crypttab
    -man dmsetup
    -/etc/crypttab
    -man cryptsetup
    -/usr/share/doc/cryptsetup
    -/sbin/cryptsetup --help

Per utilizzare cryptsetup occorre sicuramente un kernel > 2.6.4 con dm-crypt
compilato (staticamente o come modulo).

Per utilizzare cryptsetup occorre che il dispositivo sia identificato
univocamente vedi regole di udev.

Mi assicuro che il dispositivo non sia già stato montato altrimenti lo script:

    /etc/init.d/cryptdisks

ritorna un errore e fallisce.

Aggiungo la linea seguente in /etc/crypttab

    cryptousb       /dev/cryptohd1  none    cipher=aes,size=256,verify

Il primo campo è il nome del file che verrà creato in /dev/mapper/ e sarà il
nostro punto di accesso al filesystem, l'equivalente del primo campo nel file
/etc/fstab ma senza privo del percorso assoluto.

Ora creo un filesystem sul dispositivo montato da cryptsetup:

    mkfs.ext3 /dev/mapper/cryptousb

Il modulo kernel Device Mapper permette anche l'utilizzo di file system
journaled quindi RaiserFS e Ext3.

Per avere info sul dispositivo:

    # dmsetup ls
    cryptousb       (254, 0)

    # dmsetup info cryptousb
    Name:              cryptousb
    State:             ACTIVE
    Tables present:    LIVE
    Open count:        0
    Event number:      0
    Major, minor:      254, 0
    Number of targets: 1

Per altri comandi vedere la man page di dmsetup.

Ora creo un file system sulla chiave usb con il solito:

    # mkfs.ext3 /dev/mapper/cryptousb

Monto il file system in /media/cryptousb e verifico il risultato:

    # mount /dev/mapper/cryptousb /mnt/cryptousb
    # mount
    [...]
    /dev/mapper/cryptousb on /mnt/cryptousb type ext3 (rw)

In ultimo modifico /etc/fstab e aggiungo la linea:

    /dev/mapper/cryptousb   /mnt/cryptousb  ext3    rw,user,noauto  0   2

A questo punto la procedura per montare e smontare la chiave usb è:


#!/bin/sh

CRYPTSCRIPT=/etc/init.d/cryptdisks
MOUNTCMD=/bin/mount

test -x $CRYPTSCRIPT  || exit 0
test -x $MOUNTCMD  || exit 0

# Attivo il dispositivo
$CRYPTSCRIPT restart

#Monto il filesystem
$MOUNTCMD /mnt/cryptousb

Al momento ho ancora dei problemi, il mio utente non ha permessi su:

    /etc/init.d/cryptdisks

penso di risolvere con sudo ma se qualcuno ha altri suggerimenti... sono ben
accetti. Preferisco non impostare bit di SUID.

-- 
ð Gli uomini sono fratelli fra loro. Cessano di esserlo quando
¶ la terra viene divisa da steccati e confini.
ñ
²			Heinmot-Tayala-Ket, Nez Percé
€
¯ KeyID:   5AF81406   2005-01-03   [scadenza: 2015-01-01]
3 KeyFpr:  A4E2 7C7C CFC7 1B1E E405  6443 9E07 AF95 5AF8 1406


Maggiori informazioni sulla lista glux