In questa risposta affronterò un esempio concreto. Basta sostituire i nomi host, i nomi utente e le password dei computer con i vostri.
Dichiarazione del problema
Supponiamo di avere la seguente topologia di rete:
our local computer <---> server 1 <---> server 2
Per motivi di concretezza, supponiamo di avere i seguenti hostname, nomi utente e password dei computer:
LocalPC <---> hostname: mit.edu <---> hec.edu
username: bob username: john
password: dylan123 password: doe456
``` ```
Host HEC
HostName hec.edu
User john
ProxyCommand ssh bob@mit.edu -W %h:%p
Obiettivo: vogliamo impostare un proxy SOCKS che ascolti sulla porta 9991
di LocalPC
in modo che ogni volta che una connessione su LocalPC
viene avviata dalla porta 9991
passi attraverso mit.edu
e poi hec.edu
.
Esempio di caso d'uso: hec.edu
ha un server HTTP accessibile solo su http://127.0.0.1:8001 , per ragioni di sicurezza. Vorremmo poter visitare http://127.0.0.1:8001 aprendo un browser web su LocalPC
.
Configurazione
In LocalPC
, aggiungere in ~/.ssh/config
:
ssh -D9991 HEC
``` &001
Poi nel terminale di `LocalPC`, eseguire:
&001
Vi chiederà la password di `bob` su `mit.edu` (cioè, `dylan123`), poi vi chiederà la password di `john` su `hec.edu` (cioè `doe456`).
A quel punto, il proxy SOCKS è ora in esecuzione sulla porta `9991` di `LocalPC`.
Per esempio, se volete visitare una pagina web su `LocalPC` usando il proxy SOCKS, potete farlo in Firefox:
[![enter image description here](https://i.stack.imgur.com/xQsky.png)](https://i.stack.imgur.com/xQsky.png)
Alcune osservazioni:
- in `~/.ssh/config`, `HEC` è il nome della connessione: potete cambiarlo con qualsiasi cosa vogliate.
- Il `-D9991` dice a `ssh` di impostare un proxy SOCKS4 sulla porta `9991`.