Subsecciones
El cifrado que se usa en el proceso de instalación es un cifrado de disco completo (Full disk encryption, FDE)
- Se cifran todos los bits del disco o de la partición
- Es diferente del cifrado a nivel de sistema de ficheros (Filesystem-level encryption, FLE) en el que se cifra el contenido de los ficheros, no los metadatos (nombre del fichero, fechas de modificación, etc.).
El subsistema de cifrado FDE en Linux 2.6 es dm-crypt
- Parte de la infraestructura device mapper, utilizada también en LVM2 o RAID software, y puede colocarse por encima de estos
- Permite cifrar discos completos, particiones, volúmenes lógicos o volúmenes RAI software
- Comando básico: cryptsetup
- Permite utilizar el estándar LUKS
(Linux Unified Key Setup)
- Fichero /etc/crypttab: indica en el arranque como descifrar los discos
Estándar para cifrado de disco en Linux
- Facilita la compatibilidad entre distribuciones
- Incluye soporte para múltiples claves
- Revocación de contraseña efectiva
- Uso mediante el comando cryptsetup, con dm-crypt como backend
Comando básico para el cifrado de disco
- Puede cifrar con o sin LUKS
- LUKS no permite cifrado con clave aleatoria, generada a partir de /dev/random o /dev/urandom5
Ejemplos de uso:
- Cifrar y activar una partición usando formato LUKS y una contraseña como clave (todos los datos se pierden y debemos reinicir el filesystem)
# Para mayor seguridad, desmonta y sobreescribe
# la partición (puede ser muy lento)
umount /dev/hda8
dd if=/dev/urandom of=/dev/hda8
# Formatea la partición, cifrando con LUKS
cryptsetup luksFormat /dev/hda8
# Activa la partición, en el
# dispositivo /dev/mapper/hda8_crypt
cryptsetup luksOpen /dev/hda8 hda8_crypt
# Reinicia el sistema de ficheros
mkfs -t fstipo /dev/mapper/hda8_crypt
# Obtiene el UUID luks
crypsetup luksUUID /dev/hda8
- Cifrar una partición de swap usando /dev/urandom como clave aleatoria (sin usar LUKS)
cryptsetup create hda7_crypt /dev/hda7 --key-file /dev/urandom
- Usar un fichero de clave para una partición cifrada inicialmente con contraseña, eliminando la contraseña inicial
# Crea un fichero aleatorio para usar como clave
dd if=/dev/urandom of=/etc/keys/hda6.luks bs=1 count=4096
# Cambia los permisos del fichero (debe ser de root)
chown root.root /etc/keys/hda6.luks
chmod 700 /etc/keys
chmod 400 /etc/keys/hda6.luks
# Añade el fichero hda6.luks como clave
cryptsetup luksAddKey /dev/hda6 /etc/keys/hda6.luks
# Comprueba que existen dos claves (slots)
cryptsetup luksDump /dev/hda6
# Borra el slot 0 con la clave original
# (impide usar esa clave, hacerlo solo después de comprobar que el fichero luks funciona como clave)
cryptsetup luksKillSlot /dev/hda6 0 -key-file /etc/keys/hda6.luks
# Comprueba que el slot se ha borrado
cryptsetup luksDump /dev/mapper/hda6_crypt
# Por último, modifica el fichero crypttab para indicar que se use el fichero luks
- Extiende el dispositivo cifrado GV-homelv_crypt, después de haber extendido el volumen lógico sobre el que está definido
# cryptsetup resize /dev/mapper/GV-homelv_crypt
Especifica en el arranque como se deben descifrar los discos
Ejemplo:
#<cifrado> <original> <fichero clave> <opciones>
hda7_crypt /dev/hda7 /dev/urandom cipher=aes-cbc-essiv:sha256,size=256,swap
hda8_crypt /dev/hda8 none luks
hda6_crypt /dev/hda6 /etc/keys/hda6.luks luks
- Línea 1
- área de swap con cifrado aleatorio
- Línea 2
- partición con cifrado LUKS; none indica que se pide una contraseña en el arranque
- Línea 3
- partición con cifrado LUKS y clave obtenida desde fichero
Para evitar problemas (posibles cambios en el nombre de las particiones), es preferible substituir el nombre del dispositivo original por su UUID obtenido usando crypsetup luksUUID
# cryptsetup luksUUID /dev/hda8
0e44dcc3-2b1f-4349-9fb3-db82b547acd1
# cat /etc/crypttab
.....
hda8_crypt UUID=0e44dcc3-2b1f-4349-9fb3-db82b547acd1 none luks
.....
Administración de Sistemas e Redes <ASR.USC[at]gmail.com>
Tomás Fernández Pena <tf.pena[at]usc.es>
Última actualización: 19-10-15 11:23 por tomas
Curso de Administración de Sistemas y Redes por Tomás Fernández Pena se distribuye bajo la licencia Creative Commons Recoñecemento-Compartir baixo a mesma licenza. 3.0 España.
Trabajo original en persoal.citius.usc.es/tf.pena/ASR.