Encriptar el disco duro de tu portátil

Quizás sea demasiado paranoico, pero me gusta preocuparme por la seguridad de mis datos, sobre todo en las cosas que son fácilmente accesibles, como lo es todo lo que tiene que ver con las tecnologías de la información, y ahora que todo está en la red, que llevas tu portátil a todos lados y que en el guardas desde fotos (de gran valor sentimental) a documentos confidenciales, así como configuraciones de correo, y demás servicios de internet, los cuales quedan totalmente expuestos en el caso de que cualquier persona acceda a tu ordenador, con cualquier live cd te pueden robar toda tu información y en el peor de los casos (robo de portátil) tus datos quedan completamente a disposición del que se haga con tu ordenador.

La solución que yo propongo es la encriptación de las particiones /tmp, /home y swap de tu instalación Linux, por supuesto windows, y mac tienen también dichas opciones, sino me equivoco en Mac se llama FileVault y en Windows BitLocker, yo como usuario de Linux propongo utilizar LUKS que está soportada por el kernel.

Yo me basé en una publicación de Lars Strand en la cual explica el proceso para Ubuntu 9.04, yo lo voy a actualizar para Ubuntu 9.10 (es prácticamente idéntico) y voy a comentar mi experiencia en cada paso.

Lo primero es instalar los paquetes necesarios para llevar a cabo todas las acciones:

 

# sudo apt-get install lvm2 cryptsetup cryptmount libpam-mount

 

El “device-mapper” debería aparecer como activo:

 

pexi@xxxxx:~$ ls -l /dev/mapper/

total 0

crw-rw---- 1 root root 10, 59 2010-02-28 19:54 control

 

el soporte criptográfico debería estar activo:

 

# dmsetup targets | grep crypt

crypt v1.7.0

 

Si cumplimos con los prerrequisitos ya estamos listos para comenzar. Antes de nada comentar que la duración del proceso es directamente proporcional al tamaño de las particiones que se quieran encriptar.

 

Encriptando la “swap”:

 

Lo primero que hay que hacer es deshabilitar la partición de swap que se va a encriptar (en caso de que sea la misma).

 

# swapoff /dev/sda6 (si se usa lvm para swap, en vez de la partición se hace referencia al mapper del lv)

 

Ahora hay que rellenar dicha partición con datos aleatorios, para esto usamos la instrucción “dd”:

 

# dd if=/dev/urandom of=/dev/sda6 bs=1M

 

Este proceso tardó aproximadamente unos 20 minutos en mi portátil a una media de 3.6 Mbytes/seg para una partición de 4 Gbytes.

Una vez terminado el proceso hay que añadir la linea referente a la swap en el fichero de configuración “/etc/crypttab”, de forma que quede de la siguiente manera:

 

# cat /etc/crypttab | grep swap

cryptoswap /dev/sda6 /dev/urandom cipher=aes-cbc-essiv:sha256,size=256,hash=sha256,swap

 

De esta forma le estamos diciendo que cada vez que arranque encripte la partición swap con una semilla diferente.

 

Por último habría que modificar el fichero “/etc/fstab” para que hiciera referencia a la nueva partición/mapper destinado a swap.

 

cat /etc/fstab | grep swap

# swap was on /dev/sda6 during installation

/dev/mapper/cryptoswap swap swap sw 0 0

 

Si reiniciamos ahora el ordenador podemos comprobar como durante el proceso crea el sistema de ficheros encriptado para la swap, y cuando estamos dentro podemos ver el estado de la swap desde el fichero “/proc/swaps”, así como el estado del mapper cryptoswap (creado anteriormente) con la ayuda de la aplicación cryptsetup

 

# cat /proc/swaps

Filename Type Size Used Priority

/dev/mapper/cryptoswap partition 4192924 0 -1

 

# cryptsetup status cryptoswap

/dev/mapper/cryptoswap is active:

cipher: aes-cbc-essiv:sha256

keysize: 256 bits

device: /dev/sda6

offset: 0 sectors

size: 8385867 sectors

mode: read/write

 

Ahora le toca al directorio temporal /tmp:

 

Lo primero que hay que hacer es crear una partición parar el directorio temporal, yo he configurado mi portátil con lvm por lo que lo único que he hecho es crear un nuevo lvol en el espacio que tenía disponible, pero las instrucciones siguientes funcionan también bajo particiones normales.

 

Al igual que con la swap lo primero que hay que hacer es rellenar la partición bytes aleatorios:

 

En mi caso utilizo un lvol de 500 Mbytes:

 

--- Logical volume ---

LV Name /dev/vg_storage/lv_tmp

VG Name vg_storage

LV UUID H9xGKW-M2qC-5Owq-hpdP-BVlk-sADg-qVux1j

LV Write Access read/write

LV Status available

# open 1

LV Size 500,00 MB

Current LE 125

Segments 1

Allocation inherit

Read ahead sectors auto

- currently set to 256

Block device 252:0

 

# dd if=/dev/urandom of=/dev/vg_storage/lv_tmp

 

Mi partición es de 500 Mbytes y tardó 5 minutos en rellenarla.

 

Lo siguiente es rellenar el fichero de configuración con los datos de la nueva partición para /tmp

 

# cat /etc/crypttab | grep tmp

cryptotmp /dev/vg_storage/lv_tmp /dev/urandom cipher=aes-cbc-essiv:sha256,size=256,hash=sha256,tmp

 

La partición se creará cada vez que se arranque el sistema con una semilla de encriptación diferente al igual que la swap, es por ello que usamos el sistema de ficheros ext2.

 

Editamos el fichero fstab con los datos de la nueva partición para /tmp.

 

# cat /etc/fstab | grep tmp

/dev/mapper/cryptotmp /tmp ext2 defaults 0 0

 

Reiniciamos y comprobamos que la nueva partición se ha montado correctamente.

 

Encriptando la partición /home:

 

Mi partición es de de 121.90 Gbytes

 

--- Logical volume ---

LV Name /dev/vg_storage/lv_home

VG Name vg_storage

LV UUID FSE4LL-ot6l-I0hv-UOIP-Jyi2-hlIZ-d9bt33

LV Write Access read/write

LV Status available

# open 1

LV Size 121,90 GB

Current LE 31207

Segments 1

Allocation inherit

Read ahead sectors auto

- currently set to 256

Block device 252:1

 

Como hemos hecho anteirormente ahora toca rellenar la partición con datos aleatorios, en mi caso lo dejé por la tarde andando y a la mañana siguiente ya había terminado.

 

# dd if=/dev/urandom of=/dev/vg_storage/lv_home

 

Inizializamos la partición y establecemos la clave que servirá como semilla de encriptación:

 

# cryptsetup -c aes-cbc-essiv:sha256 -y -s 256 luksFormat /dev/vg_storage/lv_home

 

LA CLAVE INTRODUCIDA SERÁ DEFINITIVA, para que la unidad se monte automáticamente lo ideal es montarla al iniciar sesión y para eso es necesario que el usuario tenga la misma password que la establecida anteirormente.

 

Ahora mapeamos la unidad

 

# cryptsetup luksOpen /dev/vg_storage/lv_home cryptohome

 

Creamos el sistema de ficheros para poder utilizar la partición, recordemos que /tmp y la swap se crean en cada arranque.

 

# mkfs.ext4 -j -m 1 -O dir_index,filetype,sparse_super /dev/mapper/cryptohome

 

Ya tenemos la partición lista, para probarlo podemos hacerlo de la siguiente manera:

 

# cryptsetup luksClose cryptohome

# cryptsetup luksOpen /dev/vg_storage/lv_home cryptohome

Enter LUKS passphrase:

key slot 0 unlocked.

Command successful.

# mkdir -p /mnt/cryptohome

# mount /dev/mapper/cryptohome /mnt/cryptohome

# touch /mnt/cryptohome/testfile

# ls /mnt/cryptohome/

lost+found testfile

 

Ahora solo falta configurarlo para que se monte automáticamente cada vez que iniciamos sesión:

 

Antes de nada desmontamos la partición y cerramos el sistema encriptado.

 

# umount /mnt/cryptohome

# cryptsetup luksClose cryptohome

 

Lo siguiente a hacer es eliminar del fichero fstab la linea que hace referencia a la partición del /home, de manera que no intente montarla en el arranque.

 

Añadimos la siguiente linea en el fichero de configuración:

 

# cat /etc/crypttab | grep home

cryptohome /dev/vg_storage/lv_home noauto luks

 

Por último hay que configurar pam_mount de manera que monte la partición con la password del usuario.

 

# cat /etc/security/pam_mount.conf.xml | grep pexi

<volume user="usuario" fstype="crypt" path="particion/lvol" mountpoint="/home"/>

 

Reiniciamos y ya tenemos nuestro sistema encriptado.

 

Recordar que la primera vez no existirá la carpeta para nuestro usuario, por lo que entramos desde la terminal, y creamos el directorio para el usuario.

 

sudo mkdir /home/usuario

 

Seguidamente le asignamos los permisos para poder usarlo:

 

sudo chmod usuario:usuario -R /home/usuario

Fuente: 
joshiko
Imagen de joshiko
mola bastante, si te lo

mola bastante, si te lo curras con imagenes se podría poner en portada :)