📔
Blog
  • 🏠Home
  • 🤖Android
    • LineageOS, PlayIntegrityFix y playcurlNEXT
    • 🖥️Instalar Termux
    • 📦Optimizar paquetes después de instalar ROM
  • 🖥️Hardware
    • Overclocking AMD Ryzen 9 5950X
    • Unboxing Switch POE TP-Link TL-SG1008P
  • 🐧Linux
    • Possible missing firmware /lib/firmware/amdgpu
    • Cifrar con LUKS
    • Habilitar FSR en los juegos en Steam
    • Información del /etc/fstab
    • Instalar Debian cifrado
    • Después de Instalar Debian 12
    • Después de instalar Fedora 38
    • Instalar fuentes OTF y TTF en Linux
    • Instalar GNU/Linux Debian 12, en Macbook Pro (late 2015) A1502
    • Clonar disco a NAS con CloneZilla
    • Activar TRIM con systemd
    • Error ata9 en dispositivo SATA
    • Dash to dock para Gnome
    • Solución al error AACS en VLC al reproducir un BluRay
    • Gnome 42.5, en Linux Mint 21.1
    • dmesg: Initramfs unpacking failed: Decoding failed
    • Como tener AirPrint con tu impresora
    • Crear repo git desde el terminal
    • Añadir marca de agua al DNI
    • Eliminar un path con sed
    • Sacar el .crt y .key de un .pfx
    • Instalar driver AMD GPU
    • Problemas de Vsync con AMD GPU
    • Configurar git
    • Solucion al error amdgpu: powerplay
    • dmesg: Error al leer el búfer del kernel
    • CIDR, mascaras de subred
  • 💻Macintosh
    • My Apps
    • Configurar shell bash por defecto
    • Habilitar Bash Completion
    • Instalar Pyenv
    • Habilitar el "chime sound" en los nuevos Mac's
    • Reset NVRAM en un Macintosh
    • Reset PMU en un PowerBook G4
    • Solucionar el parpadeo de Netflix en Safari a pantalla completa
  • 🪟Windows
  • 🕹️Nintendo NES
    • 8bitdo DIY en mando original
    • Bluetooth interno con 8bitdo
    • Región Free, sin cortar el CIC
  • 🎮PlayStation
    • Review Cable SCART RGB C-SYNC
    • FreeMCBoot
    • Instalación chip PSX, PU-20
  • 📡Ubiquiti
    • Unboxing Cloud key Gen 2 Plus
    • UniFi Controller en Docker
    • Abrir puertos en USG Security Gateway
    • MAC del router HGU de Movistar en el USG
    • Configurar USG Security Gateway para Movistar
    • Habilitar DDNS en USG Security Gateway
    • Error Adopción Pendiente en USG Security Gateway
    • Restaurar firmware USG Security Gateway
    • Cambiar pasta termica en UniFi Switch 8 150W
    • Crear VLAN en UniFi Controller
    • Cambiar IP local en USG antes de adoptarlo
    • Configurar DDNS Cloudflare en EdgeRouter 4
    • Configuración vía terminal, red Home
    • Configurar WireGuard en EdgeRouter 4 / 6P
  • 📶Asus Router
    • Instalar Skynet
    • Habilitar swap
    • Ejecutar tareas crontab
    • Borrar NVRAM
    • Notificación Telegram al inicio
    • Monitorizar temperaturas con Telegram
    • Enviar logs a un servidor RSYSLOG
    • Mostrar temperaturas
  • 🍇RaspberryPi
    • Reducir tamaño imagen .img de un backup de la SD
    • Servidor RSYSLOG
    • Deshabilitar el ahorro de energia en WiFi
  • 🧊Kubernetes
    • Desplegar K8S con Kubespray
    • Flux en AKS
    • Actualizar certificados K8S
    • OpenShift en modo Datacenter en una VM local
  • 🐳Docker
    • HomeBridge en Docker
    • Comprobar vulnerabilidades de imagenes docker
    • Sign docker images with Cosign
    • Acceder a un contenedor con permisos de superusuario
  • 🧪Arduino
    • Minar DuinoCoin desde tu router OpenWRT
  • 🛠️Bricos
    • Rack IKEA HUTTEN
Powered by GitBook
On this page

Was this helpful?

  1. Linux

Cifrar con LUKS

PreviousPossible missing firmware /lib/firmware/amdgpuNextHabilitar FSR en los juegos en Steam

Last updated 2 months ago

Was this helpful?

LUKS (del inglés Linux Unified Key Setup, Configuración de clave unificada de Linux), completamente de código abierto, opera a nivel de núcleo y emplea el subsistema device mapper a través del módulo dm-crypt. En este tutorial vamos a crear una partición cifrada con autenticación desde un fichero y desde contraseña, mas adelante quiero implementar la autenticación con el modulo TPM2.

Vamos a crear una partition con una longitud de clave de 512 bit y un hash de SHA-512.

Supongamos que tenemos un pendrive y queremos guardar en el información sensible, nos vale un disco duro externo también.

Mi recomendación es crear al menos 2 particiones en el dispositivo externo, la primera pequeña, si puede ser de al menos 1Gb perfecto, si puedes mas, mejor, para ficheros temporales y en FAT32.

No me guardes en esa partición la clave de la partición cifrada

y la otra partición con el tamaño restante del dispositivo, creamos una partición formateada en EXT4, esto nos da igual ahora mismo, ya que vamos crear el volumen cifrado y luego lo vamos a formatear. Aquí tengo mi HDD externo de 1Tb con 2 particiones, lo que comentaba, la primera de 32GB en FAT32, sin cifrado y la segunda con el resto de capacidad cifrada y formateada en EXT4.

Para cifrar una partición y la autenticación con fichero, con una longitud de clave de 512 bit y un hash SHA-512, donde /dev/sdaX cambiarlo por la partición que os corresponda.

Estos pasos formatean el contenido del dispositivo, lo que tenga se va borrar y no sera recuperable.

sudo cryptsetup luksFormat --cipher=aes-xts-plain64 --key-size=512 --hash=sha512 --use-random /dev/sdaX

y en un momento tendremos la partición cifrada, pero aun no hemos terminado.

Ahora vamos a darle formato, antes de nada debemos desbloquear la partición. Podemos poner el nombre que queramos.

sudo cryptsetup luksOpen /dev/sdaX {nombre}

Y la formateamos, en este caso de tipo ext4

sudo mkfs.ext4 /dev/mapper/{nombre}

La volvemos a bloquear una vez terminado el formateo de la partición.

sudo cryptsetup luksClose {nombre}

Y ya tenemos nuestro dispositivo cifrado y bien cifrado, ya puedes memorizar bien la clave, no la dejes junto con el dispositivo.

Podemos ver la cabecera de LUKS de nuestro dispositivo con

sudo cryptsetup luksDump /dev/sdaX

Y nos devolverá algo similar:

LUKS header information
Version:       	2
Epoch:         	3
Metadata area: 	16384 [bytes]
Keyslots area: 	16744448 [bytes]
UUID:          	fe223394-1612-8c20-9a0b-ac6e202294a2
Label:         	(no label)
Subsystem:     	(no subsystem)
Flags:       	(no flags)

Data segments:
  0: crypt
	offset: 16777216 [bytes]
	length: (whole device)
	cipher: aes-xts-plain64
	sector: 512 [bytes]

Keyslots:
  0: luks2
	Key:        512 bits
	Priority:   normal
	Cipher:     aes-xts-plain64
	Cipher key: 512 bits
	PBKDF:      argon2id
	Time cost:  14
	Memory:     1048576
	Threads:    4
	Salt:       60 31 f1 b7 6a 6e 55 8c 45 45 a5 b5 ac 18 46 08 
	            64 92 1d 83 2a f4 e3 93 89 2f 26 7a 70 87 3d 0e 
	AF stripes: 4000
	AF hash:    sha512
	Area offset:32768 [bytes]
	Area length:258048 [bytes]
	Digest ID:  0
Tokens:
Digests:
  0: pbkdf2
	Hash:       sha512
	Iterations: 264791
	Salt:       ca ad 4c d3 6e ba 83 2f 4f 70 c7 0c 11 91 24 e7 
	            cf 73 a6 5a 7c 43 4c 37 28 3b 1b 57 5b c3 6d 6c 
	Digest:     e3 38 c7 ea 0a 58 14 c6 8e 24 ae 8f 45 57 d4 55 
	            34 79 ca 0b a6 b5 45 bc 83 ee 1e e9 6a f6 de c6 
	            62 40 d2 57 ae 71 e0 f6 29 3c e8 86 c9 31 1f b2 
	            ed 44 57 6d d5 94 e3 de 60 64 88 f2 f4 ab 34 bb

Nos interesa de esa cabecera los puntos:

Key:        512 bits
Cipher:     aes-xts-plain64
Hash:       sha512

Si conectamos nuestro disco externo, nos pedirá la contraseña para desbloquear la partición cifrada.

Esto lo podemos aplicar para cifrar un disco antes de instalar el sistema operativo, lo que probado Fedora 41, Anaconda si detecta el cifrado LUKS si lo has cifrado previamente y puedes instalar el sistema operativo (marcando sin cifrar), en cada inicio luego te pide las password para continuar el arranque, cuidado con cifrar /boot y EFI. Un gallifante para Fedora por el buen trabajo de integración de Anaconda con LUKS. En Debian 12.9 no detecta LUKS, con lo que si esta cifrado instalará encima el sistema normalmente pisando lo que tenga el disco. Mal Debian, MAL!!!

🐧