A continuación explico como encriptar una partición. Para esto vamos a usar LUKS (Linux Unified Key Setup), es el estándar en Linux para encriptar discos duros y particiones, encriptaremos la partición y le asignaremos un punto de montaje.
Nota: Este procedimiento hace que se pierdan todos los datos de la partición a encriptar por lo que, si los necesitamos en el futuro, es necesario hacer una copia de dichos datos antes de prodeceder.
Dicho esto, podemos comenzar.
1. Descripción e instalación
Lo primero de todo es instalar los paquetes necesarios :
sudo apt-get install cryptsetup libpam-mount initramfs-tools
ver que partición queremos encriptar,
Nota: Los discos duros pueden ser divididos en uno o varios discos lógicos que llamamos particiones, estás particiones son anotadas en la tabla de particiones situada en el sector 0 del disco. Fdisk es usado para ver, crear o manipular dicha tabla de particiones.
sudo fdisk -l
Disco /dev/sda: 160.0 GB, 160041885696 bytes
255 cabezas, 63 sectores/pista, 19457 cilindros, 312581808 sectores en total
Unidades = sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico / físico): 512 bytes / 512 bytes
Tamaño E/S (mínimo/óptimo): 512 bytes / 512 bytes
Identificador del disco: 0x00038773
Dispositivo Inicio Comienzo Fin Bloques Id Sistema
/dev/sda1 30580736 139165695 54292480 83 Linux
/dev/sda2 * 2048 20340735 10169344 83 Linux
/dev/sda3 139167742 312580095 86706177 5 Extendida
/dev/sda4 20340736 30580735 5120000 83 Linux
si la partición a encriptar es un nuevo disco duro que no está en uso o , directamente, no está en uso, y no tenemos claro que dispositivo es , podemos usar el comando mount el cual nos informará de que partición/es están en uso por tanto la que no aparezca en mount pero si aparezca en fdisk , esa , será nuestra partición. Es decir:
mount | grep /sda
/dev/sda1 on / type ext4
/dev/sda4 on /home type ext4
Como se puede ver la /dev/sda2 no aparece montada por lo que esta es la partición que no está siendo usada.
Una vez que sabemos que partición queremos encriptar, creamos un directorio a usar como punto de montaje, en mi caso lo he llamado "backup" y estará en /
mkdir /backup
Al estar en / solo root tiene permisos para modificarlo o agregar ficheros por lo que le cambiamos el user y el group:
sudo chown yo:users /backup
En este caso el usuario es YO y el grupo al que pertenezco es USERS. Esto ,obviamente, es modificable.
2. Cifrado
A continuación, encriptamos la partición, como vimos anteriormente la partición que queremos encriptar es la /dev/sda2.
cryptsetup -c aes -h sha256 -y -s 256 luksFormat /dev/sda2
alternativo, mas recomendado (a continuación explicaré porque)
cryptsetup -c serpent-xts-plain64 -s 512 -h whirlpool
-i 2500 --use-random -y luksFormat /dev/sda2Nos pedirá que confirmemos escribiendo YES en mayúsculas y nos pedirá la contraseña (no olvidar la contraseña ya que no hay :
Are
you sure? (Type uppercase yes): YES
Enter
LUKS passphrase:
Verify
passphrase
Ahora comprobamos el estado de la particion:
cryptsetup luksDump /dev/sda2
Si todo ha ido bien nos dará cierta información como
Version: 1
Cipher name: aes
Cipher mode: cbc-plain
Hash spec: sha256
Payload offset: 4096
Cipher name: aes
Cipher mode: cbc-plain
Hash spec: sha256
Payload offset: 4096
Algo de información útil:
Cipher name:
Block size
|
Key size
|
comment
|
|
---|---|---|---|
128 bits | 128, 192 or 256 bits | aprobado por la NSA para la protección de información clasificada como
"SECRET" y "TOP
SECRET" por
el gobierno de los Estados Unidos
(cuando se utiliza con un tamaño de clave de 192 ó 256 bits). Algunos cifrados son lentos y requieren mas ciclos de computación, AES es el mas rápido de todos. |
|
64 bits | 32–448 bits | Uno de los primeros sistemas de cifrado, libres de patentes, que pasó a disposición del público, por lo tanto, muy bien establecida en Linux. | |
128 bits | 128, 192 or 256 bits | Desarrollado como sucesor de Blowfish, pero
no ha alcanzado un
amplio uso. Puede llegar a ser tan rápido como AES si se compila de forma correcta. Tiene una tolerancia de seguridad mas alta que AES. |
|
128 bits | 128, 192 or 256 bits | Considerado el más seguro de los cinco
finalistas AES-competencia. Este es el método mas lento de cifrado. Tiene una tolerancia de seguridad mas alta que AES. |
Cipher mode:
El mas básico y común modo de cifrado es "cipher-block chaining (CBC)". Al cifrar un sector con este modo, cada bloque de datos de texto plano se combina de forma matemática con el texto cifrado del bloque anterior.
El otro modo de cifrado es "electronic codebook (ECB)" pero no es recomendable usarlo ya que es mucho mas inseguro al usar los mismo 16 bytes de texto plano para cifrar cada bloque de datos.
Hash spec:
Una función de hash es una función que se puede utilizar para mapear datos digitales de tamaño arbitrario a datos digitales de tamaño fijo, con ligeras diferencias en los datos de entrada que producen diferencias muy grandes en datos de salida.Los valores devueltos por una función hash se llaman valores hash, códigos hash, sumas de hash, o simplemente hashes.
* SHA-0, hash inseguro.
* SHA-1, hash inseguro.
* SHA-2 (SHA-256/224, SHA-512/384)
* Whirlpool, basado en AES y opensurce, es mas seguro que SHA-2.Mas info aquí.
Existen mas hash soportados por tu kernel, para ver un listado de todos ellos colo tipear el comando 'cat /proc/crypto'.
3. Particionado
A continuacion vamos a crear el sistemas de archivos:
sudo mkfs.ext4 -L backup /dev/mapper/backup
Ahora ya podemos montar la particion:
sudo cryptsetup luksOpen /dev/sda2 backup
sudo mount /dev/mapper/backup /backup
Si todo ha ido bien, se montará la partición sin problemas. Recuerdo que la partición a usar es /dev/sda2 y el punto de montaje /backup.
Si queremos desmontar particion:
sudo umount /dev/mapper/backup
sudo cryptsetup remove backup
4. Montaje final
Ahora vamos a configurar nuestro linux para que nos pida la contraseña al arrancar el pc y se monte de forma automática. Para ello vamos a modificar dos ficheros, /etc/fstab y /etc/crypttab
sudo vi /etc/fstab
Y añadimos al final la siguiente linea:
# /dev/sda2
/dev/mapper/backup /backup ext4 defaults 0
El archivo /etc/crypttab describe dispositivos de bloque encriptados que se crean durante el arranque del sistema.
A continuacion vamos a crear el sistemas de archivos:
sudo mkfs.ext4 -L backup /dev/mapper/backup
Ahora ya podemos montar la particion:
sudo cryptsetup luksOpen /dev/sda2 backup
sudo mount /dev/mapper/backup /backup
Si todo ha ido bien, se montará la partición sin problemas. Recuerdo que la partición a usar es /dev/sda2 y el punto de montaje /backup.
Si queremos desmontar particion:
sudo umount /dev/mapper/backup
sudo cryptsetup remove backup
4. Montaje final
Ahora vamos a configurar nuestro linux para que nos pida la contraseña al arrancar el pc y se monte de forma automática. Para ello vamos a modificar dos ficheros, /etc/fstab y /etc/crypttab
sudo vi /etc/fstab
Y añadimos al final la siguiente linea:
# /dev/sda2
/dev/mapper/backup /backup ext4 defaults 0
El archivo /etc/crypttab describe dispositivos de bloque encriptados que se crean durante el arranque del sistema.
sudo vi /etc/crypttab
Y añadimos la siguiente linea:
backup UUID=85a95f6d-7d09-4f88-aa77-ea5ae4f808ae none luks
El UUID lo sacamos de la siguiente forma:
sudo cryptsetup luksUUID /dev/sda2
Y ya está, reiniciamos y nos debería pedir la contraseña al inicio y montarse.
Gracias por la la lectura.
En las últimas versiones de Ubuntu o en distribuciones basadas en ubuntu como Backbox, me he encontrado errores al tratar de encriptar la partición, esto es porque tenemos que instalar mas librerías y complementos de lo que se citan en el articulo.
ResponderEliminar