En esta ocasión vamos a explicar como generar un fichero protegido por contraseña mediante LUKS, esto resulta muy útil porque no es necesario cifrar el dispositivo entero pudiendo utilizarlo para otros fines.
Instalamos el software necesario.
emerge sys-fs/cryptsetup
Generamos un fichero de 50Gb con datos aleatorios:
dd if=/dev/urandom of=ciphered_file bs=1G count=50 iflag=fullblock
Le damos formato “luks” y asignamos contraseña:
cryptsetup --hash=sha256 --key-size=512 --verify-passphrase luksFormat ciphered_file
WARNING!:
Esto sobreescribirá los datos en ciphered_file2 de forma irrevocable.
Are you sure? (Type uppercase yes): YES
Introduzca la frase contraseña:
Obtenemos info del fichero:
cryptsetup luksDump ciphered_file
Desciframos generando el fichero descifrado:
cryptsetup luksOpen ciphered_file unciphered
Creamos el sistema de ficheros y lo montamos:
mkfs.ext4 /dev/mapper/unciphered
mkdir /mnt/unciphered
mount /dev/mapper/unciphered /mnt/unciphered
mkdir /mnt/unciphered
mount /dev/mapper/unciphered /mnt/unciphered
Podemos automatizar el proceso de montaje mediante sudo:
vi /home/kr0m/.scripts/luks
#! /bin/bash
sudo /sbin/cryptsetup luksOpen /home/kr0m/ciphered_file unciphered
sudo /bin/mount /dev/mapper/unciphered /home/kr0m/unciphered
chmod 700 /home/kr0m/.scripts/luks
visudo
visudo
kr0m ALL=(ALL) NOPASSWD:/sbin/cryptsetup luksOpen /home/kr0m/ciphered_file unciphered
kr0m ALL=(ALL) NOPASSWD:/bin/mount /dev/mapper/unciphered /home/kr0m/unciphered
vi /etc/local.d/luks.stop
#! /bin/bash
umount /home/kr0m/unciphered
cryptsetup luksClose unciphered
chmod 700 /etc/local.d/luks.stop