truecrypt: cómo especificar el tipo de sistema de archivos desde la línea de comandos al crear un volumen

3

OS : Mint 12, 64 bit (kernel de Linux: 3.5.0-17)
versión truecrypt : 7.1a

Estoy usando Truecrypt en un script de automatización. Y quiero crear un volumen con el sistema de archivos Ext4. Pero parece que --filesystem La opción no puede hacer eso.

Cuando paso --filesystem=ext4 En el momento de la creación, no puedo montar el volumen. Dice "debe especificar el sistema de archivos" y cuando pase --filesystem Para montar el comando, me sale un error. En syslog decía:

EXT4-fs (dm-2): VFS: Can't find ext4 filesystem

Pero, cuando no paso el --filesystem Opción en el momento de la creación, me pide el sistema de archivos y puedo elegir Linux Ext4 y todo va bien.

Se que puedo pasar --filesystem=none y luego formatear el volumen más tarde, pero no es lo que quiero. (¿Dado que la secuencia de comandos no sabe qué dispositivo debería formatear? Quizás haya montados otros volúmenes truecrypt.)

Aidin
fuente

Respuestas:

2

Después de varias noches de trabajo en esto, finalmente encontré una secuencia confiable de comandos para crear y destruir volúmenes Truecrypt con formato ext4.

Llegué a este punto después de varios intentos de usar ambos Tumba y Truecrypt propiamente dicha antes de cambiar finalmente a la versión bifurcada de Truecrypt llamada tc-play

¿Por qué abandoné esas otras dos utilidades? Tumba, tuve problemas de fiabilidad con. Periódicamente, después de una operación de cambio de tamaño de la tumba, la herramienta se negó a aceptar la frase de contraseña que tenía asociada con las llaves de mi tumba. Podría haberlo arreglado finalmente, pero ¿quién quiere depurar los scripts ksh todo el día? :) Realmente me gusta el proyecto Tomb y espero que continúe teniendo éxito en el futuro.

Truecrypt propiamente dicho? No me gustó tener que confiar en los binarios proporcionados, especialmente porque había muchos informes en línea de personas que no pueden reproducir los mismos binarios con la misma fuente. Me alegra que haya una auditoría financiada con fondos públicos de ese código en progreso. Tampoco estaba dispuesto a confiar en mi propia compilación personalizada desde la fuente. Estoy creando un sistema de copia de seguridad aquí y no quería correr el riesgo de que dentro de 5 años necesitaría hacer una recompilación por alguna razón y quemar todo un fin de semana solo para construirlo con los compiladores actualizados del día. .

Para lo que vale, tc-play está incluido en el repositorio de apt en Ubuntu 13 (y probablemente en la mayoría de las otras distribuciones / versiones). Este código supone que los comandos se están ejecutando como una cuenta de usuario normal con los comandos de selección que se han incluido en la lista blanca a través de sudoers.

Nota final: Quería que todo esto fuera programable a pesar de que tc-play quiere una entrada de teclado interactivo para recopilar frases de contraseña. yo saber la incrustación de contraseñas en scripts generalmente es mala, pero todo mi sistema depende de que mi servidor de respaldo esté bloqueado de todos modos. Si alguien puede obtener la contraseña en el script, tengo más problemas de los que preocuparme.

Así que con todo ese preámbulo fuera del camino aquí están mis órdenes. Siéntase libre de copiar / pegar y sazonar al gusto. Comentarios bienvenidos y apreciados, si detecta algún problema o tiene alguna sugerencia:

export ARCHIVE=foo.tc
export SIZE_M=20
export PASSWORDBASE=superdupertopsecret
export CLOUD_DIR=/mnt/cloud/r3cgm/

# create archive
dd if=/dev/zero of=$CLOUD_DIR$ARCHIVE bs=1 count=0 seek=${SIZE_M}M

# find free loopback device
LOOPBACK_DEV=$(sudo losetup -f)

# associate loopback device with archive
sudo losetup $LOOPBACK_DEV $CLOUD_DIR$ARCHIVE

# to enable Expect debugging, add this:
# exp_internal 1

# encrypt loopback device
expect -c "spawn sudo tcplay -c -d $LOOPBACK_DEV -a whirlpool -b AES-256-XTS
set timeout 2
expect Passphrase
send $PASSWORDBASE$ARCHIVE\r
expect Repeat
send $PASSWORDBASE$ARCHIVE\r
expect proceed
send y\r
interact
"

# map loopback device with file container
# DEBUG: sometimes this needs to be run twice / fails the first time, why?
expect -c "spawn sudo tcplay -m $ARCHIVE -d $LOOPBACK_DEV
set timeout 1
expect Passphrase
send $PASSWORDBASE$ARCHIVE\r
expect eof
"

# format archive with ext4
sudo mkfs.ext4 /dev/mapper/$ARCHIVE

[[ -d "/mnt/$ARCHIVE" ]] || sudo mkdir /mnt/$ARCHIVE

# mount archive
sudo mount /dev/mapper/$ARCHIVE /mnt/$ARCHIVE


# UNDO


# unmount archive
sudo umount /mnt/$ARCHIVE

# remove volume
sudo dmsetup remove $ARCHIVE

# delete loopback device
sudo losetup -d $LOOPBACK_DEV

# remove the archive
# rm $CLOUD_DIR$ARCHIVE
r3cgm
fuente
Solo un rápido pensamiento de seguimiento ... ni Truecrypt ni tc-play son compatibles con la noción de redimensionar contenedores cifrados, por lo que no es justo compararlos directamente con Tomb. Me quito el sombrero ante los desarrolladores de Tomb por tener esta característica disponible. Es mucho más fácil cambiar el tamaño de un contenedor que tener que destruirlo y recrearlo (especialmente cuando estos contenedores se usan para copias de seguridad en la nube).
r3cgm