GNU/Linux >> Linux Esercitazione >  >> Debian

Come crittografare directory/partizioni con eCryptfs su Debian Squeeze

eCryptfs è un filesystem crittografico impilato di classe enterprise conforme a POSIX per Linux. Puoi usarlo per crittografare partizioni e anche directory che non utilizzano una propria partizione, indipendentemente dal filesystem sottostante, dal tipo di partizione, ecc. Questo tutorial mostra come utilizzare eCryptfs per crittografare una directory su Debian Squeeze.

Non garantisco che questo funzionerà per te!

1 Nota preliminare

In questo tutorial crittograferò la mia directory home, /home/falko/, che si trova sulla partizione / (cioè, /home/falko/ è una directory normale e non usa una partizione propria).

2 Installazione di eCryptfs

eCryptfs può essere facilmente installato come segue:

apt-get install ecryptfs-utils

3 Crittografia di una directory

Ora crittograferò la mia home directory /home/falko/. Poiché ci sono già file (non crittografati) in quella directory, devo eseguirne un backup in modo da poterli ripristinare nella directory /home/falko/ crittografata in seguito (altrimenti non è possibile accedere/leggere questi file mentre la directory è crittografato):

cp -pfr /home/falko/ /tmp/

Ora posso crittografare la directory /home/falko/ montandola con il tipo di file system ecryptfs:

mount -t ecryptfs /home/falko /home/falko

Quando lo fai per la prima volta, dovrai rispondere ad alcune domande:

[email protetta]:~# mount -t ecryptfs /home/falko /home/falko
Passphrase: <-- some_passphrase
Seleziona cifra:
 1) aes: blocksize = 16; dimensione minima della chiave = 16; max keysize = 32 (non caricato)
 2) blowfish: blocksize = 16; dimensione minima della chiave = 16; max keysize = 56 (non caricato)
 3) des3_ede: blocksize = 8; dimensione minima della chiave = 24; max keysize = 24 (non caricato)
 4) twofish: blocksize = 16; dimensione minima della chiave = 16; max keysize = 32 (non caricato)
 5) cast6: blocksize = 16; dimensione minima della chiave = 16; max keysize = 32 (non caricato)
 6) cast5: blocksize = 8; dimensione minima della chiave = 5; max keysize = 16 (non caricato)
Selezione [aes]: <-- ENTER
Seleziona byte chiave:
 1) 16
 2) 32
 3) 24
Selezione [16]: <-- ENTER
Abilita passthrough testo normale (s/n) [n]: <-- ENTER
Abilita crittografia nome file (s/n) [n]: <-- ENTER
Tentativo di montare con le seguenti opzioni:
  ecryptfs_unlink_sigs
  ecryptfs_key_bytes=16
  ecryptfs_cipher=aes
  ecryptfs_sig=bd28c38da9fc938b
AVVERTENZA: basato su contenuto di [/root/.ecryptfs/sig-cache.txt],
sembra che tu non abbia mai montato con questa chiave
prima. Ciò potrebbe significare che hai digitato la tua
passphrase errata.

Vuoi procedere con il mount (sì/no)? : <-- sì
Desideri aggiungere sig [bd28c38da9fc938b] a
[/root/.ecryptfs/sig-cache.txt]
per evitare questo avviso in futuro ( si No)? : <-- sì
Aggiunto nuovo sig al file cache user sig
eCryptfs montate
[email protette]:~#

Dai un'occhiata all'output di

mount

e dovresti vedere che /home/falko/ è ora crittografato:

[email protected]:~# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/home/falko on /home/falko type ecryptfs (rw,ecryptfs_sig=bd28c38da9fc938b,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs)
[email protected]:~#

Ripristiniamo il nostro backup nella directory ora crittografata /home/falko/ ed eliminiamo il backup in seguito:

cp -pfr /tmp/falko/ /home/
rm -fr /tmp/falko/

A scopo di test, copiamo qualche altro file, ad es. /etc/hosts, su /home/falko/ per verificare se viene davvero crittografato:

cp /etc/hosts /home/falko

Mentre /home/falko/ è montato con il tipo di file system ecryptfs, dovrebbe essere possibile leggere il contenuto di /home/falko/hosts:

cat /home/falko/hosts

Ora smonta /home/falko/...

umount /home/falko

... e riprova a leggere /home/falko/hosts, e dovresti ottenere qualcosa di criptico:

cat /home/falko/hosts
?æËÊÀû5)í}Ó`§wʽ.ÂçµÔyiIezz°Ñd¦R,`Ëi,0ñ*úÐ%^-']YÑj÷#6÷¨Y-]«é²ùô<f$øRø'<Ö·"íó®9ÛQ¨yÂsçOÂ@%Ⱦ®ý?VÔCx'Ųز(t±õÓ´XÏxïhÌ3pé±t
S[Tåj´0KhóÖÄ  IÚYçàÉü~ZA#æ;mâ²Îí]úÞþ
d#ß÷ݹ¥ùªeÐðº¦%ÎmK+÷ý)ôÞGįÁ©
                             <na_Yý1ZÂ+ðú¶RE}´ !¥ð_(-)ÇzÃسÒÜ¿¦´«ºÀH=Üï´        Hú.`{ðßâËw
qü
  Ç(½©V¿òÀѳE¾T%Ë9»¯v¡óÐ5S
©9¶è-

4 Come montare automaticamente un partiton crittografato all'avvio

Ovviamente, non vogliamo montare /home/falko/ manualmente ogni volta:sarebbe meglio se potesse essere montato automaticamente all'avvio. Per fare ciò abbiamo bisogno di un file di passphrase e, per motivi di sicurezza, voglio che questo file di passphrase si trovi su una chiave USB.

Collega una chiave USB ed esegui

fdisk -l

per scoprire il nome del dispositivo e il tipo di file system:

[email protected]:~# fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00035e35

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        3793    30461952   83  Linux
/dev/sda2            3793        3917      992257    5  Extended
/dev/sda5            3793        3917      992256   82  Linux swap / Solaris

Disk /dev/sdb: 8086 MB, 8086617600 bytes
255 heads, 63 sectors/track, 983 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000e439f

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         983     7895916    b  W95 FAT32
[email protected]:~#

Nel mio caso il nome del dispositivo è /dev/sdb1 e utilizza un file system FAT32.

Montiamo la chiavetta USB su /mnt/usb:

mkdir /mnt/usb
mount /dev/sdb1 /mnt/usb

Dai un'occhiata all'output di

mount

... e dovresti vedere che è stato montato con il tipo di file system vfat (FAT32) - avremo bisogno di queste informazioni in seguito per il nostro file /etc/fstab:

[email protected]:~# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sdb1 on /mnt/usb type vfat (rw)
[email protected]:~#

Ora dai un'occhiata al contenuto di /root/.ecryptfs/sig-cache.txt:

cat /root/.ecryptfs/sig-cache.txt
bd28c38da9fc938b

Abbiamo bisogno di questa firma per il file /root/.ecryptfsrc che creiamo come segue:

vi /root/.ecryptfsrc

Assicurati di utilizzare la firma del file /root/.ecryptfs/sig-cache.txt nella riga ecryptfs_sig:

key=passphrase:passphrase_passwd_file=/mnt/usb/passwd_file.txt
ecryptfs_sig=bd28c38da9fc938b
ecryptfs_cipher=aes
ecryptfs_key_bytes=16
ecryptfs_passthrough=n
ecryptfs_enable_filename_crypto=n

Ora creiamo il file passphrase sulla nostra chiavetta USB:

vi /mnt/usb/passwd_file.txt
passphrase_passwd=some_passphrase

Assicurati di utilizzare la passphrase corretta, ovvero la passphrase che useresti se montassi la directory manualmente.

Quindi apri /etc/fstab...

vi /etc/fstab

... e aggiungi le seguenti due righe (assicurati di utilizzare il tipo di file system corretto per la tua chiavetta USB - vfat nel mio caso):

[...]
/dev/sdb1       /mnt/usb        vfat    ro      0 0
/home/falko /home/falko ecryptfs defaults 0 0

(È importante che la riga per la chiave USB venga prima della riga per la partizione crittografata perché la chiave USB deve essere montata prima che la partizione crittografata possa essere montata!)

Quindi riavvia il sistema:

reboot

Se tutto va bene, la partizione crittografata dovrebbe essere montata automaticamente dopo il riavvio. Tuttavia, è possibile che il tuo sistema non riesca a montare la tua chiave USB durante l'avvio, il che significa che nemmeno la tua partizione crittografata può essere montata. Se ciò accade, modifica /etc/rc.local (questo script viene eseguito alla fine del processo di avvio)...

vi /etc/rc.local

... e aggiungi la riga /bin/mount -a prima della riga di uscita 0:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/bin/mount -a
exit 0

Questo (ri)monterà tutte le partizioni (inclusa la tua chiave USB e la partizione crittografata) alla fine del processo di avvio.

  • eCryptfs:https://launchpad.net/ecryptfs
  • Debian:http://www.debian.org/

Debian
  1. Come crittografare la directory con EncFS su Debian 9 Stretch Linux

  2. Come configurare un firewall con UFW su Debian 10

  3. Come configurare un firewall con UFW su Debian 9

  4. Come installare Automatad CMS con Apache e Lets crittografare su Debian 10

  5. Come eseguire il backup dei database MySQL con mylvmbackup su Debian Squeeze

Come crittografare i tuoi dati con EncFS su Debian 8 (Jessie)

Come proteggere con password le directory con mod_authn_dbd e MySQL su Apache (Debian 8)

Come installare Shopware con NGINX e Lets crittografare su Debian 9

Come configurare Let's Encrypt SSL Certificate con Nginx su Debian 10 / Debian 9

Come crittografare le partizioni Linux con VeraCrypt su Debian 10

Come crittografare le partizioni Linux con VeraCrypt su Ubuntu