Argomento che potrebbe essere scontato ed in genere associato alla possibilità di un “remote unlocking LUKS encrypted hdd”, ma per esperienza con i miei server, meglio adottare questa soluzione a prescindere.
Disclaimer: Fate attenzione a quanto stiamo per realizzare. Eventuali errori possono seri malfunzionamenti al vostro server o pc, quindi procedete con molta cautela!
In maniera semplicissima vi lascio una procedura che occorrerà prima testare su qualche VM.
Diamo per scontato il fatto di aver già aggiornato il nostro sistema e procediamo con l’installa azione di busybox e dropbear:
apt-get install dropbear busybox
Verificate e controllate che nel file /etc/initramfs-tools/initramfs.conf
vi sia qualcosa del genere, altrimenti aggiungete
... BUSYBOX=y DROPBEAR=y ...
Diamo una sistemata alle chiavi
mkdir -pv /etc/initramfs-tools/root/.ssh dropbearkey -t rsa -f /etc/initramfs-tools/root/.ssh/id_rsa.dropbear /usr/lib/dropbear/dropbearconvert dropbear openssh /etc/initramfs-tools/root/.ssh/id_rsa.dropbear /etc/initramfs-tools/root/.ssh/id_rsa touch /etc/initramfs-tools/root/.ssh/id_rsa.pub chmod ogu+rw /etc/initramfs-tools/root/.ssh/id_rsa.pub dropbearkey -y -f /etc/initramfs-tools/root/.ssh/id_rsa.dropbear | grep "^ssh-rsa " > /etc/initramfs-tools/root/.ssh/id_rsa.pub touch /etc/initramfs-tools/root/.ssh/authorized_keys chmod ogu+rw /etc/initramfs-tools/root/.ssh/authorized_keys cat /etc/initramfs-tools/root/.ssh/id_rsa.pub >> /etc/initramfs-tools/root/.ssh/authorized_keys
Facciamo in modo che dropbear non si avvicina con il sistema principale affinché sia openssl a fornire accesso tramite ssh
... NO_START=0 ...
Aggiorniamo la nostra initrd-image e disabilitiamo definitivamente dropbear
update-initramfs -u systemctl disable dropbear
Configuriamo la scheda di rete con IP statico. Modificate il file aggiungendo o modificando la seguente riga
IP=192.168.1.111::192.168.1.1:255.255.255.0::eth0:off
La scheda di rete va resettata nel caso si proceda oltre la initramfs, motivo per il quale bisognerà editare il file /usr/share/initramfs-tools/scripts/init-bottom/dropbear
come segue
... ifconfig eth0 0.0.0.0 down
Consiglio di aggiungere un semplice script che tiri su comunque la scheda di rete da inserire in /etc/initramfs-tools/scripts/local-top/
magari chiamandolo network_up
.
#!/bin/sh . /scripts/functions configure_networking
Ricordate di rendere eseguibile il file: chmod a+x /etc/initramfs-tools/scripts/local-top/network_up
Ultimo aggiornamento della initrd iniziale
update-initramfs -u
Copiatevi la chiavi id_rsa sul sistema che utilizzerete per accedere in caso di necessità al vostro sistema remoto
scp /etc/initramfs-tools/root/.ssh/id_rsa you@remotehost:~/.ssh/dropbear_id_rsa
Ok, fatto! In caso di problemi potrete accedere via ssh al vostro server e magari ripulire un filesystem corrotto 😅