Ovvero: SSH come socket-proxy per il browser WEB.
Spieghiamoci: SSH è uno stupendo programma per creare connessioni criptate su rete e internet. Permette di fare diversi /tipi/ di connessione (terminate alfanumerico, applicazioni grafiche, fischi, comandi remoti, ecc...).
Un fantastico "coltellino svizzero". L'uso più comune probabilmente è aprire un terminale su server remoti.
Possiamo però usarlo anche per fare connessioni che usiamo come proxy su server remoti in modo del tutto analogo alle connessioni VPN.
Vediamo lo scenario applicativo, il lancio e alcune considerazioni finali.
Scenario
Ipotizziamo di aver creato una server farm su un provider con gli host negli USA.
La server farm virtuale è in ambiente *NIX, chiusa in un classica DMZ ed espone i servizi via web.
Per la gestione-manutenzione abbiamo lasciato aperta solo la porta 22 (connessione via SSH).
Il backend di gestione dei nostri servizi è via web, ma confinato nella DMZ.
Il terminale fornato dal Provider nel tool di gestione non ci permette di collegare un browser grafico: come possiamo fare?
Un soluzione semplice consiste nel:
- creare una connessione SSH con modalità tunneling;
- lanciare il nostro browser web configurato in proxy sulla connessione SSH.
La nostra topografia:
- PC locale con Linux, ssh e FireFox;
- server remoto di connessione ssh.example.com ;
- porta proxy locale 9595.
Iniziamo.
1. Attività preparatoria
Configuriamo Firefox per navigare via socket-proxy.
NB: alcuni plugin, come FoxyProxy, permettono di creare più configurazioni, in modo semplice, richiamabili con un solo click.
- Lanciamo Firefox;
- accedere a Impostazioni -> Generale -> Impostazoini di rete -> Configurazione manuale dei proxy:
Host SOCKS: 127.0.0.1 Porta: 9595
SOCKS v5
Passiamo a lanciare il tunnel SSH.
2. Avvio tunnel SSH
1. Nel nostro PC (dove abbiamo prima preparato FireFox) apriamo un terminale;
2. lanciamo ssh con la seguente sintassi
ssh -N -D 9595
3. Uso del tunnel
Ipotizzando che la nostra web-app sian nel path "controlportal" nel server "manage.example.com" accessibile solo dall'interno della DMZ, ci basterà scrivere nella barra di navigazione del browser:
https://manage.example.com/controlportal
Considerazioni finali
Gli esempi sono di fantasia, ma dovrebbero aiutare a capire le grandi potenzilità che si aprono. Ricordiamoci, soprattutto, che la connessione è tutta criptata da SSH. L'eventuale traffico in chiaro che vi poniamo dentro diventerà, a sua volta, criptatorestando tutto trasparente all'utente.
Tre interessante vantaggio da questa tecnologia consistono in:
- accesso completo alla DMZ come se fossimo dentro la DMZ;
- il tunnel permette di far girare traffico, dischi e applicazioni grafiche (simile al VNC e TeamViewer);
- avere di fatto una VPN sul territo dove si trova il nostro VPS.