Devi essere in grado di accedere a un altro host sullo stesso segmento di rete. Alcuni dei modi per ottenere l'accesso all'host non configurato correttamente richiedono root sull'host intermedio, ma esiste anche un modo semplice per ottenere l'accesso senza bisogno di root sull'host intermedio.
Il modo semplice per accedere all'host tramite IPv6
ssh -o ProxyCommand='ssh -W [fe80::42:ff:fe:42%%eth0]:%p user@intermediate-host' root@target-server
I seguenti valori di esempio in precedenza necessità comando necessari per essere sostituiti con valori corretti per il caso d'uso: fe80::42:ff:fe:42
, eth0
, user
, intermediate-host
, e target-server
.
Spiegazione dettagliata di come funziona
ProxyCommand
è una funzione ssh da utilizzare quando non è possibile aprire una connessione TCP direttamente all'host di destinazione. L'argomento ProxyCommand
è un comando di cui utilizzare stdin / stdout anziché una connessione TCP.
-W
viene utilizzato per aprire un port forwarding singolo e collegarlo a stdin / stdout. Questo si adatta bene insieme a ProxyCommand
.
fe80::42:ff:fe:42%%eth0
è l'indirizzo del collegamento locale dell'host di destinazione. Si noti che a causa ProxyCommand
dell'utilizzo %
come carattere di escape, il comando ssh digitato deve utilizzare %%
in quella posizione. Puoi trovare tutti gli indirizzi link-local sul segmento eseguendo ssh user@intermediate-host ping6 -nc2 ff02::1%eth0
.
L'utilizzo di indirizzi IPv6 di collegamento locale a questo scopo è in genere il modo più semplice perché è abilitato per impostazione predefinita su tutti i sistemi moderni e gli indirizzi di collegamento locale continuano a funzionare anche se sia gli stack IPv4 che IPv6 sono gravemente configurati in modo errato.
Ritorno a IPv4
Se IPv6 è completamente disabilitato sull'host non configurato correttamente (assolutamente sconsigliato), potrebbe essere necessario ricorrere all'uso di IPv4. Dal momento che IPv4 non ha indirizzi link-local come fa IPv6, l'accesso all'host non configurato correttamente utilizzando IPv4 diventa più complicato e necessita dell'accesso root sull'host intermedio.
Se l'host non configurato correttamente fosse ancora in grado di utilizzare il suo gateway predefinito, sarà possibile accedervi dall'esterno. Probabilmente la maschera di rete non configurata correttamente ha anche rotto il gateway predefinito a causa dello stack che si rifiuta di utilizzare un gateway al di fuori del prefisso coperto dalla maschera di rete. In tal caso, l'host non configurato correttamente sarà in grado di comunicare solo con 192.168.1.8 perché è l'unico altro indirizzo IP nella sottorete attualmente accessibile a questo host configurato in modo errato.
Se hai un login su 192.168.1.8, potresti essere in grado di ssh da lì a 192.168.1.9. Se 192.168.1.8 non è attualmente assegnato, è possibile assegnarlo temporaneamente a qualsiasi host sul segmento su cui si dispone dell'accesso root.
fe80::42:ff:fe:42
l'indirizzo è di ...? il mio server configurato male suppongo?