Sistema de archivos cifrado de montaje automático (usando una clave aleatoria), que reside en un archivo normal en CentOS 6.*

Sistema de archivos cifrado de montaje automático (usando una clave aleatoria), que reside en un archivo normal en CentOS 6.*

Tarea: en el sistema CentOS 6.x, configurar y montar un sistema de archivos cifrado automáticamente, que reside dentro de un archivo normal, utilizando una clave única (aleatoria).

/etc/crypttab en CentOS 6.* no permite usar un archivo simple como dispositivo de bloque para montar y mapear automáticamente.

Entonces, línea /etc/crypttab como esta

cfs   /var/file-with-encrypted-filesystem    some-password-source

se ignora en CentOS.

Se puede utilizar la siguiente secuencia de comandos para realizar la tarea en CentOS:

losetup /dev/loop0 /var/tmpfile
dd if=/dev/urandom of=/dev/shm/tmppass bs=512 count=1
cryptsetup luksFormat /dev/loop0 --use-urandom --batch-mode --key-file /dev/shm/tmppass
cryptsetup luksOpen /dev/loop0 ctmp --batch-mode --key-file /dev/shm/tmppass
mkfs.ext2 /dev/mapper/ctmp
mount -t ext2 /dev/mapper/ctmp /mountpoint
shred -n 1 /dev/shm/tmppass
rm -f /dev/shm/tmppass

asumiendo que el archivo que contiene el sistema de archivos es /var/tmpfile

¿Existe una forma menos engorrosa de lograr lo mismo en forma similar a Debian (especificando entradas relevantes en /etc/crypttab y /etec/fstab)?

Respuesta1

La siguiente entrada /etc/crypttab es cómo lo harías en Ubuntu:

# <target name>  <source device>                      <key file>    <options>
cfs              /var/file-with-encrypted-filesystem  /dev/urandom  tmp=ext4

Muy similar a cómo se maneja el intercambio cifrado; consulte el ejemplo de la página de manual de crypttab a continuación:

# Encrypted swap device
cswap /dev/sda6 /dev/urandom cipher=aes-cbc-essiv:sha256,hash=ripemd160,size=256,swap

¿La página de manual de CentOS para crypttab proporciona alguna orientación para hacer esto? No tengo una máquina CentOS en este momento, pero en una máquina RHEL 6 se admiten las mismas opciones.


Está bien, tenía curiosidad. Esto funciona y es un poco mejor. Ponlo en algún lugar como /etc/rc.local. Probado en RH 6:

LODEV=$(losetup -f)
losetup $LODEV /path/to/existing/cryptfile
cryptsetup create cfs $LODEV --key-file /dev/urandom
mkfs.ext2 /dev/mapper/cfs 
mount /dev/mapper/cfs /wherever

información relacionada