LUKS – Encriptando discos duros en Linux

LUKS es un estándar para el encriptado de discos en Linux. A diferencia de otras soluciones, LUKS almacena la configuración necesaria en las cabecera de las particiones, lo que nos permite llevarnos los discos a otro sistema facilmente.
Voy a detallar brevemente como preparar un disco encriptado con LUKS, utilizando Debian 6.

1) Instalar cryptsetup-luks

# apt-get install cryptsetup

Comprobar que nuestro kernel tiene cargado el módulo dm-crypt:

# lsmod | grep dm_cry

Si no es así lo tendremos que cargar con modprobe.

2) Preparar disco
En mi caso voy a utilizar un disco duro externo (sde), podemos ver que actualmente tiene una única partición:

# fdisk -l /dev/sde
Disco /dev/sde: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000abcce

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sde1 1 182401 1465136001 83 Linux

Una buena práctica antes de encriptar un disco, sobre todo si este no es nuevo, es comprobar que funciona perfectamente y no tiene bloques erroneos. Para ello podemos usar la utilidad badblocks:

# badblocks -s -w /dev/sde1 -b 4096

Tener en cuenta que esta operación tarda varias horas.

3) Encriptar el filesystem

# cryptsetup luksFormat /dev/sde1

Podemos comprobar la cabecera luck con:

# cryptsetup -v luksDump /dev/sde1
LUKS header information for /dev/sde1
Version: 1
Cipher name: aes
Cipher mode: cbc-essiv:sha256
Hash spec: sha1
Payload offset: 2056
MK bits: 256

4) Formatear partición

# mkfs.ext3 /dev/mapper/cryptvol01
# tune2fs -i 0 -c 0 /dev/mapper/cryptvol01

5) Montar/desmontar volumen
Para montar el volumen a mano:

# mkdir /mnt/cryptvol01
# cryptsetup luksOpen /dev/sde1 cryptvol01
# mount /dev/mapper/cryptvol01 /mnt/cryptvol01

Y para desmontarlo:

# umount /mnt/cryptvol01
# cryptsetup luksClose /dev/mapper/cryptvol01

Documentación:
http://code.google.com/p/cryptsetup/
http://rm-rf.es/encriptar-un-filesystem-con-luks-y-cryptsetup/
http://wasesores.com/cifrar-discos-o-particiones-en-linux-ubuntu/
http://chernando.eu/seguridad/cifrando-una-particion-con-cryptsetup/

Advertisements

Primeros pasos con Solaris

Bueno he conseguido hace unos dias una vieja Sun Ultra 10, con procesador sparc 440 MHz y 512 MB, con la que quiero ir metiendome en el mundillo de solaris.

Instalación

Durante la instalación de solaris se configura la ip, mascara de subred y puerta de enlace, pero no se configuran servidores dns. Esto lo he tenido que configurar a mano retocando el archivo /etc/nsswitch.conf (#cp /etc/nsswitch.dns /etc/nsswitch.conf) y creando el fichero /etc/resolv.conf con la linea nameserver xxx.xxx.xxx.xxx indicando asi el servidor o servidores dns a utilizar para resolver los nombres de dominio.

Añadir un usuario

# useradd -d /export/home/usuario -m -s /bin/bash usuario
# passwd usuario

Retocando el shell

Por defecto Solaris no utiliza bash como shell, si no sh. Para cambiarlo hay que editar el archivo /etc/passwd y cambiar en la linea de root: la ruta /sbin/sh por /bin/bash

También he modificado el promt de sistema añadiendo las siguientes lineas a ‘/etc/profile’, para que muestre el usuario actual y el nombre de host al estilo Linux (root@ultra10:/#).

if [ $UID -eq 0 ]; then
PS1='\u@\h:\w# '
else
PS1='\u@\h:\w$ '
fi
export PS1
PAGER=less
export PAGER
alias dir="ls -l"

Añadir software OEM en la PATH
Con la instalación completa de Solaris 10, se intalan un monton de binarios extra conocidos como software OEM, entre ellos: gcc, gmake, wget. El problema es que estan en la ruta /usr/sfw/bin/ y esta no esta incluida en la PATH del sistema.
Lo que hago es redifinirla para todos los usuarios del sistema, añadiendo al final del fichero /etc/profile la siguiente linea:

PATH=$PATH:/usr/sfw/bin/

Apendice I) Configurar la red en Solaris 10
Podemos cambiar la ip y hostname editando directamente el archivo de configuración /etc/inet/hosts , o uno de sus enlaces simbólicos.
Pero la forma mas correcta y oficial es ejecutar sys-unconfig, este eliminará la configuración actual y reiniciará el servidor. Al arrancar aparecerá el asistente de configuración del idioma, locale, teclado, red, root; desde donde realizaremos toda la configuración. De la misma forma que cuando instalamos Solaris.

solaris_02

solaris_01

Actualizado 15/01/2009