A veces no es suficiente con proteger nuestro ordenador mediante configuraciones adecuadas, buenas contraseñas, firewalls, etc. sino que debemos ir un paso más allá e encriptar la información en nuestro disco duro. De esta forma, si alguien se hiciese con el y lo conectase a otro ordenador seria incapaz de extraer ningún tipo de información. Esto es especialmente interesante en el caso de los ordenadores portátiles, que pueden ser fácilmente sustraídos.
Por otro lado, es necesario poder combinar esa seguridad con comodidad para el usuario, el cual no quiere tener que recordar que debe cifrar unos datos determinados siguiendo una serie de pasos (por ejemplo utilizando gnupg). De ahí que la solución más acertada sea la creación de una partición encriptada, la cual se montará automáticamente al hacer login el usuario (la contraseña de la partición y la del usuario serán la misma).
Para este objetivo utilizaremos Luks, aplicación que es empleada para encriptación de memorias USB y otros dispositivos.
Contenido |
Lo primero que necesitamos es una partición en nuestro disco duro que esté disponible para guardar allí el directorio de nuestro usuario (ejemplo: /home/usuario”). Para ello podríamos utilizar Gparted desde el LiveCD de Ubuntu de forma que podamos redimensionar particiones existentes, crear nuevas particiones o lo que precisemos.
Una vez tengamos una partición disponible seguiremos los siguientes pasos:
sudo apt-get install cryptsetup libpam-mount initramfs-tools
sudo modprobe dm_crypt
sudo modprobe sha256
sudo modprobe aes_i586
/dev/hda6) y le asignamos un password (el cual debe ser igual al del usuario):
sudo luksformat -t ext3 /dev/hda6
Si nos da algún error extraño puede ser debido a que cuando nos pregunta si estamos seguros, debemos escribir YES en mayúsculas.
|
/tmp/crypthome:
sudo cryptsetup luksOpen /dev/hda6 crypthome
mkdir /tmp/crypthome && sudo mount /dev/mapper/crypthome /tmp/crypthome
/etc/security/pam_mount.conf y añadimos al final del archivo (indicando nuestro usuario y partición real):
volume usuario crypt - /dev/hda6 /home/usuario exec,fsck,nodev,nosuid - -
/etc/pam.d/login, /etc/pam.d/gdm y /etc/pam.d/ssh (si existe) para añadir al final:
@include common-pammount
sudo cp -avx /home/usuario/* /tmp/crypthome
sudo chown -R usuario:usuario /tmp/crypthome
sudo umount /tmp/crypthome
sudo cryptsetup luksClose crypthome
/home para eliminarlo más tarde (cuando hayamos comprobado que todo funciona correctamente):
cd
cd ..
sudo mv usuario usuario.old
sudo mkdir usuario
sudo chown usuario:usuario usuario
sudo shutdown -r now
A partir de ahora todos los datos que guardemos en nuestra partición de usuario estarán protegidos contra robos y accesos físicos directos. La partición se montará automáticamente al hacer login desde la pantalla de entrada al entorno gráfico, por consola o incluso por ssh.
De todas formas debemos ser conscientes de la importancia de tener una contraseña robusta (con números, símbolos, letras mayúsculas y minúsculas todo intercalado), dado que la carpeta raíz no está encriptada. Si alguien robase nuestro disco duro aún tendría acceso a /etc/shadow, lugar donde se almacenan las contraseñas (de forma encriptada), que podrían ser sometidas a un ataque de fuerza bruta con programas del estilo de john the ripper.
Una opción sería encriptar toda la partición raiz /, al gual que la memoria swap, de forma que obtendríamos un máximo nivel de seguridad. La única pega de esto es que se nos pedirá la contraseña justo después de cargarse el Grub, algo que en un sistema multiusuario puede llegar a ser incómodo.