In questa risposta farò un esempio concreto. Devi solo sostituire i nomi host, i nomi utente e le password dei computer con i tuoi.
Dichiarazione problema
Supponiamo di avere la seguente topologia di rete:
our local computer <---> server 1 <---> server 2
Per ragioni di concretezza, supponiamo di avere i seguenti nomi host, nomi utente e password dei computer:
LocalPC <---> hostname: mit.edu <---> hec.edu
username: bob username: john
password: dylan123 password: doe456
Obiettivo: vogliamo impostare un proxy SOCKS in ascolto sulla porta 9991
di LocalPC
modo che ogni volta che una connessione su LocalPC
viene avviata dal porto 9991
passa attraverso mit.edu
allora hec.edu
.
Esempio di caso d'uso: hec.edu
ha un server HTTP accessibile solo su http://127.0.0.1:8001 , per motivi di sicurezza. Vorremmo poter visitare http://127.0.0.1:8001 aprendo un browser web LocalPC
.
Configurazione
In LocalPC
, aggiungi ~/.ssh/config
:
Host HEC
HostName hec.edu
User john
ProxyCommand ssh bob@mit.edu -W %h:%p
Quindi nel terminale di LocalPC
, esegui:
ssh -D9991 HEC
Ti chiederà la password di bob
on mit.edu
(es. dylan123
), Quindi ti chiederà la password di john
on hec.edu
(es doe456
.).
A quel punto, il proxy SOCKS è ora in esecuzione sulla porta 9991
di LocalPC
.
Ad esempio, se vuoi visitare una pagina web LocalPC
usando il proxy SOCKS, puoi farlo in Firefox:
Alcune osservazioni:
- in
~/.ssh/config
, HEC
è il nome della connessione: puoi cambiarlo in qualsiasi cosa tu voglia.
- La
-D9991
dice ssh
per impostare un proxy SOCKS4 sulla porta 9991
.