Installazione criptata di Debian

From RVM Wiki
Jump to navigation Jump to search

Scenario

  • La macchian da installare contiene due dischi
sda=boot+root
sdb=data
  • Viene fatta l'installazione e successivamente creata la partizione dati sul secondo disco
  • Si configura l'unlock automatico della partizione dati
  • Si configura l'unlock da renoto per la partizione root
  • ATTENZIONE: l'unlock remoto consente di sbloccare solo la root, quindi se non si abilita prima l'unlock automatico delle altre partizioni, il sistema si blocca.

Installazione

  • Far partire l'installazione avanzata
  • Creare una partizione di boot ext4 NON criptata sda1
  • Creare un'altra partizione che conterrà il volume di root criptato sda2
  • Installare
  • Al reboot viene richiesta la password ed il boot procede

Creazione partizione dati

  • Creare partizione sdb1
  • Cifrarla:
sudo cryptsetup --verify-passphrase --verbose --hash=sha256 --cipher=aes-cbc-essiv:sha256 --key-size=256 luksFormat /dev/sdb1
  • Attivarla con il nome sdb1_crypt
sudo cryptsetup luksOpen /dev/sdb1 sdb1_crypt
  • Formattarla
sudo mkfs.ext4 /dev/mapper/sdb1_crypt
  • Identificare l'UUID della partizioen cifrata:
sudo cryptsetup luksUUID /dev/sdb1
aae1dcfb-6114-4e17-ab9d-72856414287c
  • Inserirla in /etc/crypttab
sudoedit /etc/crypttab
sdb1_crypt UUID=aae1dcfb-6114-4e17-ab9d-72856414287c none luks
  • Montarla e inserirla in /etc/fstab
  • Aggiornare l'initrd
sudo update-initramfs -u -k all
  • Smontare la partizione
  • Fermarla
sudo cryptsetup luksClose sdb1_crypt
  • Riavviare: deve essere richiesta la password per la root e per la partizione dati, che deve risultare montata

Unlock automatico della partizione dati

  • In pratica si consente lo sblocco del volume dati tramite un keyfile, che si trova sulla root, a sua volta criptata. In questo modo lo sblocco della root consente lo sblocco della dati in automatico
  • Creare il file di unlock
 sudo dd if=/dev/urandom of=/etc/sdb1_crypt-keyfile bs=1024 count=4 
  • Dare le permission:
sudo chmod 0400 /etc/sdb1_crypt-keyfile
  • Aggiungere il keyfile al volume, inserendo una password qualsiasi che non sarà utilizzata:
sudo cryptsetup luksAddKey /dev/sdb1 /etc/sdb1_crypt-keyfile
  • Aggiornare crypttab per usare il keyfile:
sudoedit /etc/crypttab
sdb1_crypt UUID=aae1dcfb-6114-4e17-ab9d-72856414287c /etc/sdb1_crypt-keyfile luks
  • Aggiornare l'initrd
sudo update-initramfs -u -k all
  • Riavviare: deve essere richiesta SOLO la password per la root e la partizione dati deve montarsi senza alcuna richiesta di password.

Consentire lo sblocco da remoto in SSH

  • Si installa dropbear, che consente di lanciare ssh dall'initrd, ed accedere da remoto. Una volta entrati, si inserisce la password in una pipe, ed il boot procede. Al boot dropbear verrà chiuso e si riattiverà nuovamente openssh

Riferimenti