Sicurezza

Come creare un tunnel SSH con PuTTY (e navigare oltre il firewall)


Uno dei trucchi più utili quando ti trovi davanti a un firewall restrittivo è il tunneling SSH: in pratica incapsuli traffico web dentro una connessione SSH e il firewall passa solo il “tunnel” senza vedere i siti che visiti. In questo articolo ti spiego passo dopo passo come farlo con PuTTY, come impostare il browser e alcune alternative e accorgimenti di sicurezza da non sottovalutare. Prendi il tuo computer: lo faremo insieme, passo dopo passo. Iniziamo…

Come funziona – spiegazione veloce

In una connessione normale il firewall della tua rete esamina le richieste in uscita e può bloccare determinati siti. Con un tunnel SSH invece il tuo browser invia il traffico a una porta locale (es. 127.0.0.1:12345); PuTTY (o un altro client SSH) cripta tutto e lo inoltra a un server SSH esterno: il firewall vede solo traffico SSH verso il server esterno e non può applicare le stesse regole di filtraggio ai singoli siti dentro al tunnel.

Nota: in questa guida useremo la modalità dynamic port forwarding (che crea un proxy SOCKS locale). Questo ti permette di usare il server remoto come un proxy generico per il browser.

Come creare tunnel SSH

Prima di cominciare – cosa ti serve

Assicurati di avere:

  • Un server SSH remoto raggiungibile dall’esterno (con IP pubblico o nome di dominio) e con l’accesso SSH abilitato sulla porta che usi (di default 22).
  • Un account (username e password) sul server, o meglio ancora una coppia di chiavi SSH per autenticazione senza password.
  • PuTTY sul tuo PC Windows (il client grafico che useremo). In alternativa puoi usare il client OpenSSH da terminale su Linux/Mac o su Windows 10/11.

Step 1 – scarica e avvia PuTTY

Scarica PuTTY dal sito ufficiale di Simon Tatham e del progetto PuTTY: PuTTY è standalone (non sempre ha bisogno di installazione) e una volta scaricato puoi avviarlo con doppio click.

come creare tunnel ssh con putty

Step 2 – crea il tunnel dinamico (SOCKS) in PuTTY

Ora mettiamo mano alle impostazioni. Segui queste azioni nell’ordine:

  1. Apri PuTTY e nella casella Host Name (or IP address) inserisci l’indirizzo IP pubblico o il dominio del server SSH remoto. Controlla che la porta sia quella corretta (di solito 22) e che Connection type sia impostato su SSH.
  2. Nel menu a sinistra espandi Connection > SSH e clicca su Tunnels.
  3. Nel campo Source port inserisci un numero di porta locale superiore a 1024 (per esempio 12345) — questo è il numero che userai nel browser come proxy SOCKS.
  4. Seleziona l’opzione Dynamic (crea un proxy SOCKS) e poi premi Add. Vedrai una nuova riga tipo D12345 nella lista.
  5. Torna alla schermata principale e clicca Open per stabilire la connessione SSH; immetti username e password quando richiesto (o usa l’autenticazione a chiave se l’hai configurata).

Una volta autenticato, lascia il terminale PuTTY aperto (puoi ridurlo a icona). Finché la sessione SSH rimane attiva, il tunnel è operativo.

come creare tunnel ssh con putty

Step 3 – configura il browser (Firefox, Chrome, ecc.)

Adesso devi dire al browser di inviare il traffico al proxy SOCKS locale (127.0.0.1:sorgente_porta). Le istruzioni variano a seconda del browser.

Firefox (metodo semplice)

Vai su Impostazioni > Generale > Impostazioni di rete > Impostazioni…, scegli Configurazione manuale del proxy. Nel blocco SOCKS inserisci:

  • SOCKS Host: 127.0.0.1
  • Porta: la porta che hai scelto in PuTTY (es. 12345)
  • Seleziona SOCKS v5 e spunta “Proxy DNS when using SOCKS v5” se vuoi risolvere i nomi remoti tramite il server proxy (utile per evitare leak DNS locali).

Firefox ha una sezione chiara per queste impostazioni e supporta direttamente SOCKS v5 con la risoluzione DNS remota.

come creare tunnel ssh con putty

Chrome (attenzione: usa il proxy di sistema o flag)

Chrome non ha un pannello nativo per SOCKS diverso dal proxy di sistema. Due opzioni pratiche:

  • Avvia Chrome con la flag da riga di comando: --proxy-server="socks5://127.0.0.1:12345" e, se vuoi forzare la risoluzione remota, aggiungi --host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE 127.0.0.1". Questo indirizza il traffico del browser verso il proxy SOCKS locale.
  • Usa un’estensione tipo SwitchyOmega per gestire profili proxy e indicare 127.0.0.1:porta come SOCKS5.

Nota per Chrome: dalla versione 72 in poi Chrome può ignorare richieste verso localhost se non configuri le eccezioni corrette; potresti dover aggiungere <-loopback> alla lista di bypass se hai servizi locali che vuoi raggiungere tramite il tunnel.

Alternative a PuTTY: OpenSSH (da terminale)

Se preferisci la riga di comando (Linux, macOS o Windows 10/11 con OpenSSH), il comando equivalente è semplice:

ssh -D 12345 -C -N -p 22 username@server_pubblico

Significato rapido:

  • -D 12345: crea una SOCKS proxy locale sulla porta 12345;
  • -C: abilita la compressione (opzionale);
  • -N: non esegue comandi remoti (solo tunneling);
  • -p 22: specifica la porta SSH se diversa dalla 22.

Con questo comando la sessione resta attiva finché non la chiudi: puoi anche mandarla in background se usi chiavi e opzioni come -f.

Sicurezza e buone pratiche

Alcuni consigli che ti conviene seguire:

  • Usa l’autenticazione a chiave invece delle password: è più sicuro e ti permette di automatizzare il tunnel senza inserire la password ogni volta.
  • Abilita l’uso di SOCKS v5 nel browser e la risoluzione DNS remota se vuoi nascondere i nomi dei siti alla rete locale.
  • Evita di mandare credenziali sensibili su server che non controlli: anche se il traffico è criptato tra il tuo PC e il server SSH, il server remoto vede il traffico in chiaro quando questo esce verso Internet (a meno che non sia HTTPS, ovviamente).
  • Controlla le policy della rete aziendale: aggirare restrizioni può violare regole aziendali o leggi locali. Usa questo strumento responsabilmente e con autorizzazione quando serve.

Problemi comuni e come risolverli

Ecco i problemi che potresti incontrare e le relative soluzioni:

  • Il browser non naviga: assicurati che la porta locale che hai scelto in PuTTY sia esattamente quella impostata nel browser (127.0.0.1:porta). Controlla che la sessione SSH sia attiva e che PuTTY non sia chiuso.
  • Le risoluzioni DNS “perdono”: abilita “Proxy DNS when using SOCKS v5” in Firefox o configura Chrome con le flag per la risoluzione remota come mostrato sopra.
  • SSH bloccato sulla porta 22: alcuni provider/firewall bloccano la 22: in questo caso il server SSH può essere messo su una porta alternativa (es. 443) se hai controllo del server remoto; modifica la porta in PuTTY e connettiti sulla porta giusta.
  • Chrome ignora localhost: vedi la voce su <-loopback> o usa il profilo proxy dell’estensione.

Consigli avanzati

Se vuoi fare di più, ecco alcune idee:

  • Port forwarding locale (L): invece di usare un proxy SOCKS puoi mappare una singola porta remota su una porta locale con -L (utile per accedere a servizi specifici sul server remoto).
  • Port forwarding remoto (R): -R permette al server remoto di esporre una porta che viene inoltrata al tuo PC locale (utile per esporre servizi locali attraverso il server).
  • Persistenza della sessione: usa utility come autossh per riavviare automaticamente i tunnel caduti (soprattutto per connessioni instabili).

Tutte queste modalità sono parte delle funzionalità standard di SSH e sono ampiamente documentate.

Conclusioni

Ora che sai come creare un tunnel SSH con PuTTY (o con OpenSSH da terminale) puoi navigare usando il server remoto come proxy SOCKS e aggirare filtri locali in modo sicuro, quando ne hai l’autorizzazione. Ricordati sempre di usare chiavi SSH, di configurare correttamente la risoluzione DNS e di non usare server che non controlli per inviare dati sensibili in chiaro. Se vuoi, posso aiutarti a generare una coppia di chiavi SSH, mostrarti come impostare PuTTY per usare le chiavi private, oppure creare il comando OpenSSH adatto al tuo caso.

Ciao, 👋
piacere di conoscerti.

Iscriviti alla newsletter settimanale gratuita.
Certificata NO-SPAM!

Non inviamo spam! Leggi la nostra Informativa sulla privacy per avere maggiori informazioni.


Articoli correlati

Pulsante per tornare all'inizio

Adblock rilevato

per supportare il sito ti chiedo di disattivare l'Adblock