Connect with us

Linux

Come sbloccare LUKS utilizzando le chiavi SSH Dropbear da remoto in Linux


On Linux, crittografiamo le nostre partizioni e l’intero disco utilizzando Linux Unified Key Setup-on-disk-format (LUKS) per motivi di sicurezza e privacy. Sblocciamo il disco protetto LUKS fornendo una passphrase all’avvio. È necessario essere davanti al computer o utilizzare una console remota per aprire il disco crittografato in Linux al momento dell’avvio. Tuttavia, se il tuo sistema si trova nel seminterrato, nel centro dati / ufficio remoto o nell’ufficio al piano di sopra, non sarai in grado di sbloccare e avviare la tua macchina Linux. Possiamo utilizzare il server SSH Dropbear per Debian o Ubuntu crittografati LUKS o qualsiasi altra distribuzione Linux tramite SSH per risolvere questo problema. Lasciaci vedere come sbloccare LUKS utilizzando le chiavi SSH Dropbear in Linux al momento dell’avvio.

Perché utilizzare e sbloccare il disco di root e di avvio crittografato LUKS utilizzando Dropbear ssh?

  • Utile per un server Linux remoto o un server cloud
  • Avvia e accedi alla tua casella quando non hai una console KVM remota.
  • In altre parole, possiamo avviare il server Linux quando non hai una tastiera e uno schermo collegati alla tua scatola.

Cos’è il server SSH Dropbear?

Dropbear è un server SSH gratuito e open source creato esplicitamente per sistemi Linux e Unix incorporati con bassi requisiti di risorse. Implementa la versione 2 del protocollo Secure Shell (SSH). Supporta RSA e crittografia a curva ellittica per lo scambio di chiavi. Dropbreak è compatibile con l’autenticazione con chiave pubblica OpenSSH ~ / .ssh / authorized_keys. Presumo che tu abbia già installato Debian o Ubuntu Linux con LVM e LUKS. Ecco la mia configurazione in cui ho anche il software RAID-1:

  1. / boot / efi – La partizione di avvio del sistema viene creata quando la scheda madre esegue UEFI anziché BIOS.
  2. / dev / md0 – Linux / boot / (RAID-1 / dev / md0 montato nella directory / boot /) contiene solo i file necessari durante il processo di avvio. Il disco RAM inizializzato dal boot loader chiamato initrd. Usiamo update-initramfs per collegare il nostro server ssh Dropbear al processo di avvio. Esegui il comando ls per cercare nella directory / boot /. Vedrai i file come segue:
    ls -1 /boot/*$(uname -r)*
    /boot/config-4.19.0-13-amd64
    /boot/initrd.img-4.19.0-13-amd64
    /boot/System.map-4.19.0-13-amd64
    /boot/vmlinuz-4.19.0-13-amd64

    vmlinuz è il mio kernel Linux e initrd contiene driver Linux, supporto RAID, server ssh Dropbear e altre cose per avviare il sistema Linux.
  3. / dev / md1 – Il mio dispositivo RAID-1 con sistema crittografato LUKS. Ha due membri LVM. Uno per lo scambio e un altro per la partizione di root. In altre parole, tutti i dati sono crittografati tranne / boot / efi e / boot / partition. È anche possibile crittografare / boot /. Ricorda che il tuo modello di sicurezza e minaccia è diverso, quindi potresti voler utilizzare una protezione aggiuntiva come la password BIOS / UEFI all’avvio, proteggere l’accesso a casa / ufficio / datacenter, abilitare FDE secondo le tue esigenze e così via.

Il mio esempio di configurazione per lo sblocco remoto della radice crittografata LUKS in Ubuntu / Debian

Esegui il comando lsblk per vedere i dischi correnti, RAID, crittografia e informazioni LVM:
# lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT

Possiamo anche usare il comando cat per identificare le partizioni crittografate:
sudo cat /etc/crypttab
Ecco cosa vedo:

md1_crypt UUID=45b8c33e-a710-4062-b98f-a32a45c9d947 none luks,discard

La mia versione del sistema operativo Linux e la versione del kernel Linux in produzione come segue:
lsb_release -a && uname -mrs
Output di esempio:

No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 10 (buster)
Release:	10
Codename:	buster
Linux 4.19.0-13-amd64 x86_64

Basta parlare. Sporciamoci le mani e vediamo come decrittografare i dispositivi LUKS da remoto tramite Dropbear SSH.

Passaggio per sbloccare LUKS utilizzando le chiavi SSH Dropbear in Linux

Installerò Dropbear ssh per la mia Debian 10.x crittografata LUKS e il server LTS Ubuntu 20.04 e abiliterò lo sblocco remoto.

Passaggio 1: installazione di Dropbear su Debian o Ubuntu

Esegui il comando apt / apt-get come segue:
## First, apply Debian security patches ##
sudo apt update
sudo apt upgrade
sudo apt install dropbear-initramfs

NOTA: Potresti visualizzare un avviso del tipo “dropbear: ATTENZIONE: file authorized_keys non valido, lo sblocco remoto di cryptroot tramite SSH non funzionerà!“. Ignoralo.

Passaggio 2: configurazione di Dropbear per sbloccare il sistema crittografato LUKS

Usa il comando su o il comando sudo per diventare utente root:
sudo -i
Cd in / etc / dropbear-initramfs usando il comando cd:
cd /etc/dropbear-initramfs
Modifica il file di configurazione:
# vim config
Modifica / Aggiorna DROPBEAR_OPTIONS come segue:
DROPBEAR_OPTIONS="-I 180 -j -k -p 2222 -s"
Dove le opzioni sono le seguenti:

  1. -I 180 : Disconnette la sessione se non viene trasmesso o ricevuto traffico entro 180 secondi.
  2. -j : Disabilita il port forwarding locale ssh.
  3. -K : Disabilita anche il port forwarding remoto.
  4. -p 2222 : Ascolta il server ssh Dropbera su un indirizzo e una porta TCP specificati. Se viene fornita solo una porta come 2222, ascolta tutti gli indirizzi. è possibile specificarne fino a 10 (predefinito 22 se non specificato).
  5. -S : Disabilita gli accessi con password. Configureremo le chiavi SSH su un sistema Linux / Unix per l’autenticazione per ridurre la superficie di attacco.

Passaggio 3: configurazione dell’IP statico

Per un server Linux locale nel tuo seminterrato, puoi probabilmente capire l’IP dato a Dropbox tramite il tuo server DHCP, che è il comportamento predefinito. Tuttavia, un server remoto in un data center o un cloud necessita di un indirizzo IP pubblico come una normale sessione OpenSSH. Ecco come impostare un indirizzo IP pubblico. Modifica il file /etc/initramfs-tools/initramfs.conf
# vim /etc/initramfs-tools/initramfs.conf
Aggiungi informazioni IP staic per il tuo ssh Dropbear durante l’avvio:
IP=192.168.2.19::192.168.2.254:255.255.255.0:debian
Dove:

  1. IP = – Avvia la configurazione dell’IP statico
  2. :: – Separatore di campo
  3. 192.168.2.19 – IPv4
  4. 192.168.2.254 – Gateway
  5. 255.255.255.0 – Netmask
  6. debian – Nome host

La sintassi completa è la seguente per le impostazioni IP staitc IPv4 e IPv6:

ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>:
   <dns-server-0-ip>:<dns-server-1-ip>:<ntp0-ip>

Passaggio 4: aggiornamento o generazione di un’immagine initramfs

Usiamo lo script update-initramfs per gestire le tue immagini initramfs sulla tua casella locale ogni volta che apportiamo modifiche a /etc/initramfs-tools/initramfs.conf o / etc / dropbear-initramfs / config:
sudo update-initramfs -u
sudo update-initramfs -u -v

Il -u aggiorna un initramfs esistente e il file -v opzione aumenta la quantità di informazioni fornite durante l’azione scelta.

Passaggio 5: creazione delle chiavi SSH per l’accesso

Torniamo ai nostri client desktop come macOS, * BSD o distribuzione basata su Linux. Aprire il terminale e quindi digitare il comando seguente per configurare l’autenticazione basata su chiave pubblica SSH:
{client}$ ssh-keygen -t rsa -f ~/.ssh/intel_nuc_debian
Copia la chiave pubblica del tuo client desktop ~ / .ssh / intel_nuc_debian.pub in / etc / dropbear-initramfs / authorized_keys una chiave per riga:
{client}$ cat ~/.ssh/intel_nuc_debian.pub
Se l’accesso ssh root è abilitato, prova:
{client}$ cat ~/.ssh/intel_nuc_debian.pub | ssh root@192.168.2.176 "cat >> /etc/dropbear-initramfs/authorized_keys"
Per un utente normale prova:
{client}$ scp ~/.ssh/intel_nuc_debian.pub vivek@192.168.2.176:~/key.pub
{client}$ ssh vivek@192.168.2.176
{server}$ sudo -i
{server}# cat /home/vivek/key.pub >> /etc/dropbear-initramfs/authorized_keys
{server}# rm /home/vivek/key.pub
{server}# exit
{server}$ exit

Passaggio 6: testare il server Linux quando abilitiamo lo sblocco remoto LUKS

Fin qui tutto bene. Abbiamo installato Dropbear ssh per initramfs. Initramfs Dropbear configurato, incluso IP statico. Chiavi ssh installate ed è ora di riavviare il server Linux:
{server}$ sudo reboot

Sblocco dei volumi LUKS utilizzando ssh

Usa il comando ping per verificare la connettività:
{client}$ ping 192.168.2.19
Accediamo usando il comando ssh:
{client}$ ssh -i ~/.ssh/intel_nuc_debian -p 2222 -o "HostKeyAlgorithms ssh-rsa" root@192.168.2.19
Sbloccalo, esegui:
# cryptroot-unlock

clicca per ingrandire

Riassumendo

Ed ecco fatto, il disco LUKS sbloccato da remoto utilizzando ssh con l’aiuto del server ssh Dropbear. Potresti voler impostare il file di configurazione OpenSSH per evitare di digitare il comando ssh lungo.

???? Se ti è piaciuta questa pagina, per favore sostenere il mio lavoro su Patreon o con una donazione.
???? Ottieni i tutorial più recenti su argomenti SysAdmin, Linux / Unix, Open Source e DevOps tramite:


Ti e piaciuto questo articolo?
Supporta il mio lavoro, facendo una donazione!

Click to comment

Leave a Reply

Esegui l'accesso per Commentare.

Di tendenza

Close Popup
Questo sito utilizza i cookie per migliorare servizi ed esperienza dei lettori. Se decidi di continuare la navigazione senza blocchi premi su Accetto, oppure continua tranquillamente la navigazione, nessun dato sulla tua navigazione verrà raccolto.
Close Popup
Privacy Settings saved!
Impostazioni

Quando visiti un sito Web, esso può archiviare o recuperare informazioni sul tuo browser, principalmente sotto forma di cookies. Controlla qui i tuoi servizi di cookie personali.

Questi cookie sono necessari per il funzionamento del sito Web e non possono essere disattivati nei nostri sistemi.

Cookie tecnici
Per utilizzare questo sito web usiamo i seguenti cookie tecnici necessari:
  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec
  • swpm_session

Google Adsense
Usiamo la pubblicità di Google solo per mantenere attivi i nostro sito. Con ip anonimizzati.

Rifiuta tutti i Servizi
Save
Accetta tutti i Servizi