Diferencia entre revisiones de «LUKS»
Sin resumen de edición |
|||
(No se muestran 3 ediciones intermedias del mismo usuario) | |||
Línea 15: | Línea 15: | ||
Ahora, prepararemos la partición para la encriptación. Ejecuta los siguientes comandos:<blockquote>sudo cryptsetup luksFormat /dev/sdb1 | Ahora, prepararemos la partición para la encriptación. Ejecuta los siguientes comandos:<blockquote>sudo cryptsetup luksFormat /dev/sdb1 | ||
sudo cryptsetup open /dev/sdb1 my_encrypted_partition # "my_encrypted_partition" es un nombre descriptivo, puedes poner el que quieras pero debes recordarlo.</blockquote>A continuación debes poner la contraseña de cifrado. | sudo cryptsetup open /dev/sdb1 my_encrypted_partition # "my_encrypted_partition" es un nombre descriptivo, puedes poner el que quieras pero debes recordarlo.</blockquote>A continuación debes poner la contraseña de cifrado. | ||
Línea 29: | Línea 30: | ||
añadimos la etiqueta de objetivo , la UUID y la «key file» que la dejamos en «none» y por último las opciones | añadimos la etiqueta de objetivo , la UUID y la «key file» que la dejamos en «none» y por último las opciones | ||
<code>my_encrypted_partition UUID=6c13fb1e-3e83-438c-a09e-c6a1b7281313 none luks,discard</code> | <code>my_encrypted_partition UUID=6c13fb1e-3e83-438c-a09e-c6a1b7281313 none luks,discard</code> | ||
Recordemos que la '''UUID''' se puede averiguar con el comando: '''blkid''' | Recordemos que la '''UUID''' se puede averiguar con el comando: '''blkid''' , y que será la UUID correspondiente a la partición encriptada. | ||
Ahora editamos el fichero de persistencia: | Ahora editamos el fichero de persistencia: | ||
Línea 36: | Línea 37: | ||
<code>/dev/mapper/my_encrypted_partition /mnt/my_encrypted_partition ext4 defaults,discard 0 2</code> | <code>/dev/mapper/my_encrypted_partition /mnt/my_encrypted_partition ext4 defaults,discard 0 2</code> | ||
el sistema reaccionará en el reinicio pidiendo la contraseña, recodemos que si es la misma contraseña que el montaje del directorio raíz, no hace falta volverla a poner. | el sistema reaccionará en el reinicio pidiendo la contraseña, recodemos que si es la misma contraseña que el montaje del directorio raíz, no hace falta volverla a poner. | ||
También podemos poner la UUID correspondiente a la partición con formato ext4 bajo la partición encriptada. | |||
== Comandos extra: == | == Comandos extra: == | ||
Línea 59: | Línea 62: | ||
<code>sudo cryptsetup luksChangeKey /dev/sdb1 #siguiendo el caso de la entrada</code> | <code>sudo cryptsetup luksChangeKey /dev/sdb1 #siguiendo el caso de la entrada</code> | ||
Esto te pedirá la contraseña antigua y la contraseña nueva. Acto seguido ya puedes volver a montar la partición. | Esto te pedirá la contraseña antigua y la contraseña nueva. Acto seguido ya puedes volver a montar la partición. | ||
== Creando un disco encriptado con dos particiones == | |||
En el siguiente caso vamos a montar un nuevo disco de 500GB, lo vamos a encriptar y dentro vamos a crear dos particiones de formato [[XFS]] donde haremos el montado temporal. | |||
Esta guía explica cómo encriptar un disco de 500GB utilizando LUKS, crear dos volúmenes lógicos con el sistema de archivos XFS y realizar un montado temporal de los mismos. | |||
=== Requisitos previos === | |||
* Un disco no particionado y sin datos (en este caso asumimos que es "/dev/sdb"). | |||
* Privilegios de superusuario o acceso mediante <code>sudo</code>. | |||
* Instalación de las herramientas necesarias: | |||
<pre> | |||
sudo dnf install cryptsetup lvm2 xfsprogs | |||
</pre> | |||
=== Paso 1: Preparar el disco === | |||
==== Crear la tabla de particiones ==== | |||
Usa <code>fdisk</code> para configurar la tabla de particiones del disco:<pre> | |||
sudo fdisk /dev/sdb | |||
</pre>Dentro de <code>fdisk</code>, realiza los siguientes pasos: | |||
# Presiona <code>g</code> para crear una nueva tabla de particiones GPT. | |||
# Presiona <code>n</code> para crear una nueva partición que ocupe todo el disco. | |||
# Escribe los cambios con <code>w</code>. | |||
==== Verificar la partición creada ==== | |||
<pre> | |||
sudo fdisk -l /dev/sdb | |||
</pre>Deberías ver una sola partición, <code>/dev/sdb1</code>. | |||
=== Paso 2: Encriptar el disco === | |||
==== Crear un contenedor LUKS ==== | |||
<pre> | |||
sudo cryptsetup luksFormat /dev/sdb1 | |||
</pre>''Nota:'' Este comando sobrescribirá todos los datos de la partición. Escribe "YES" cuando se te solicite confirmar. | |||
==== Abrir el contenedor LUKS ==== | |||
<pre> | |||
sudo cryptsetup open /dev/sdb1 data_crypt | |||
</pre>Esto crea un dispositivo mapeado en <code>/dev/mapper/data_crypt</code>. | |||
=== Paso 3: Configurar LVM sobre LUKS === | |||
==== Crear un volumen físico en el contenedor LUKS ==== | |||
<pre> | |||
sudo pvcreate /dev/mapper/data_crypt | |||
</pre> | |||
==== Crear un grupo de volúmenes ==== | |||
<pre> | |||
sudo vgcreate vg_data /dev/mapper/data_crypt | |||
</pre> | |||
==== Crear volúmenes lógicos ==== | |||
Crea dos volúmenes lógicos:<pre> | |||
sudo lvcreate -L 150G -n data1 vg_data | |||
sudo lvcreate -l 100%FREE -n data2 vg_data | |||
</pre>Esto crea dos volúmenes: <code>data1</code> de 150GB y <code>data2</code> que utiliza el espacio restante. | |||
=== Paso 4: Crear los sistemas de archivos === | |||
==== Formatear los volúmenes lógicos con XFS ==== | |||
<pre> | |||
sudo mkfs.xfs /dev/vg_data/data1 -L data1 | |||
sudo mkfs.xfs /dev/vg_data/data2 -L data2 | |||
</pre> | |||
=== Paso 5: Montado temporal === | |||
==== Crear puntos de montaje ==== | |||
<pre> | |||
sudo mkdir -p /mnt/data1 /mnt/data2 | |||
</pre> | |||
==== Montar los volúmenes ==== | |||
<pre> | |||
sudo mount /dev/vg_data/data1 /mnt/data1 | |||
sudo mount /dev/vg_data/data2 /mnt/data2 | |||
</pre> | |||
==== Verificar el montado ==== | |||
Usa <code>df -h</code> para verificar que los volúmenes estén montados:<pre> | |||
df -h | |||
</pre> | |||
=== Paso 6: Desmontar y cerrar los volúmenes === | |||
==== Desmontar los volúmenes ==== | |||
<pre> | |||
sudo umount /mnt/data1 | |||
sudo umount /mnt/data2 | |||
</pre> | |||
==== Desactivar los volúmenes lógicos y el grupo ==== | |||
<pre> | |||
sudo vgchange -an vg_data | |||
</pre> | |||
==== Cerrar el contenedor LUKS ==== | |||
<pre> | |||
sudo cryptsetup close data_crypt | |||
</pre> | |||
=== Notas adicionales === | |||
* Para un montado persistente, edita el archivo <code>/etc/fstab</code> y utiliza el UUID de cada volumen. Puedes obtenerlos con: | |||
<pre> | |||
sudo blkid | |||
</pre> | |||
* Asegúrate de guardar la contraseña del contenedor LUKS en un lugar seguro. | |||
Con esto, tienes tu disco encriptado con dos volúmenes lógicos formateados en [[XFS]], listos para usarse. |
Revisión actual - 10:06 17 dic 2024
Ya he escrito cómo hacer una instalación cifrada, pero, ¿y si quiero cifrar un disco nuevo? Un ejemplo, quiero tener un disco extraíble que quiero montar para hacer copias de seguridad y luego extraerlo y guardarlo en una caja fuerte y solo volver a montarlo para realizar de nuevo la copia o recuperar información.
En el mundo de la seguridad de datos, la encriptación de particiones es una práctica esencial para proteger la información sensible. En este artículo, aprenderemos a crear una partición, encriptarla y gestionarla de forma segura en sistemas Linux utilizando herramientas como fdisk y cryptsetup. Ambas herramientas ya vienen integradas en nuestro sistema operativo Linux Fedora.
Primero, hay que particionar el disco, como en todas las entradas, lo haremos por consola y con «fdisk» como herramienta de particionado. En este ejemplo el siguiente disco sería el segundo detectado por el sistema ( recordemos que podemos listar los discos y particiones con el comando «lsblk» ).
fdisk /dev/sdb
- Presiona
g
para crear una nueva tabla de particiones GPT. - Presiona
n
para crear una nueva partición. - Selecciona el tipo de partición, generalmente
p
para primaria. - Especifica el tamaño de la partición (100%, quiero que sea todo el disco).
- Presiona
w
para escribir los cambios y salir.
Formatear con el Sistema de Archivos Crypto y Encriptar
Ahora, prepararemos la partición para la encriptación. Ejecuta los siguientes comandos:
sudo cryptsetup luksFormat /dev/sdb1
sudo cryptsetup open /dev/sdb1 my_encrypted_partition # "my_encrypted_partition" es un nombre descriptivo, puedes poner el que quieras pero debes recordarlo.
A continuación debes poner la contraseña de cifrado.
Crear y Montar un Sistema de Archivos en la Partición Encriptada
Ahora le damos formato, por ejemplo «ext4», un formato por defecto en linux, en este caso a la partición mapeada y la montamos, por ejemplo, en el mismo nombre que el mapeo:
sudo mkfs.ext4 /dev/mapper/my_encrypted_partition
sudo mkdir /mnt/my_encrypted_partition
sudo mount /dev/mapper/my_encrypted_partition /mnt/my_encrypted_partition
En el momento del montado ya nos pedirá la contraseña que le pusimos a la hora de encriptarlo.
Montado y persistencia
Ahora demos el caso que queremos mantener la persistencia de este disco en el inicio del sistema, para ello primero editamos el fichero:
vi /etc/crypttab
añadimos la etiqueta de objetivo , la UUID y la «key file» que la dejamos en «none» y por último las opciones
my_encrypted_partition UUID=6c13fb1e-3e83-438c-a09e-c6a1b7281313 none luks,discard
Recordemos que la UUID se puede averiguar con el comando: blkid , y que será la UUID correspondiente a la partición encriptada.
Ahora editamos el fichero de persistencia:
vi /etc/fstab
Y añadimos
/dev/mapper/my_encrypted_partition /mnt/my_encrypted_partition ext4 defaults,discard 0 2
el sistema reaccionará en el reinicio pidiendo la contraseña, recodemos que si es la misma contraseña que el montaje del directorio raíz, no hace falta volverla a poner.
También podemos poner la UUID correspondiente a la partición con formato ext4 bajo la partición encriptada.
Comandos extra:
A continuación pongo los comando más utilizados:
Apertura y montado temporal:
sudo cryptsetup luksOpen /dev/sde1 my_encrypted_partition #Donde /dev/sde1 es la partición encriptada
Montado de la partición abierta:
sudo mount /dev/mapper/my_encrypted_partition /mnt/backup/
Suspensión de la partición, en el caso de que queramos desactivarla temporalmente por motivos de seguridad
cryptsetup luksSuspend my_encrypted_partition
Para volver a activar:
sudo cryptsetup luksResume my_encrypted_partition
y vuelve a poner la contraseña
Para desmontar el disco primero desmontamos la partición con:
sudo umount /mnt/my_encrypted_partition
Y por último cerramos el montado:
sudo cryptsetup close my_encrypted_partition
Y ya podemos desconectar el disco.
Por último, queda cómo cambiar la contraseña de una partición encriptada, solo hay que desmontarla como he explicado antes y ejecutar:
sudo cryptsetup luksChangeKey /dev/sdb1 #siguiendo el caso de la entrada
Esto te pedirá la contraseña antigua y la contraseña nueva. Acto seguido ya puedes volver a montar la partición.
Creando un disco encriptado con dos particiones
En el siguiente caso vamos a montar un nuevo disco de 500GB, lo vamos a encriptar y dentro vamos a crear dos particiones de formato XFS donde haremos el montado temporal.
Esta guía explica cómo encriptar un disco de 500GB utilizando LUKS, crear dos volúmenes lógicos con el sistema de archivos XFS y realizar un montado temporal de los mismos.
Requisitos previos
- Un disco no particionado y sin datos (en este caso asumimos que es "/dev/sdb").
- Privilegios de superusuario o acceso mediante
sudo
. - Instalación de las herramientas necesarias:
sudo dnf install cryptsetup lvm2 xfsprogs
Paso 1: Preparar el disco
Crear la tabla de particiones
Usa fdisk
para configurar la tabla de particiones del disco:
sudo fdisk /dev/sdb
Dentro de fdisk
, realiza los siguientes pasos:
- Presiona
g
para crear una nueva tabla de particiones GPT. - Presiona
n
para crear una nueva partición que ocupe todo el disco. - Escribe los cambios con
w
.
Verificar la partición creada
sudo fdisk -l /dev/sdb
Deberías ver una sola partición, /dev/sdb1
.
Paso 2: Encriptar el disco
Crear un contenedor LUKS
sudo cryptsetup luksFormat /dev/sdb1
Nota: Este comando sobrescribirá todos los datos de la partición. Escribe "YES" cuando se te solicite confirmar.
Abrir el contenedor LUKS
sudo cryptsetup open /dev/sdb1 data_crypt
Esto crea un dispositivo mapeado en /dev/mapper/data_crypt
.
Paso 3: Configurar LVM sobre LUKS
Crear un volumen físico en el contenedor LUKS
sudo pvcreate /dev/mapper/data_crypt
Crear un grupo de volúmenes
sudo vgcreate vg_data /dev/mapper/data_crypt
Crear volúmenes lógicos
Crea dos volúmenes lógicos:
sudo lvcreate -L 150G -n data1 vg_data sudo lvcreate -l 100%FREE -n data2 vg_data
Esto crea dos volúmenes: data1
de 150GB y data2
que utiliza el espacio restante.
Paso 4: Crear los sistemas de archivos
Formatear los volúmenes lógicos con XFS
sudo mkfs.xfs /dev/vg_data/data1 -L data1 sudo mkfs.xfs /dev/vg_data/data2 -L data2
Paso 5: Montado temporal
Crear puntos de montaje
sudo mkdir -p /mnt/data1 /mnt/data2
Montar los volúmenes
sudo mount /dev/vg_data/data1 /mnt/data1 sudo mount /dev/vg_data/data2 /mnt/data2
Verificar el montado
Usa df -h
para verificar que los volúmenes estén montados:
df -h
Paso 6: Desmontar y cerrar los volúmenes
Desmontar los volúmenes
sudo umount /mnt/data1 sudo umount /mnt/data2
Desactivar los volúmenes lógicos y el grupo
sudo vgchange -an vg_data
Cerrar el contenedor LUKS
sudo cryptsetup close data_crypt
Notas adicionales
- Para un montado persistente, edita el archivo
/etc/fstab
y utiliza el UUID de cada volumen. Puedes obtenerlos con:
sudo blkid
- Asegúrate de guardar la contraseña del contenedor LUKS en un lugar seguro.
Con esto, tienes tu disco encriptado con dos volúmenes lógicos formateados en XFS, listos para usarse.