GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo cifrar directorios/particiones con eCryptfs en Debian Squeeze

eCryptfs es un sistema de archivos criptográficos apilados de clase empresarial compatible con POSIX para Linux. Puede usarlo para encriptar particiones y también directorios que no usan una partición propia, sin importar el sistema de archivos subyacente, el tipo de partición, etc. Este tutorial muestra cómo usar eCryptfs para encriptar un directorio en Debian Squeeze.

¡No emito ninguna garantía de que esto funcione para usted!

1 nota preliminar

En este tutorial, cifraré mi directorio de inicio, /home/falko/, que se encuentra en la partición / (es decir, /home/falko/ es un directorio normal y no utiliza una partición propia).

2 Instalación de eCryptfs

eCryptfs se puede instalar fácilmente de la siguiente manera:

apt-get install ecryptfs-utils

3 Cifrado de un directorio

Ahora cifraré mi directorio de inicio /home/falko/. Como ya hay archivos (no encriptados) en ese directorio, debo hacer una copia de seguridad de ellos para poder restaurarlos en el directorio /home/falko/ luego encriptado (de lo contrario, no se puede acceder/leer estos archivos mientras el directorio está cifrado):

cp -pfr /home/falko/ /tmp/

Ahora puedo cifrar el directorio /home/falko/ montándolo con el tipo de sistema de archivos ecryptfs:

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

Cuando hagas esto por primera vez, tendrás que responder algunas preguntas:

[email protected]:~# mount -t ecryptfs /home/falko /home/falko
Frase de contraseña: <-- some_passphrase
Seleccionar cifrado:
 1) aes: blocksize = 16; tamaño de clave mínimo = 16; max keysize = 32 (no cargado)
 2) blowfish: blocksize = 16; tamaño de clave mínimo = 16; max keysize = 56 (no cargado)
 3) des3_ede: blocksize = 8; tamaño de clave mínimo = 24; max keysize = 24 (no cargado)
 4) twofish: blocksize = 16; tamaño de clave mínimo = 16; max keysize = 32 (no cargado)
 5) cast6: blocksize = 16; tamaño de clave mínimo = 16; max keysize = 32 (no cargado)
 6) cast5: blocksize = 8; tamaño de clave mínimo = 5; tamaño máx de clave = 16 (no cargado)
Selección [aes]: <-- ENTRAR
Seleccionar bytes de clave:
 1) 16
 2) 32
 3) 24
Selección [16]: <-- ENTRAR
Habilitar paso de texto sin formato (s/n) [n]: <-- ENTRAR
Habilitar cifrado de nombre de archivo (s/n) [n]: <-- ENTRAR
Intentando montar con las siguientes opciones:
  ecryptfs_unlink_sigs
  ecryptfs_key_bytes=16
  ecryptfs_cipher=aes
  ecryptfs_sig=bd28c38da9fc938b
ADVERTENCIA: Según el contenido de [/root/.ecryptfs/sig-cache.txt],
parece que nunca has montado con esta clave
antes. Esto podría significar que ha escrito incorrectamente su
frase de contraseña.

¿Desea continuar con el montaje (sí/no)? : <-- yes
¿Le gustaría añadir sig [bd28c38da9fc938b] a
[/root/.ecryptfs/sig-cache.txt]
para evitar esta advertencia en el futuro ( sí No)? : <-- yes
Se adjuntó con éxito nueva firma al archivo de caché de firmas del usuario
eCryptfs montado
[correo electrónico protegido]:~#

Echa un vistazo a la salida de

montar

y debería ver que /home/falko/ ahora está encriptado:

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

Restauremos nuestra copia de seguridad en el directorio ahora encriptado /home/falko/ y eliminemos la copia de seguridad después:

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

Para fines de prueba, copiemos algún otro archivo, p. /etc/hosts, a /home/falko/ para comprobar si realmente se cifra:

cp /etc/hosts/home/falko

Mientras que /home/falko/ está montado con el tipo de sistema de archivos ecryptfs, debería ser posible leer el contenido de /home/falko/hosts:

gato /casa/falko/hosts

Ahora desmonte /home/falko/...

umount /home/falko

... y vuelve a intentar leer /home/falko/hosts, y deberías obtener algunas cosas crípticas:

gato /casa/falko/hosts

4 Cómo montar automáticamente una partición cifrada en el momento del arranque

Por supuesto, no queremos montar /home/falko/ manualmente cada vez; sería mejor si pudiera montarse automáticamente en el momento del arranque. Para hacer esto, necesitamos un archivo de frase de contraseña y, por razones de seguridad, quiero que este archivo de frase de contraseña se encuentre en una llave USB.

Conecte una llave USB y ejecute

fdisk -l

para averiguar el nombre del dispositivo y el tipo de sistema de archivos:

[email protected]:~# fdisk -l

Disco /dev/sda: 32,2 GB, 32212254720 bytes
255 cabezas, 63 sectores/pista, 3916 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Tamaño del sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Identificador de disco:0x00035e35

Bloques de arranque de dispositivo Bloques de ID de bloque de ID
/dev /sda1*1 3793 30461952 83 Linux
/dev /SDA2 3793 3917 992257 5 extendido
/dev/sda5            3793         3917       992256   82 intercambio de Linux/Solaris

Disco /dev/sdb: 8086 MB, 8086617600 bytes
255 cabezas, 63 cilindros, 8 sectores/unidades de seguimiento
= cilindros de 16065 * 512 = 8225280 bytes
Tamaño del sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Disco identificador: 0x000e439f

   Arranque del dispositivo      Inicio         Fin      Bloques   I d  Sistema
/dev/sdb1               1          983     7895916    b  W95 FAT32
[correo electrónico protegido]:~#

En mi caso, el nombre del dispositivo es /dev/sdb1 y utiliza un sistema de archivos FAT32.

Montemos la llave USB en /mnt/usb:

mkdir /mnt/usb
montar /dev/sdb1 /mnt/usb

Echa un vistazo a la salida de

montar

... y debería ver que se montó con el tipo de sistema de archivos vfat (FAT32); necesitaremos esta información más adelante para nuestro archivo /etc/fstab:

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

Ahora eche un vistazo al contenido de /root/.ecryptfs/sig-cache.txt:

cat /root/.ecryptfs/sig-cache.txt
?æËÊÀû5)í}Ó`§wʽ.ÂçµÔyiIezz°Ñd¦R,`Ëi,0ñ*úÐ%^-']YÑj÷#6 ÷¨Y-]«é²ùô 

Necesitamos esta firma para el archivo /root/.ecryptfsrc que creamos de la siguiente manera:

vi /root/.ecryptfsrc

Asegúrese de utilizar la firma del archivo /root/.ecryptfs/sig-cache.txt en la línea ecryptfs_sig:

bd28c38da9fc938b

Ahora creamos el archivo de frase de contraseña en nuestra llave USB:

vi /mnt/usb/passwd_file.txt
key=frase de contraseña:passphrase_passwd_file=/mnt/usb/passwd_file.txtecryptfs_sig=bd28c38da9fc938becryptfs_cipher=aesecryptfs_key_bytes=16ecryptfs_passthrough=necryptfs_enable_filename_crypto=n

Asegúrese de usar la frase de contraseña correcta, es decir, la frase de contraseña que usaría si montara el directorio manualmente.

A continuación, abra /etc/fstab...

vi /etc/fstab

... y agregue las siguientes dos líneas (asegúrese de usar el tipo de sistema de archivos correcto para su llave USB, vfat en mi caso):

passphrase_passwd=alguna_contraseña

(¡Es importante que la línea de la llave USB esté antes de la línea de la partición cifrada porque la llave USB debe montarse antes de poder montar la partición cifrada!)

Luego reinicie el sistema:

reiniciar

Si todo va bien, su partición cifrada debería montarse automáticamente después del reinicio. Sin embargo, es posible que su sistema no pueda montar su llave USB durante el arranque, lo que significa que su partición cifrada tampoco se puede montar. Si esto sucede, edite /etc/rc.local (este script se ejecuta al final del proceso de arranque)...

vi /etc/rc.local

... y agregue la línea /bin/mount -a antes de la línea de salida 0:

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

Esto (re)montará todas las particiones (incluida su llave USB y la partición cifrada) al final del proceso de arranque.

5 Enlaces

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

Debian
  1. Cómo cifrar el directorio con EncFS en Debian 9 Stretch Linux

  2. Cómo configurar un cortafuegos con UFW en Debian 10

  3. Cómo configurar un cortafuegos con UFW en Debian 9

  4. Cómo instalar Automad CMS con Apache y Lets encrypt en Debian 10

  5. Cómo hacer una copia de seguridad de las bases de datos MySQL con mylvmbackup en Debian Squeeze

Cómo cifrar sus datos con EncFS en Debian 8 (Jessie)

Cómo proteger directorios con contraseña con mod_authn_dbd y MySQL en Apache (Debian 8)

Cómo instalar Shopware con NGINX y Lets encrypt en Debian 9

Cómo configurar el certificado Let's Encrypt SSL con Nginx en Debian 10 / Debian 9

Cómo cifrar particiones de Linux con VeraCrypt en Debian 10

Cómo cifrar particiones de Linux con VeraCrypt en Ubuntu

    #!/bin/sh -e## rc.local## Este script se ejecuta al final de cada nivel de ejecución multiusuario.# Asegúrese de que la secuencia de comandos "saldrá de 0" en caso de éxito o cualquier otro valor # en caso de error. ## Para habilitar o deshabilitar esta secuencia de comandos, simplemente cambie los bits de ejecución. /pre>