Saltar al contenido principal

Documentation Index

Fetch the complete documentation index at: https://docs.zylon.ai/llms.txt

Use this file to discover all available pages before exploring further.

Esta guía está escrita para Ubuntu 24.04. Otros sistemas operativos y distribuciones pueden requerir herramientas o pasos diferentes — adáptalos según corresponda.
El cifrado de disco garantiza que los datos almacenados en tu servidor sean ilegibles sin la contraseña correcta, protegiéndolos frente a robos físicos o accesos no autorizados al hardware. Elige el enfoque que se ajuste a tu situación:
  • Máquina nueva — sin sistema operativo instalado. El cifrado de disco completo se configura durante la instalación de Ubuntu.
  • Zylon ya instalado — cifra una partición de datos separada sin necesidad de reinstalar.

Opción 1: Máquina nueva — Cifrado de disco completo durante la instalación

Este es el enfoque recomendado. El instalador de Ubuntu puede cifrar el disco completo usando LUKS (Linux Unified Key Setup) con una única contraseña.
1

Arranca desde el instalador de Ubuntu 24.04

Descarga la ISO de Ubuntu 24.04 Server y arranca tu máquina desde ella.
2

Avanza en el instalador hasta la configuración de almacenamiento

En la pantalla de Configuración de almacenamiento, selecciona Disposición de almacenamiento personalizada y luego elige la opción Usar disco completo.
3

Activa el cifrado

Marca Cifrar el grupo LVM con LUKS. Se te pedirá que establezcas una contraseña.Elige una contraseña robusta y guárdala en un lugar seguro — perderla significa perder el acceso a todos los datos.
4

Completa la instalación

Finaliza el instalador con normalidad. En cada arranque, se te pedirá que introduzcas la contraseña antes de que el sistema inicie.
5

Instala Zylon

Una vez Ubuntu en funcionamiento, sigue la guía de instalación estándar de Zylon.

Opción 2: Zylon ya instalado — Cifrar una partición de datos

Si Zylon ya está en funcionamiento, una reinstalación completa es muy disruptiva. En su lugar, puedes crear una partición cifrada para el directorio de datos de Zylon (/var/zylon) usando LUKS y mover los datos a ella.
Este proceso mueve datos de una aplicación en producción. Realiza una copia de seguridad completa antes de continuar. Consulta la guía de copias de seguridad.

Requisitos previos

  • Un disco adicional o espacio sin particionar disponible en el servidor.
  • cryptsetup y rsync instalados:
sudo apt update
sudo apt install -y cryptsetup rsync
1

Identifica el disco o partición objetivo

Lista los dispositivos de bloque disponibles para encontrar tu disco adicional (p. ej. /dev/sdb). El flag -e 7 excluye los dispositivos loop (paquetes snap) para reducir el ruido:
lsblk -d -e 7
2

Crea y formatea el contenedor LUKS

Reemplaza /dev/sdb con tu dispositivo real. Esto borrará todos los datos en él.
sudo cryptsetup luksFormat /dev/sdb
Se te pedirá que confirmes (YES) y establezcas una contraseña.
3

Abre el contenedor cifrado

sudo cryptsetup open /dev/sdb zylon-data
Esto mapea el contenedor a /dev/mapper/zylon-data.
4

Crea un sistema de archivos en el dispositivo mapeado

sudo mkfs.ext4 /dev/mapper/zylon-data
5

Detén Zylon antes de migrar los datos

sudo k0s stop
6

Monta la partición cifrada y migra los datos

sudo mount /dev/mapper/zylon-data /mnt/zylon-data
sudo rsync -aAX /var/zylon/ /mnt/zylon-data/
Verifica que la copia se completó correctamente antes de continuar.
7

Reemplaza el directorio de datos original con el montaje cifrado

sudo mv /var/zylon /var/zylon.bak
sudo mkdir /var/zylon
sudo umount /mnt/zylon-data
sudo mount /dev/mapper/zylon-data /var/zylon
8

Configura el montaje automático al arranque

Añade el dispositivo LUKS a /etc/crypttab:
# Obtén el UUID del dispositivo LUKS
sudo cryptsetup luksDump /dev/sdb | grep UUID
Añade una línea a /etc/crypttab (reemplaza YOUR_UUID con el valor anterior):
zylon-data UUID=YOUR_UUID none luks
Luego añade el montaje a /etc/fstab:
/dev/mapper/zylon-data /var/zylon ext4 defaults 0 2
Usar none como archivo de clave significa que se pedirá la contraseña en cada arranque. Para servidores sin pantalla, consulta la documentación de Ubuntu sobre el desbloqueo remoto de LUKS.
9

Inicia Zylon y verifica

sudo k0s start
Confirma que todo funciona correctamente y luego elimina la copia de seguridad:
sudo rm -rf /var/zylon.bak

Script automatizado (alternativa)

El script siguiente realiza todos los pasos anteriores de forma interactiva. Solicitará el disco objetivo y la contraseña LUKS, y se encargará del resto.
Revisa el script antes de ejecutarlo. Borrará el disco objetivo y detendrá Zylon durante la migración.
Guárdalo como encrypt-zylon.sh y ejecútalo con sudo bash encrypt-zylon.sh.
#!/usr/bin/env bash
set -eu

log()   { echo "[INFO]  $*"; }
warn()  { echo "[WARN]  $*"; }
abort() { echo "[ERROR] $*" >&2; exit 1; }

[ "$(id -u)" -eq 0 ] || abort "Ejecuta este script con sudo: sudo bash $0"
command -v cryptsetup >/dev/null || abort "cryptsetup no encontrado. Ejecuta: apt install cryptsetup"
command -v rsync      >/dev/null || abort "rsync no encontrado. Ejecuta: apt install rsync"

lsblk -d -e 7
echo

ROOT_DISK=$(lsblk -rno PKNAME,MOUNTPOINT 2>/dev/null | awk '$2=="/" {print $1}')
if [ -n "$ROOT_DISK" ]; then
    warn "Disco raíz (NO usar este): /dev/$ROOT_DISK"
fi

log "Discos sin particiones (candidatos para el cifrado):"
lsblk -d -e 7 -rno NAME | while read -r name; do
    part_count=$(lsblk "/dev/$name" -rno NAME | grep -c ".")
    if [ "$part_count" -eq 1 ] && [ "$name" != "$ROOT_DISK" ]; then
        size=$(lsblk -d "/dev/$name" -rno SIZE)
        echo "    /dev/$name  $size"
    fi
done
echo

read -rp "Introduce el dispositivo de disco objetivo (p. ej. /dev/sdb): " DEVICE

[ -b "$DEVICE" ] || abort "$DEVICE no es un dispositivo de bloque válido."

warn "TODOS LOS DATOS EN $DEVICE SERÁN BORRADOS. Esto no se puede deshacer."
read -rp "Escribe YES para confirmar: " CONFIRM
[ "$CONFIRM" = "YES" ] || abort "Operación cancelada."

MAPPER_NAME="zylon-data"
MOUNT_TMP="/mnt/zylon-data"
DATA_DIR="/var/zylon"
BACKUP_DIR="/var/zylon.bak"

log "Deteniendo Zylon... (si el script se interrumpe a partir de este punto, inícialo manualmente con: sudo k0s start)"
k0s stop || true

log "Formateando $DEVICE con LUKS..."
cryptsetup luksFormat "$DEVICE"

log "Abriendo el contenedor cifrado..."
cryptsetup open "$DEVICE" "$MAPPER_NAME"

log "Creando sistema de archivos ext4..."
mkfs.ext4 "/dev/mapper/$MAPPER_NAME"

mkdir -p "$MOUNT_TMP"
mount "/dev/mapper/$MAPPER_NAME" "$MOUNT_TMP"

log "Copiando datos de $DATA_DIR a la partición cifrada (esto puede tardar un rato)..."
rsync -aAX "$DATA_DIR/" "$MOUNT_TMP/"

log "Reemplazando el directorio de datos..."
mv "$DATA_DIR" "$BACKUP_DIR"
mkdir "$DATA_DIR"
umount "$MOUNT_TMP"
mount "/dev/mapper/$MAPPER_NAME" "$DATA_DIR"

UUID=$(cryptsetup luksDump "$DEVICE" | awk '/^UUID:/ { print $2 }')

log "Actualizando /etc/crypttab..."
echo "$MAPPER_NAME UUID=$UUID none luks" >> /etc/crypttab

log "Actualizando /etc/fstab..."
echo "/dev/mapper/$MAPPER_NAME $DATA_DIR ext4 defaults 0 2" >> /etc/fstab

log "Iniciando Zylon..."
k0s start

echo
log "Listo. Los datos de Zylon están ahora en una partición cifrada."
log "Verificando..."
lsblk -o NAME,FSTYPE,MOUNTPOINT | grep -E "crypto|zylon"
echo
log "Copia de seguridad en $BACKUP_DIR — elimínala cuando todo funcione correctamente:"
echo "  sudo rm -rf $BACKUP_DIR"
La contraseña se solicitará en cada arranque. Para servidores sin pantalla, consulta la documentación de Ubuntu sobre el desbloqueo remoto de LUKS.