Jump to content

Cifrando directorios con eCryptfs


khany
 Share
Followers 2

Recommended Posts

Manual por Elmohino

___________________________________________________

 

eCryptfs es una aplicación por línea de comandos que permite el cifrado a 256 bits de directorios en GNU/Linux. Es posible crear directorios de cifrado y descifrado manual y automático (al iniciar/cerrar la sesión del usuario). También es capaz de cifrar todo el directorio del usuario y la memoria de intercambio swap.

 

- I N S T A L A C I Ó N:

sudo apt-get install ecryptfs cryptsetup

- U S O:

 

# CREAR DIRECTORIO DE CIFRADO '~/Private/' (se descifra y cifra automáticamente al iniciar y cerrar sesión):

 

- Ejecutar el asistente de creación de directorio cifrado:

ecryptfs-setup-private

- Primero se solicita la contraseña de usuario:

Enter your login passphrase: 

- A continuación se solicita introducir la contraseña de cifrado y montaje deseada:

Enter your mount passphrase [leave blank to generate one]:

 

- Seguidamente vuelve a solicitar la contraseña de cifrado y montaje:

Enter your mount passphrase (again): 

- Se crearán los directorios ocultos '~/.ecryptfs/' y '~/.Private/ y el directorio visible '~/Private'

 

- Cerrar sesión de usuario o reiniciar el sistema

 

- Guardar en el directorio visible '~/Private/' todos los directorios y ficheros que se quiera protejer cifrándolos (cortando y pegándolos). Si un directorio o fichero pertenecen a una aplicación que esté actualmente ejecutándose, cerrar dicha aplicación antes de cortar y pegar

 

- Para cada directorio o fichero que haya sido movido a '~/Private/' hay que crear un enlace directo simbólico en el mismo lugar donde se encontraba originalmente y con el mismo nombre. Ejemplo:


$ ln -s ~/Private/.thunderbird ~/.thunderbird

$ ln -s ~/Private/Música ~/Música

- Para desmontar y cifrar el directorio '~/Private/' durante la sesión de usuario:

ecryptfs-umount-private

- Para volver a montar y descifrar el directorio '~/Private/' (solicitará la contraseña de usuario):

 ecryptfs-mount-private

- Para impedir que el directorio '~/Private/' se monte y descifre automáticamente al inicio de sesión simplemente borrar el archivo '~/.ecryptfs/auto-mount'

 

- Para volver a habilitar el montaje y descifrado automático al inicio de sesión simplemente crear un archivo vacío llamado "auto-mount" dentro del directorio '~/.ecryptfs/'

 

- Para desproteger de nuevo directorios o ficheros, simplemente borrar los enlaces directos simbólicos, cortar los directorios y ficheros de '~/Private/' y pegarlos en sus lugares originales

 

- Para eliminar los directorios ocultos '~/.ecryptfs/' y '~/.Private/ y el directorio visible '~/Private' desmontar el directorio '~/.Private/' de la siguiente manera:

 

sudo umount ~/.Private

- Y a continuación ya se pueden borrar los 3 directorios referidos

 

# CREAR DIRECTORIO DE CIFRADO (se cifra y descifra manualmente):

 

- Crear un nuevo directorio. Ejemplo:

mkdir ~/Privado

- Iniciar primer montaje y asistente de cifrado:

 

$ sudo mount -t ecryptfs ~/Privado ~/Privado

Passphrase: [iNTRODUCIR AQUÍ LA CONTRASEÑA DESEADA PARA MONTAR Y DESCIFRAR]

 

Select cipher:

 

1) aes: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)

 

2) blowfish: blocksize = 16; min keysize = 16; max keysize = 56 (not loaded)

 

3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24 (not loaded)

 

4) twofish: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)

 

5) cast6: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)

 

6) cast5: blocksize = 8; min keysize = 5; max keysize = 16 (not loaded)

 

Selection [aes]:

 

Select key bytes:

 

1) 16

 

2) 32

 

3) 24

 

Selection [16]: 32

 

Enable plaintext passthrough (y/n) [n]:

 

Enable filename encryption (y/n) [n]:

 

Attempting to mount with the following options:

 

ecryptfs_unlink_sigs

 

ecryptfs_key_bytes=32

 

ecryptfs_cipher=aes

 

ecryptfs_sig=79d78a9afb5ebc95

 

WARNING: Based on the contents of [/root/.ecryptfs/sig-cache.txt],

 

it looks like you have never mounted with this key

 

before. This could mean that you have typed your

 

passphrase wrong.

 

Would you like to proceed with the mount (yes/no)? : yes

 

Would you like to proceed with the mount (yes/no)? : yes

 

Would you like to append sig [79d78a9afb5ebc95] to

 

[/root/.ecryptfs/sig-cache.txt]

 

in order to avoid this warning in the future (yes/no)? : yes

 

Successfully appended new sig to user sig cache file

 

Mounted eCryptfs

 

 

- A partir de ahora el directorio del ejemplo (~/Privado) queda montado y sin cifrado y ya puede usarse para guardar otros directorios y ficheros

 

- Para desmontar y cifrar el directorio del ejemplo, ejecutar:

sudo umount ~/Privado

- A partir de ese momento se puede acceder al directorio y a sus subdirectorios; se pueden ver los ficheros, pero NO pueden abrirse

 

# CIFRAR PARTICIÓN swap:

 

***NOTA: el cifrado de la memoria de intercambio swap (si existe) es esencial en un sistema que usa eCryptfs. La memoria de intercambio puede guardar temporalmente archivos que al escribirlos de nuevo en el disco duro pueden quedar sin cifrar

***NOTA: cifrar swap deshabilita la hibernación del sistema

- Ejecutar ecryptfs:

sudo ecryptfs-setup-swap

 

- A partir de ese momento la memoria swap queda cifrada y se descifrará automáticamente en cada inicio de sesión

 

# CIFRAR TODO EL DIRECTORIO DEL USUARIO (se descifra y cifra automáticamente al iniciar y cerrar sesión):

***ATENCIÓN: durante el proceso de cifrado se crea una copia completa de seguridad del directorio del usuario en el directorio nuevo '/home/[usuario].xxxxxxxx/', lo cual significa que se dobla el tamaño de datos presentes en el sistema. Esto podría dar poblemas por falta de espacio.

 

- El proceso de cifrado debe realizarse CERRANDO la sesión del usuario e iniciarla como administrador (root). Para ello, primeramente debe de asignarse una contraseña a root:

sudo passwd root

 

- Una vez asignada la contraseña del administrador, CERRAR (que no cambiar) la sesión del usuario

 

- En la pantalla de inicio de sesión seleccionar "Otros"

 

- Como nombre de usuario escribir "root" (sin comillas)

 

- En Contraseña la contraseña que se configuró anteriormente para root

 

- Una vez iniciada la sesión como administrador ejecutar en un Terminal:

# ecryptfs-migrate-home -u [nombre_del_usuario]- Comenzará el proceso de cifrado
 
- Si todo ha ido bien aparecerá un mensaje similar al siguiente:
 

================================================== ======================
Some Important Notes!
1. The file encryption appears to have completed successfully, however,
test MUST LOGIN IMMEDIATELY, _BEFORE_THE_NEXT_REBOOT_,
TO COMPLETE THE MIGRATION!!!
2. If test can log in and read and write their files, then the migration is complete,
and you should remove /home/user.7y3X0vjM.
Otherwise, restore /home/user.7y3X0vjM back to /home/test.
3. user should also run 'ecryptfs-unwrap-passphrase' and record
their randomly generated mount passphrase as soon as possible.
4. To ensure the integrity of all encrypted data on this system, you
should also encrypted swap space with 'ecryptfs-setup-swap'.
================================================== ====================== 

 
- IMPORTANTE: cerrar la sesión como administrador e iniciarla como usuario ANTES de reiniciar el sistema para que el proceso de cifrado se complete
 
- Una vez iniciada la sesión del usuario y comprobado que no hay fallos en el acceso, lectura y grabación del directorio del usuario, se puede proceder a borrar la copia de seguridad. Debe realizarse en un Terminal de la siguiente manera:
sudo rm -r /home/[usuario].xxxxxxxx- En caso que el proceso no haya sido satisfactorio, sustituir el contenido que hay DENTRO del directorio del usuario por el que hay DENTRO del directorio de copia de seguridad
 
# DESCIFRAR DIRECTORIO CIFRADO '~/Private/' DESDE UN LIVE-CD O LIVE-USB:
 
- Ejecutar ecryptfs:
sudo ecryptfs-add-passphrase --fnek
***NOTA: si se ha olvidado la contraseña de cifrado y montaje proceder de la siguiente manera:
- Ir con un terminal al directorio donde se encuentra el subdirectorio oculto '/.ecryptfs/' y ejecutar:
sudo chmod 777 -R .ecryptfs- A continuación ejecutar en el mismo terminal:
ecryptfs-unwrap-passphrase .ecryptfs/wrapped-passphrase [contraseña_usuario]
- Se obtendrán dos líneas de información. Ejemplo:
 
Inserted auth tok with sig [9986ad986f986af7] into the user session keyring
 
Inserted auth tok with sig [76a9f69af69a86fa] into the user session keyring 
 
- El código que hay entre corchetes en la segunda línea se necesitará más adelante
 
- Ir con un terminal al directorio donde se encuentra el subdirectorio oculto '/.Private/' y crear un nuevo subdirectorio. Ejemplo:
sudo mkdir SUBDIRECTORIO
- Seguidamente, en el mismo terminal, ejecutar:
sudo chmod 777 -R Private SUBDIRECTORIO
 
- Montar '~/.Private/' en el subdirectorio creado. Ejemplo:
 
$ sudo mount -t ecryptfs /media/[partición]/home/[usuario]/.Private /media/[partición]/home/[usuario]/SUBDIRECTORIO
Passphrase: [INTRODUCIR AQUÍ DE NUEVO LA CONTRASEÑA DE CIFRADO Y MONTAJE]
 
Select cipher: 
 
1) aes: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
 
2) blowfish: blocksize = 16; min keysize = 16; max keysize = 56 (not loaded)
 
3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24 (not loaded)
 
4) twofish: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
 
5) cast6: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
 
6) cast5: blocksize = 8; min keysize = 5; max keysize = 16 (not loaded)
 
Selection [aes]: 
 
Select key bytes: 
 
1) 16
 
2) 32
 
3) 24
 
Selection [16]: 
 
Enable plaintext passthrough (y/n) [n]: 
 
Enable filename encryption (y/n) [n]: y
 
Filename Encryption Key (FNEK) Signature [198af172b879bb21]: [INTRODUCIR AQUÍ EL CÓDIGO ENTRE CORCHETES ANTERIORMENTE OBTENIDO (sin los corchetes)]
 
Attempting to mount with the following options:
 
ecryptfs_unlink_sigs
 
ecryptfs_fnek_sig=6703ba6b1d20b56e
 
ecryptfs_key_bytes=16
 
ecryptfs_cipher=aes
 
ecryptfs_sig=198af172b879bb21
 
WARNING: Based on the contents of [/root/.ecryptfs/sig-cache.txt],
 
it looks like you have never mounted with this key 
 
before. This could mean that you have typed your 
 
passphrase wrong.
 
Would you like to proceed with the mount (yes/no)? : yes
 
Would you like to append sig [198af172b879bb21] to
 
[/root/.ecryptfs/sig-cache.txt] 
 
in order to avoid this warning in the future (yes/no)? : yes
 
Successfully appended new sig to user sig cache file
 
Mounted eCryptfs 

 
- A partir de ahora ya es posible ver el contenido descifrado de '/Private/' en '/SUBDIRECTORIO/'
 
- Para volver a ocultar el contenido de '/Private/' desmontar el subdirectorio. Ejemplo:
sudo umount /media/[partición]/home/[usuario]/SUBDIRECTORIO
***NOTA: para volver a montar y descifrar '/Private/' hay que repetir todo el proceso anterior
 
# DESCIFRAR DIRECTORIO CIFRADO '~/.Private/' QUE CONTIENE TODO EL DIRECTORIO DEL USUARIO DESDE UN LIVE-CD O LIVE-USB:
 
- Ejecutar ecryptfs:
sudo ecryptfs-add-passphrase --fnek
***NOTA: si se ha olvidado la contraseña de cifrado y montaje proceder de la siguiente manera:
 
- Ir con un terminal al directorio '/media/[partición]/home/.ecryptfs/[usuario]/' y ejecutar:
sudo chmod 777 -R .ecryptfs- A continuación ejecutar en el mismo terminal:
ecryptfs-unwrap-passphrase .ecryptfs/wrapped-passphrase [contraseña_usuario]
- Se obtendrán dos líneas de información. Ejemplo:
 
Inserted auth tok with sig [9986ad986f986af7] into the user session keyring
 
Inserted auth tok with sig [76a9f69af69a86fa] into the user session keyring 
- El código que hay entre corchetes en la segunda línea se necesitará más adelante
 
- Ir con un terminal al directorio '/media/[partición]/home/.ecryptfs/[usuario]/' y crear un nuevo subdirectorio. Ejemplo:
sudo mkdir SUBDIRECTORIO
- Seguidamente, en el mismo terminal, ejecutar:
sudo chmod 777 -R .Private SUBDIRECTORIO
- Montar '/media/[partición]/home/.ecryptfs/[usuario]/.Private/' en el subdirectorio creado. Ejemplo:
 
$ sudo mount -t ecryptfs /media/[partición]/home/.ecryptfs/[usuario]/.Private /media/[partición]/home/.ecryptfs/[usuario]/SUBDIRECTORIO
Passphrase: [iNTRODUCIR AQUÍ DE NUEVO LA CONTRASEÑA DE CIFRADO Y MONTAJE]
 
Select cipher: 
 
1) aes: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
 
2) blowfish: blocksize = 16; min keysize = 16; max keysize = 56 (not loaded)
 
3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24 (not loaded)
 
4) twofish: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
 
5) cast6: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
 
6) cast5: blocksize = 8; min keysize = 5; max keysize = 16 (not loaded)
 
Selection [aes]: 
 
Select key bytes: 
 
1) 16
 
2) 32
 
3) 24
 
Selection [16]: 
 
Enable plaintext passthrough (y/n) [n]: 
 
Enable filename encryption (y/n) [n]: y
 
Filename Encryption Key (FNEK) Signature [198af172b879bb21]: [iNTRODUCIR AQUÍ EL CÓDIGO ENTRE CORCHETES ANTERIORMENTE OBTENIDO (sin los corchetes)]
 
Attempting to mount with the following options:
 
ecryptfs_unlink_sigs
 
ecryptfs_fnek_sig=6703ba6b1d20b56e
 
ecryptfs_key_bytes=16
 
ecryptfs_cipher=aes
 
ecryptfs_sig=198af172b879bb21
 
WARNING: Based on the contents of [/root/.ecryptfs/sig-cache.txt],
 
it looks like you have never mounted with this key 
 
before. This could mean that you have typed your 
 
passphrase wrong.
 
Would you like to proceed with the mount (yes/no)? : yes
 
Would you like to append sig [198af172b879bb21] to
 
[/root/.ecryptfs/sig-cache.txt] 
 
in order to avoid this warning in the future (yes/no)? : yes
 
Successfully appended new sig to user sig cache file
 
Mounted eCryptfs 

Link to post
Share on other sites
  • 4 years later...

Muy interesante, me hacia falta cifrar unas carpetas de mi SSD y use este procedimiento ¿En teoría debería descifrar al encender el equipo y cifrar al apagarlo el solo?

 

Después de instalarlo y añadir na carpeta a Private al apagar me da un error "error unmounting /home" al apagar.

 

Saludos y gracias por la información.

Link to post
Share on other sites

En mi 14.04 no me sale el ecryptfs es solo para nuevos o hay que meter ppa?

 

Gracias por compartir.

Edited by portaro
Link to post
Share on other sites

 

En mi 14.04 no me sale el ecryptfs es solo para nuevos o hay que meter ppa?

 

Gracias por compartir.

 

 

 

El paquete se llama ecryptfs-utils esta en los repositorios, yo tengo xubuntu 14.04 y esta hay.

 

Lo mismo en Debian Testing.

Link to post
Share on other sites

El paquete se llama ecryptfs-utils esta en los repositorios, yo tengo xubuntu 14.04 y esta hay.

Gracias por lo que veo ahora ya los tengo instalados asi que ya los tenia .

 

Gracias por ayudarme.

Edited by portaro
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share
×
×
  • Create New...