Cifrar la carpeta de usuario después de instalar en Ubuntu 14.04 LTS

Publicado por P. Ruiz en

Uno puede pensar que, usando una contraseña segura en nuestra cuenta de Ubuntu, estaremos evitando que otra persona acceda a los datos que tenemos guardados en el ordenador. Sin embargo, nada impide que alguien arranque el ordenador con un medio externo, por ejemplo un LiveCD o una memoria USB, y eluda el control del sistema operativo para acceder a los datos de nuestra cuenta.

Esta situación es particularmente delicada cuando hablamos de un ordenador portátil, que puede perderse o sustraerse, e implicar que la información que contiene nuestro disco quede en manos de desconocidos.

Una de las formas más sencillas de evitar esta situación consiste en cifrar, durante el proceso de instalación, la carpeta donde se guardan los archivos de la cuenta principal del sistema. Para lograrlo, sólo hay que marcar la opción que ilustra la imagen siguiente:

Marcando la opción Cifrar mi carpeta personal durante el proceso de instalación.

Al elegir esta opción, sufriremos un ligero descenso en el rendimiento del sistema, ya que hay que cifrar y descifrar cada archivo que utilicemos mientras trabajamos con esa cuenta. Sin embargo, habremos conseguido ponérselo realmente difícil a quien intente husmear en nuestros datos.

El problema surge cuando ya hemos instalado el sistema operativo y no hemos tenido en cuenta esta contingencia. En ese caso, tenemos dos opciones: volver a instalar el sistema operativo, o seguir las indicaciones que te incluimos en este artículo.

No olvides hacer una copia de seguridad de tus datos antes de comenzar.

Piensa que, aunque el proceso es muy sencillo, un contratiempo podría hacerte perder toda la información del equipo.

Si te inclinas por la segunda opción, aún necesitas dos requisitos más:

  • Disponer de un espacio equivalente a dos veces y media el que está ocupando actualmente la carpeta que quieres cifrar. Si no hay espacio suficiente, recibirás un error durante el proceso.
  • Trabajar con una cuenta de usuario diferente a la propietaria de la carpeta a cifrar. El motivo de esta segunda condición es que no podemos cifrar datos que estén siendo usados en ese momento por el sistema.

Con la primera condición no podremos ayudarte, porque dependerá del tamaño de tu disco y del volumen de información a procesar. Sin embargo, con la segunda opción ya lo hemos hecho, porque hace un tiempo te explicamos cómo Habilitar y deshabilitar la cuenta de root en Ubuntu 14.04 LTS.

De hecho, antes de continuar, será preciso que hayas seguido las indicaciones de ese artículo para que la cuenta root esté disponible en tu sistema. A continuación, llevaremos a cabo la tarea, que dividiremos en las siguientes etapas:

  • Instalar los componentes necesarios
  • Cifrar la carpeta del usuario
  • Cifrar el área de intercambio
  • Eliminar los datos temporales

Visto así, puedes pensar que intimida un poco, pero verás que todos los pasos son muy sencillos.

Instalar los componentes necesarios

Para comenzar, arrancamos el ordenador y, una vez nos encontremos en la pantalla de autenticación, en lugar de escribir la contraseña, pulsamos la combinación de teclas Alt + Ctrl + F1.

1

En la pantalla de autenticación pulsamos Alt + Ctrl + F1.

Para volver a la consola gráfica sólo tenemos que usar la combinación de teclas Alt + Ctrl + F7.

Al hacerlo, veremos que la interfaz gráfica desaparece y nos encontramos únicamente en una consola de texto.

A continuación, iniciaremos sesión con la cuenta root. Ten en cuenta que esto sólo funcionará si antes hemos seguido el artículo que mencionábamos más arriba para habilitar la cuenta del administrador.

2

Escribimos el nombre del usuario (root) y la contraseña que le hayamos asignado.

No hace falta incluir sudo porque ya estamos ejecutando las ordenes como root.

Una vez iniciada la sesión, debemos instalar las utilidades de cifrado que, probablemente, no se habrán incluido durante la instalación del sistema, porque no fueron necesarias.

Para lograrlo, comenzamos por actualizar la base de datos de paquetes del sistema, ejecutando la siguiente orden:

apt-get update

3

Escribimos la orden y pulsamos la tecla Intro.

Cuando finalice la actualización, estaremos listos para instalar las herramientas de cifrado. Algo tan sencillo como escribir la siguiente orden:

apt-get install ecryptfs-utils

4

De nuevo, escribimos la orden y pulsamos la tecla Intro.

Durante el proceso, nos mostrará la lista de paquetes que habrá que incluir para completar la instalación (imprescindibles, sugeridos y actualizados)

5

Continuaremos pulsando la tecla S o simplemente Intro, ya que éste es el valor predeterminado.

Una vez terminada la instalación, sólo nos queda reiniciar para poder comenzar la tarea. Para lograrlo, sólo tenemos que escribir la siguiente orden:

reboot

6

… Y pulsar la tecla Intro.

Cifrar la carpeta del usuario

Como antes, al completar el reinicio nos encontraremos en la pantalla de autenticación. En ella, volveremos a pulsar la combinación de teclas Alt + Ctrl + F1 y, en la consola de texto iniciaremos sesión con la cuenta root.

A continuación, comenzaremos la transformación de la carpeta escribiendo la siguiente orden:

ecryptfs-migrate-home -u usuario

Lógicamente, deberás cambiar la palabra usuario por el nombre de la cuenta a la que pertenece la carpeta que vamos a cifrar.

1

Escribimos la orden y pulsamos la tecla Intro.

A partir de aquí, el comando analizará el espacio ocupado por la carpeta que vamos a cifrar y el espacio libre en el disco (recuerda lo que dijimos al principio: se necesitan libres unas dos veces y media el tamaño de la carpeta).

También comprueba que, de los archivos contenidos en la carpeta, no se encuentre ninguno en uso en estos momentos.

Si todo es correcto, nos solicita la contraseña del la cuenta propietaria de la carpeta (en nuestro ejemplo usuario).

2

La escribimos y pulsamos la tecla Intro.

A partir de aquí, comienzan a aplicarse los cambios. Como cabe esperar, el tiempo que tarde estará en función de la cantidad y el tamaño de los archivos que haya en la carpeta y de la velocidad del ordenador que estamos empleando.

Si todo va bien, al final aparecen una serie de notas que debemos tener muy en cuenta (ver imagen siguiente):

  1. Que debemos iniciar sesión con la cuenta del usuario propietario de la carpeta de manera inmediata y, en cualquier caso, antes del próximo reinicio.
  2. Que, si toda la información se encuentra donde esperábamos, debemos borrar el archivo /home/usuario.a8EkfVdF (el nombre cambiará en función de tus datos particulares).
    Si algo ha ido mal, debemos restaurar el archivo /home/usuario.a8EkfVdF como /home/usuario.
  3. Que debemos ejecutar la orden
    ecryptfs-unwrap-passphrase

    y guardar cuanto antes la clave de montaje generada aleatoriamente.

  4. Por último, nos recomienda que cifremos también la partición de intercambio de la memoria virtual (swap). Algo que haremos un poco más abajo.

3

Leemos las notas de instalación.

Para iniciar sesión con la cuenta de usuario (punto 1 de la lista anterior), volveremos al entorno gráfico, para lo que únicamente debemos pulsar la combinación de teclas Alt + Ctrl + F7. ¡Bajo ningún concepto debemos reiniciar el equipo!

4

Escribimos la contraseña y pulsamos la tecla Intro.

Cuando se inicie la sesión, parecerá que no sucede nada. Sólo tenemos que esperar unos instantes hasta que aparezca una ventana como la de la imagen siguiente.

En ella, el sistema nos explica que, en condiciones normales, para acceder a la carpeta bastará con la contraseña del usuario, pero, si en algún momento necesitamos realizar una recuperación manual (por ejemplo si necesitamos arrancar desde un LiveCD) necesitaremos la contraseña segura que se ha generado de forma automáticamente.

Aquí podemos hacer dos cosas:

  1. Cerrar la ventana (botón Cerrar) y consultar la contraseña segura más adelante, como ya vimos más arriba, en el paso 3. Para lo que deberemos usar el siguiente comando:
    ecryptfs-unwrap-passphrase
  2. Hacer clic sobre el botón Ejecutar esta acción ahora y consultarla en este momento.

Aquí optaremos por lo segundo.

5

Hacemos clic sobre Ejecutar esta acción ahora.

Al hacerlo, aparecerá una ventana de terminal donde nos solicita una frase de paso (Passphrase). Se refiere a la contraseña del usuario con el que estamos trabajando.

6

La escribimos y pulsamos la tecla Intro.

El sistema nos responde con una clave de cifrado. Debemos copiarla y ponerla en un lugar seguro.

Si en el futuro no puedes arrancar el sistema operativo, esta contraseña de cifrado puede ser la única forma de acceder a tus datos.

Por otra parte, si la contraseña cae en manos de otra persona, ésta podría acceder a tus datos cifrados sin problemas.

Por lo tanto, te recomiendo que la trates con cautela.

7

Cuando estemos listos, pulsamos la tecla Intro.

Cifrar el área de intercambio

El área de intercambio para la memoria virtual, que en GNU/Linux suele crearse dentro de una partición especial llamada swap, contiene fragmentos de la memoria RAM que han sido descargados a disco para liberar espacio.

Esto quiere decir que alguien podría acceder a esta partición y obtener fragmentos de los archivos con los que hayamos estado trabajando recientemente, aunque dichos archivos se encuentren cifrados en nuestra carpeta personal.

La forma más rápida de abrir la ventana de terminal consiste en pulsar la combinación de teclas Alt + Control + T.

Para evitarlo, cuando elegimos la opción de cifrar la carpeta del usuario principal durante la instalación del sistema, Ubuntu cifra también la partición de intercambio. Parece lógico que, ahora que la hemos cifrado nosotros de forma manual, hagamos también lo mismo.

En cualquier caso, para lograrlo, sólo tenemos que abrir una nueva ventana de terminal y escribir la siguiente orden:

sudo ecryptfs-setup-swap

1

Como es habitual, el sistema nos pide la contraseña antes de ejecutarlo.

Un inconveniente de cifrar el área de intercambio es que la hibernación dejará de funcionar (una característica que, por otro lado, viene deshabilitada de forma predeterminada).

En cualquier caso, sí que podrás seguir suspendiendo el sistema, ya que esta característica no hace uso de la memoria de intercambio.

2

Si estamos conformes, pulsamos la tecla Y (de Yes) y después la tecla Intro.

Si todo va bien, poco después, recibiremos un mensaje informando de que el proceso se ha completado satisfactoriamente.

3

Ya podemos cerrar la ventana.

Eliminar los datos temporales

Después de reiniciar el sistema y comprobar que todo sigue funcionando satisfactoriamente, debemos realizar un poco de limpieza.

Para comenzar, por motivos de seguridad, en el directorio /home se ha mantenido una copia de los datos originales, sin cifrar, para que podamos recuperarlos en caso de necesidad. La carpeta tendrá el nombre de tu cuenta de usuario seguido de un punto y 8 caracteres aleatorios (en mi caso, usuario.a8EkfVdF).

1

Aquí vemos la carpeta con la información cifrada (usuario) y la carpeta con la información sin cifrar (usuario.a8EkfVdF).

Lógicamente, el siguiente paso será eliminar la carpeta con los datos sin cifrar, para evitar que sigan estando accesibles. Para lograrlo, podemos volver a abrir una ventana de terminal y ejecutar el siguiente comando:

sudo rm -rf /home/usuario.a8EkfVdF

Como es lógico, tendrás que cambiar el nombre de la carpeta por el que aparezca en tu sistema.

2

De nuevo, el sistema nos pide la contraseña de administración antes de ejecutarlo.

 

3

Inmediatamente después, la carpeta sin cifrar quedará definitivamente eliminada

Como último detalle a tener en cuenta, deberíamos volver a deshabilitar la cuenta de root, tal y como indicábamos en el artículo Habilitar y deshabilitar la cuenta de root en Ubuntu 14.04 LTS.

Comprobación final

Si quieres realizar una última comprobación, puedes arrancar el equipo con el disco de instalación de Ubuntu y tratar de acceder a la carpeta personal del usuario.

1

Verás que, realmente, no hay acceso.

… Y hasta aquí el artículo de hoy. Espero que te resulte útil.