Creé un contenedor cifrado a través de
#!/bin/bash
dd if=/dev/zero of=$1 bs=1 count=0 seek=$2
MAPPER=$(mktemp -up /dev/mapper)
LOOPDEV=$(losetup --find --show $1)
cryptsetup luksFormat $LOOPDEV
cryptsetup luksOpen $LOOPDEV $(basename $MAPPER)
mkfs.ext3 $MAPPER
cryptsetup luksClose $MAPPER
losetup -d $LOOPDEV
es decir, un archivo, por ejemplo, container
especificado para este script contendrá un sistema de archivos ext3 encriptado a través de cryptsetup luksFormat
.
Para montarlo, actualmente utilizo otro script, por ejemplo dm.mount container /mnt/decrypted
:
#!/bin/bash
set -e
MAPPER=$(mktemp -up /dev/mapper)
LOOPDEV=$(losetup --find --show $1)
cryptsetup luksOpen $LOOPDEV $(basename $MAPPER) || losetup -d $LOOPDEV
mount $MAPPER $2 || (
cryptsetup luksClose $MAPPER
losetup -d $LOOPDEV
)
y desmontarlo dm.umount /mnt/decrypted
:
#!/bin/bash
set -e
MAPPER=$(basename $(mount | grep $1 | gawk ' { print $1 } '))
LOOPDEV=$(cryptsetup status $MAPPER | grep device | gawk ' { print $2 } ')
umount $1
cryptsetup luksClose $MAPPER
losetup -d $LOOPDEV
Hay mucha redundancia y agarrar manualmente un dispositivo de bucle y un mapeador, ambos pueden permanecer en el anonimato. ¿Hay alguna manera de hacer algo como mount -o luks ~/container /mnt/decrypted
(solicitar la frase de contraseña) y umount /mnt/decrypted
la forma más fácil?
editar Básicamente estoy contento con mis scripts anteriores (aunque la comprobación de errores podría mejorarse ...), entonces
¿Cómo se
-o luks=~/container
puede implementar una opción de montaje similar al-o loop ~/loopfile
uso de los scripts que escribí?
¿Se puede lograr esto sin reescribir mount
? O alternativamente, ¿podría -t luks -o loop ~/container
implementarse?
fuente
mount
Respuestas:
De hecho, la modificación
mount
es posible, como aprendí de la existencia demount.ntfs-3g
. Solo estoy haciendo conjeturas, pero sospecho quemount -t sometype
resulta en una llamada amount.sometype $DEV $MOUNTPOINT $OPTIONS
, no dude en corregirme aquí o citar alguna documentación real. Especialmente la opción-o loop
ya está tratada, así que no hay necesidad delopsetup
más ...Enlace simbólico / cree el script de montaje como
/sbin/mount.crypto_LUKS
. Retire la parte del dispositivo de bucle y en su lugar solo use el-o loop
interruptor. Aquí está mi/sbin/mount.crypto_LUKS
:Ahora solo tengo que ejecutar
mount -o loop ~/container /mnt/decrypted
, ymount
me pedirá la contraseña y luego montará el contenedor, liberando automáticamente el dispositivo de bucle una vez que el contenedor esté cerrado. Si el sistema de archivos descifrado no se puede montar, el contenedor se cerrará nuevamente, pero puede modificarlo, por supuesto. O implemente algún análisis de opciones en lugar de pasarle todomount
.Esperaba que se pudiera lograr lo mismo a través de
/sbin/umount.luks
, peroumount /mnt/decrypted
(incluso con-t crypto_LUKS
) todavía solo se desmonta habitualmente, dejando el contenedor abierto. Si encuentra una manera deumount
llamar a midm.umount
script en su lugar, avíseme ... Por el momento, no se recomienda llamar directamente,umount
ya que tendrá que averiguar el/dev/mapper
nombre manualmentecryptsetup luksClose $MAPPER
. Al menos, el dispositivo de bucle se liberará automáticamente simount -o loop
se usó antes ...fuente
umount
, supongo que tendré que modificar la/etc/mtab
entrada de mimount.luks
tal que el tipo de sistema de archivos sea, por ejemplo, enluks.ext3
lugar deext3
.pam_mount, disponible en sourceforge , se entrega con un útil mount.crypto_LUKS y umount.crypto_LUKS que supera algunas de las deficiencias del script proporcionadas por el otro póster.
fuente