En el artículo Creación de un disco cifrado en VDS Linux Describió cómo crear un archivo cifrado y montarlo como un disco. En ese ejemplo, para conectarnos, ingresamos una contraseña cada vez y después de trabajar con archivos, la desactivamos. Este método de trabajo proporciona un alto nivel de seguridad al trabajar con datos.
En el lado negativo, la contraseña que ingresamos cada vez puede ser interceptada si todas las acciones se registran en la PC desde la que se ingresa la contraseña. (registrador de claves instalado)
En este ejemplo, le mostraremos cómo montar automáticamente un archivo cifrado y montar el disco cada vez que se inicia el servidor, utilizando un archivo de clave.
1. Crea un archivo clave
dd if=/dev/urandom of=/root/random_data_keyfile1 bs=1024 count=4
1.1 Asignemos derechos solo a root
chmod 0400 /root/random_data_keyfile1
1.2 Agregar un archivo clave a nuestro archivo cifrado
cryptsetup luksAddKey /root/crypt-drive /root/random_data_keyfile1
2. Agregar una configuración para conexión automática
2.1 Archivo /etc/crypttab
# <target name> <source device> <key file> <options>
crypto-my /root/crypt-drive /root/random_data_keyfile1 luks,discard
Si elimina el archivo de clave y reinicia el servidor, en la etapa de inicio se le pedirá que ingrese la contraseña para el archivo cifrado, pero no habrá acceso al servidor a través de la red en esta etapa. Después de ingresar la contraseña correctamente, el servidor continuará cargándose, incluidos los servicios de red.
2.1.1 Para garantizar que el servidor continúe arrancando si falta el archivo clave, agregue la opción de tiempo de espera
# <target name> <source device> <key file> <options>
crypto-my /root/crypt-drive /root/random_data_keyfile1 luks,discard,timeout=30
Ahora, al ingresar una contraseña, si no hay un archivo de clave, se esperará 30 segundos, después de lo cual el servidor continuará cargándose y será accesible a través de la red.
2.2 Archivo /etc/fstab
...
/dev/mapper/crypto-my /mnt/crypt-volume ext4 defaults 0 0
Listo, puede reiniciar el servidor y verificar.
df -h
Este método tiene su desventaja, ya que cuando obtenga acceso físico al servidor, será posible restablecer la contraseña de root y, dado que el archivo de clave está almacenado en el servidor, podrá acceder a los datos en la partición cifrada.