Come proteggere la connessione SSH automatica

2

Ho Raspberry PI 3 che ha un dongle modem 4G collegato ad esso. Funziona in modo autonomo e ogni tanto deve connettersi al mio server tramite ssh. Questo viene eseguito dallo script di servizio con password o con autenticazione della chiave che richiedono che password / passphrase siano presenti in uno script o in un file. Il problema è che chiunque può estrarre la scheda SD RPi e prendere la password / passphrase o la chiave id_rsa stessa. Esistono soluzioni sicure per questo?

    
posta Karolis Milieška 28.07.2017 - 15:05
fonte

4 risposte

1

La soluzione più sicura è quella di avere chiavi SSH crittografate con una passphrase e gestite con un agente chiave (ad esempio ssh-agent). Tuttavia,

if your system reboots, it requires human intervention to reload the keys, making it inappropriate for some uses where automatic system recovery is needed. If you find yourself trying to think of ways to automatically load the keys into the agent, then you don't really want to use the agent.

(dalla guida definitiva di O'Reilly a SSH all'indirizzo link )

Se devi usare una chiave senza passphrase, la guida dice di essere sicuro che la chiave risieda su un disco locale (la scheda SD in questo caso), e dovresti usare anche restrizioni sulla chiave pubblica come "da="e" command="in modo che il furto della chiave (o della scheda SD su cui risiede) possa essere mitigato.     

risposta data 26.09.2017 - 21:26
fonte
0

Se vuoi che Pi sia in grado di accendersi e iniziare a lavorare automaticamente, allora no, non puoi proteggere la chiave. Se è in grado di usare la chiave senza il tuo input, anche l'attaccante sarà in grado di farlo (salvo qualche tipo di hardware a prova di manomissione).

Penso che la tua migliore scommessa sia creare un account sul tuo server per il Pi e poi restringerlo il più possibile, in questo modo se qualcuno ottiene la chiave non sarà in grado di fare il maggior danno prima di revocare esso.

Ancora meglio, non usare ssh affatto. Non entri nei dettagli, ma forse questo è un problema XY . Forse potresti mantenere uno script con i comandi che vuoi eseguire sul server e attivarlo in qualche modo dal Pi senza far in modo che il Pi esegua effettivamente i comandi stessi. Ho visto, per esempio, un cron job che usa curl per inviare un valore segreto a un url per fare in modo che il server esegua uno script. Se qualcuno ottiene questo valore segreto, può eseguire lo script ogni volta che lo desidera, ma non sarà in grado di fare altro con esso.

    
risposta data 26.09.2017 - 22:16
fonte
-1

Puoi configurare Full Disk Encryption sulla scheda SD, o almeno criptare la tua cartella home.

Con uno di questi, anche se qualcuno prende la SD, i contenuti saranno crittografati.

    
risposta data 28.07.2017 - 15:22
fonte
-1
  1. Cripta il sistema operativo. e
  2. Imposta il tuo server su usa l'autenticazione a chiave pubblica con SSH . Cioè il server ha una chiave pubblica authorized_keys che accetta solo la connessione dalla chiave privata ssh-client corrispondente. In effetti, non si deve memorizzare id_rsa che si accoppia con authorized_keys nel server.

E Blocca il tuo RPI3 in una custodia robusta.

    
risposta data 28.07.2017 - 15:13
fonte

Leggi altre domande sui tag