Proteger Dispositivos Externos

CiberSeguridad 2 de jul. de 2024

Riesgo ante pérdidas

Ya sea porque tienes que llevar contigo de viaje un disco duro externo o un USB y este se puede extraviar o puede ser robado.
O simplemente porque tienes que dejar almacenado en algún lugar cualquier dispositivo externo y quieres que los datos estén protegidos y no sean accesibles a nadie.

La solución pasa por proteger esos dispositivos mediante cifrado para proteger de miradas curiosas su contenido.

Entorno Gráfico y Facilidad de Uso

Vamos a comenzar explicando como realizar todo el proceso para usarse facilmente desde cualquier escritorio GNU/Linux, de manera que sea totalmente automatizada para cualquier usuario.

Necesitaremos un pendrive USB, o un disco externo SSD ó HDD, el proceso será el mismo.

Lo primero que debemos asegurarnos es de tener el software necesario para realizar todo el proceso, para ello salimos a la terminal e instalamos lo necesario:

# Lo primero actualizar repositorio de paqueteria
sudo apt update

# Instalamos
sudo apt -y install cryptsetup cryptmount gnome-disk-utility

¿Que háce cada una de estas aplicaciones?

  • cryptsetup: Sofware para el cifrado de unidades.
  • cryptmount: Software que nos va a facilitar el montaje y desmontado de los dispositivos cifrados.
  • gnome-disks: Aplicación grafica que es parte de gnome-disk-utility y nos va a permitir formatear de manera fácil un dispositivo y asignarle una contraseña para su cifrado.

Preparando el dispositivo externo

El contenido del dispositivo externo va a ser borrado, ya que lo formatearemos, así que si tienes algo importante en él haz una copia de seguridad previamente.

Formatear y Cifrar el dispositivo
Conecta el dispositivo USB que quieras proteger con cifrado e inicia el programa gnome-disks desde la consola o busca Discos en la lista de aplicaciones de tu Escritorio.

Fijate bien y selecciona tu dispositivo USB, no te equivoques y marques tu disco duro.

Con el dispositivo correcto seleccionado, pulsa sobre el símbolo - para borrar la partición existente:

Te pide confirmación, comprueba de nuevo que se trata del USB o disco que quieres formatear y cifrar. Si es correcto pulsa en Eliminar:

Tras el borrado de la partición crearemos una nueva, para ello pulsa sobre el símbolo + para iniciar el asistente que te guiará paso a paso:

A la hora de Crear partición escogemos el tamaño completo del dispositivo y pulsaremos luego sobre el botón Siguiente (arriba a la derecha):

En la siguiente pantalla, en Formatear volumen escogemos como formato para la partición: Disco interno para usarlo solamente con Linux (Ext4)

Una vez seleccionada esta opción, podemos marcar el check para indicar que vamos a proteger el dispositivo: Volumen protegido por contraseña (LUKS)

Ahora debemos escribir 2 veces la contraseña con la protegeremos el acceso al dispositivo:

Asegurate de usar una contraseña fuerte, mezclando letras mayúsculas, minúsculas y números, si la contraseña es robusta aparecerá indicado al escribirla:

Una vez escrita la contraseña, simplemente pulsa el botón Crear y espera a que finalice el particionado, formateo y cifrado de la unidad.

Tras el cifrado el dispositivo aparecerá con contenido Cifrado LUKS y además para un primer uso lo deja Desbloqueado:

Desde tu navegador de ficheros simplemente abre el disco/usb cifrado y crea o copia un fichero en él para comprobar el funcionamiento correcto.

Una vez hayas creado el primer fichero en el dispositivo cerrado, procede a expulsarlo y desconectalo.

Uso del Dispositivo Cifrado

Conecta tu dispositivo cifrado en tu equipo.
Te saldrá una ventana en la que deberás introducir la clave que pusiste en el momento del formateo:

De las 3 opciones que aparecen, cuanto más abajo más inseguro será su uso.
Se recomienda usar siempre la primera: Olvidar contraseña inmediatamente, así cada vez que lo conectes te solicitará la clave de acceso.

Si introduces una contraseña incorrecta obtendrás el siguiente mensaje de error:

Vuelve a pulsar sobre el dispositivo para intentar montarlo de nuevo e indicar la contraseña correcta.
En caso de algun error de automontaje tras una clave incorrecta, simplemente desconecta el dispositivo y vuelva a conectarlo.

Ajuste de Permisos en Montaje

Seguramente la primera vez que lo montes, puede que no te permita leer o escribir en él. Para solucionarlo, simplemente abre un terminal y como root cambia el propietario del montaje a tu usuario:

# Suponiendo que tu usuario se llama Usuario
# Y la etiqueta del dispositivo es USB

sudo chown Usuario:Usuario /mnt/TuUsuario/USB

Vuelve de nuevo al navegador de Archivos y verás que puedes usar sin problemas el dispositivo cifrado.

En la vista de equipo de tu navegador, verás que tu dispositivo esta desprotegido si observas el icono rojo del candado que te advierte que está en modo no-cifrado y se puede acceder a los datos que contiene.

En cuanto termines de trabajar, simplemente pulsa sobre Expulsar en el dispositivo para que se bloquee automaticamente y lo puedas desconectar.

Uso en otro equipo con GNU/Linux

Tan sólo tienes que tener instalado en el equipo en que quieras usar el usb cifrado los paquetes: cryptsetup y cryptmount

Al conectar tu USB/disco externo cifrado te pedirá la clave para poder ser usado, tal y como vimos anteriormente.

Uso mediante la Terminal

Si tu equipo no dispone de entorno gráfico por cualquier motivo, o no deseas usarlo, también puedes realizar los mismos procesos desde la terminal de GNU/Linux.
Para ello necesitas sólo necesitas instalar el siguiente software:

sudo apt -y install cryptsetup cryptmount

Localizar dispositivo
Ahora deberás localizar el disco externo o USB para formatearlo y cifrarlo:

# Localizar disco externo/USB
sudo fdisk -l

...

Disco /dev/sdb: 983 MiB, 1030750208 bytes, 2013184 sectores
Modelo de disco: Flash Disk      
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de etiqueta de disco: dos
Identificador del disco: 0x2655f277

Disposit.  Inicio Comienzo   Final Sectores Tamaño Id Tipo
/dev/sdb1             2048 2013183  2011136   982M 83 Linux

Preparar partición para LUKS

Vamos a suponer que el dispositivo que quieres cifrar esta en /dev/sdb1, deberás escribir el siguiente comando:

# Preparando LUKS para particion 1 del disco sdb:
sudo cryptsetup luksFormat /dev/sdb1

Te saldrá una ventana de confirmación, debes escribir YES en mayúsculas para aceptar y a continuación 2 veces la contraseña para el cifrado:

Espera unos segundos hasta que finalice el proceso y te devuelva el prompt del sistema.

Mapear el disco para formatearlo
Ahora debemos formatear la partición preparada con LUKS en formato Ext4, para ello debemos realizar 2 pasos (lo haremos como root):

# 1. Mapeamos el dispositivo (con nombre USB-CIFRADO)
cryptsetup luksOpen /dev/sdb1 USB-CIFRADO

# Nos deja un montaje en /dev/mapper y el nombre indicado

ls -l /dev/mapper/
  total 0
  crw------- 1 root root 10, 236 jul  2 09:59 control
  lrwxrwxrwx 1 root root       7 jul  2 18:44 USB-CIFRADO -> ../dm-0

# 2. Formateamos como Ext4
mkfs.ext4 /dev/mapper/USB-CIFRADO 

  mke2fs 1.47.0 (5-Feb-2023)
  Creating filesystem with 247296 4k blocks and 61824 inodes
  Filesystem UUID: ef8f250e-1625-4dfc-92af-90eea9eba805
  Superblock backups stored on blocks: 
	 32768, 98304, 163840, 229376
  Allocating group tables: done                            
  Writing inode tables: done                            
  Creating journal (4096 blocks): done
  Writing superblocks and filesystem accounting information: done

Uso: Montaje
Para poderlo montar creamos una ruta para su uso:

# Montar
sudo mkdir /mnt/usb-cifrado
sudo mount /dev/mapper/USB-CIFRADO /mnt/usb-cifrado

# Permisos para nuestro usuario:
sudo chown usuario:usuario /mnt/usb-cifrado

A partir de este momento ya podemos escribir en la ruta /mnt/usb-cifrado que es donde se descifra el dispositivo externo.

Uso: Desmontaje y Protección
Una vez terminadas todas las operaciones que queramos realizar en el dispositivo hay que desmontarlo y volverlo a dejar protegido.
Para ello ejecutaremos los siguientes comandos:

# Desmontar
sudo umount /mnt/usb-cifrado 

# Quitar Mapeo y cerrar para dejar protegido
sudo cryptsetup luksClose USB-CIFRADO

Etiquetas

Luis GuLo

🐧 SysAdmin GNU/Linux - 🐳 Docker - 🖥️ Bash Scripting - 🐪 Perl - 🐬 MySQL - 👥 Formador de TI - 👥 Formador de SysAdmin's - 💢 Ansible - ☁️ Cloud Computing - ❤️ Debian GNU/Linux