Vai al contenuto
⚠️ Warning: Extraordinary electrical maintenance – Scheduled shutdown of the Cloud garr-ct1 region (Catania) from 22 to 29 July 2025. For more details, please read the maintenance notice.

Volumi Cifrati con LUKS

Se vuoi creare un volume cifrato collegato alla tua macchina virtuale, puoi usare LUKS (Linux Unified Key Setup), che è lo standard per la cifratura dei dischi fissi su Linux.

Per favore fai un backup dei tuoi dati prima di eseguire le operazioni descritte in questa pagina.

Setup

Assumiamo che tu abbia già una VM attiva e funzionante. Quindi:

  • elenca i dischi attuali. Dalla riga di comando della VM emetti il seguente comando:
  fdisk -l | grep 'Disk /dev'

e annota i nomi dei dischi (es. /dev/vda).

  • crea un nuovo volume. Dalla dashboard, clicca su "Volumi" e poi su "Crea Volume", scegli un nome e una dimensione e clicca su "Crea Volume".

  • collega il nuovo volume alla VM. Nel menu a tendina delle azioni del volume seleziona "Manage Attachments". Seleziona la VM a cui il volume sarà collegato.

  • elenca i dischi attuali. Dalla riga di comando della VM emetti di nuovo il seguente comando:
  fdisk -l | grep 'Disk /dev'

Dovresti trovare un nuovo disco. Questo è solitamente /dev/vdb ma ci riferiremo ad esso come /dev/vdX d'ora in poi.

  • crea una nuova partizione sul nuovo disco. Questi comandi creeranno la partizione /dev/vdX1:
  parted -a optimal -- /dev/vdX mklabel gpt
  parted -a optimal -- /dev/vdX mkpart primary ext4 1MiB -2048s

Controlla che la nuova partizione /dev/vdX1 esista con:

  fdisk -l | grep '/dev/vdX1'

Questo dovrebbe stampare una riga con il nome e la dimensione della partizione.

  • imposta LVM:
  pvcreate /dev/vdX1
  vgcreate encvg /dev/vdX1
  lvcreate -l100%FREE -n encvol encvg
  • imposta la partizione cifrata. Emetti il comando e segui le istruzioni a schermo:
  cryptsetup -v -s 512 luksFormat /dev/encvg/encvol
  This will overwrite data on `/dev/encvg/encvol` irrevocably.

  Are you sure? (Type uppercase yes): YES
  Enter passphrase for /dev/encvg/encvol: 
  Verify passphrase: 
  Command successful.

  Scegli una passphrase forte (generata casualmente) e conservala in un luogo sicuro (es. usa un password manager).
  • apri la partizione cifrata, crea un filesystem e montalo:
  cryptsetup open --type luks /dev/encvg/encvol ev
  mkfs.ext4 /dev/mapper/ev
  mkdir /mnt/encrypted
  mount /dev/mapper/ev /mnt/encrypted
  df -h
  echo "questo sarà automaticamente criptato" > /mnt/encrypted/test.txt
  • le operazioni da eseguire ad ogni avvio della VM saranno:
  cryptsetup open --type luks /dev/encvg/encvol ev
  mount /dev/mapper/ev /mnt/encrypted

Ridimensionare

Se in seguito hai bisogno di più spazio sul tuo volume cifrato, puoi eseguire le seguenti operazioni:

  • smonta la partizione cifrata e chiudila:
  umount /mnt/encrypted
  cryptsetup close ev
  • scollega il volume dalla VM. Dalla dashboard, clicca su "Volumi", poi nel menu a tendina del volume scegli "Manage Attachments", clicca su "Detach Volume" e conferma

  • ridimensiona il volume. Vai di nuovo sul menu a tendina del volume, scegli "Extend Volume" e scegli una dimensione maggiore per il volume.

  • ricollega il volume alla VM. Di nuovo dal menu a tendina del volume scegli "Manage Attachments" e collega il volume nuovamente alla VM.

  • Correggi la tabella delle partizioni. Dalla riga di comando della VM:

  parted -a optimal /dev/vdX print
  Not all of the space available to /dev/vdX appears to be used, 
  you can fix the GPT to use all of the space (an extra 4194304 blocks)
  or continue with the current setting?
  Fix/Ignore? Fix
  Model: Virtio Block Device (virtblk)
  Disk /dev/vdX: 12.9GB
  Sector size (logical/physical): 512B/512B
  Partition Table: gpt
  Disk Flags:

    Number  Start   End     Size    File system  Name     Flags
    1      1049kB  10.7GB  10.7GB               primary

  • Estendi la partizione:
  parted -a optimal --script -- /dev/vdX resizepart 1 -2048s
  pvresize /dev/vdX1
  lvextend -l +100%FREE /dev/encvg/encvol
  cryptsetup open --type luks /dev/encvg/encvol ev
  cryptsetup resize ev
  e2fsck -f /dev/mapper/ev
  resize2fs /dev/mapper/ev
  • Monta e controlla lo spazio disponibile:
  mount /dev/mapper/ev /mnt/encrypted
  df -h

XFS

Per i volumi xfs, invece di e2fsck e resize2fs usa xfs_repair e xfs_growfs .es.:

  xfs_repair /dev/mapper/ev # invece di e2fsck -f /dev/mapper/ev
  mount /dev/mapper/ev /mnt/myvolume/ # montalo prima
  xfs_growfs /dev/mapper/ev # invece di resize2fs /dev/mapper/ev