¿Cómo cifrar y descifrar mejor un directorio a través de la línea de comandos o script?

8

Tengo un directorio de archivos de texto bajo control de versiones de bazar y guardo una copia (una rama, en realidad) en cada una de mis máquinas. Quiero encriptar y desencriptar el directorio a través de la línea de comando.

Idealmente, también podría ejecutar un script al cerrar sesión para verificar si el directorio está encriptado y encriptarlo si no, todo sin la intervención del usuario. Sin embargo, no quiero que el directorio se descifre al iniciar sesión. (Quiero que el script sea una protección contra el olvido de cifrar manualmente. Esto es especialmente importante para el netbook).

Estoy ejecutando ubuntu 10.04.1y dos versiones de crunchbang linux, una derivada ubuntu 9.04de una de las instantáneas de finales de junio de los repositorios de Debian Squeeze.

¿Cuál es la mejor manera de hacer esto?

(Traté de etiquetar con encryptiony directories, pero no tengo el representante para crear una etiqueta).

Vanden
fuente

Respuestas:

5

¿Tiene acceso administrativo a las máquinas? Se podría usar un dispositivo de bucle encriptado. Ejemplo:

crea un archivo contenedor para el fs cifrado:

dd if=/dev/urandom of=container bs=1024k count=100 

enlazar archivo contenedor al dispositivo de bucle invertido 0:

losetup container /dev/loop0

crear dispositivo cifrado (-y solicita la frase de contraseña dos veces; línea dividida por \):

cryptsetup -c serpent-xts-essiv:sha256 -b 512 \
   -y create container /dev/loop0 

cree el sistema de archivos ext2 en un dispositivo encriptado (puede usar cualquier cosa realmente):

mkfs.ext2 /dev/mapper/container

monta el sistema de archivos cifrados en el directorio de la cripta:

mount /dev/mapper/container crypt

Para referencia:

man cryptsetup && man losetup

Además, lea sobre las mejores prácticas de criptografía, para obtener información sobre cómo elegir el cifrado y las longitudes de clave para usar, etc.

dsp
fuente
4

Parece que lo que busca no es una forma de cifrar y descifrar directorios, sino una forma de trabajar con almacenamiento cifrado de forma transparente. Tenga en cuenta que el esquema que propone, con descifrado y cifrado masivo real, no es muy seguro: deja las cosas sin cifrar si no cierra la sesión normalmente (falla de energía, falla del sistema, computadora portátil robada ...); y deja rastros de sus datos confidenciales que un atacante determinado podría encontrar (los datos de los archivos borrados todavía están en el disco, es difícil de encontrar).

Los sistemas Linux actuales ofrecen varias formas de lograr un cifrado transparente. Puede encriptar un volumen completo con dm-crypt o una de sus alternativas. Hay varias herramientas disponibles para encriptar un árbol de directorios específico, incluyendo ecryptfs (que funciona a nivel del núcleo) y encfs (que funciona únicamente en el país de los usuarios a través de un fusible). (Los tres que menciono están disponibles en Debian Lenny y deberían ser ofrecidos por todas sus distribuciones).

Puede configurar los directorios cifrados para que se monten cuando inicie sesión ya sea a través de PAM ( libpam-mountpaquete; opción recomendada para ecryptfs) o mediante los scripts de perfil (opción recomendada para encfs). Tenga en cuenta que no hay ningún problema con "olvidarse de cifrar manualmente" ya que nunca se escribe nada sin cifrar en el disco.

Para una mejor protección, debe cifrar no solo sus archivos confidenciales, sino también otros lugares donde los programas puedan almacenar datos confidenciales. Al menos, debe cifrar su partición de intercambio. Otros lugares para mirar incluyen /tmp(mejor resuelto al hacerlo tmpfs), /var/spool/cupssi imprime documentos confidenciales y archivos por aplicación en su directorio de inicio, tales cachés / historiales web (por ejemplo ~/.mozilla).

Gilles 'SO- deja de ser malvado'
fuente
3

¿Qué tal usar gpgdir ? Esto debe ser programable para iniciar y cerrar sesión. También puede seleccionar subdirectorios que se supone que están encriptados (es posible que desee que los archivos .bash_rcpermanezcan desencriptados, por ejemplo).

Otra alternativa puede ser Truecrypt . Puede crear un contenedor para sus datos y cifrarlos / descifrarlos mediante scripts de shell.

Bran el bendito
fuente
2

También podría usar ecryptfs, que es estándar en Ubuntu y sus distribuciones derivadas. Eso es lo que se usa cuando el proceso de instalación le pregunta si desea cifrar su directorio de inicio (http://www.linuxjournal.com/article/9400). La ventaja de ecryptfs es que no necesita una partición separada o un archivo montado en loopback para usarlo.

Luc Stepniewski
fuente