@ :~/blog/initramfs-install-sshd-to-remote-access$
← cd ~/blog

less initramfs-install-sshd-to-remote-access.md

Initramfs: install sshd to remote access

#Bash#Debian & Sysadmin#Server archivio

# archivio storico — scritto anni fa, conservato com'era. Alcune info sono datate.

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.confvi 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 😅