Introduzione

Ci sono momenti in cui desideri navigare in Internet privatamente, accedere a contenuti con restrizioni geografiche o bypassare i firewall intermedi che la tua rete potrebbe applicare.

Un'opzione è utilizzare una VPN, ma ciò richiede l'installazione di software client sulla macchina e la configurazione del proprio server VPN o la sottoscrizione a un servizio VPN.

L'alternativa più semplice è instradare il traffico di rete locale con un tunnel proxy SOCKS crittografato. In questo modo, tutte le applicazioni che utilizzano il proxy si collegheranno al server SSH e il server inoltrerà tutto il traffico alla sua destinazione effettiva. Il tuo ISP (provider di servizi Internet) e altre terze parti non saranno in grado di ispezionare il tuo traffico e bloccare l'accesso ai siti Web.

Questo tutorial ti guiderà attraverso il processo di creazione di un tunnel SSH crittografato e configurazione di browser Web Firefox e Google Chrome per l'utilizzo del proxy SOCKS.

Prerequisiti

  • Server che esegue qualsiasi tipo di Linux, con accesso SSH per instradare il tuo traffico attraverso di esso.
  • Web browser.
  • Client SSH.

Installare il tunnel SSH

Creeremo un tunnel SSH che inoltrerà in modo sicuro il traffico dal tuo computer locale sulla porta 9090 al server SSH sulla porta 22. È possibile utilizzare qualsiasi numero di porta maggiore di 1024, solo l'utente root può aprire porte privilegiate.

Linux e macOS

Se esegui Linux, macOS o qualsiasi altro sistema operativo basato su Unix sul tuo computer locale, puoi facilmente avviare un tunnel SSH con il seguente comando:

ssh -N -D 9090 [USER]@[SERVER_IP]

Le opzioni utilizzate sono le seguenti:

  • -N - Indica a SSH di non eseguire un comando remoto.
  • -D 9090 - Apre un tunnel SOCKS sul numero di porta specificato.
  • [USER]@[SERVER_IP] - L'utente IP SSH remoto e l'indirizzo IP del server.
  • Per eseguire il comando in background utilizzare l'opzione -f.
  • Se il server SSH è in ascolto su una porta diversa da 22 (impostazione predefinita), utilizzare l'opzione -p [PORT_NUMBER].

Una volta eseguito il comando, ti verrà chiesto di inserire la password dell'utente. Dopo averlo inserito, si accederà al server e verrà stabilito il tunnel SSH.

È possibile impostare un'autenticazione basata su chiave SSH e connettersi al server senza immettere una password.

Windows

Gli utenti Windows possono creare un tunnel SSH usando il client PuTTY SSH. Puoi scaricare PuTTY qui.

Avviare Putty e inserire l'indirizzo IP del server nel campo Host name (or IP address).

Nel menu Connection, espandi SSH e seleziona Tunnels. Immettere la porta 9090 nel campo Source Port e selezionare il pulsante Dynamic.

Fare clic sul pulsante Add.

Torna alla pagina Session per salvare le impostazioni in modo da non doverle inserire ogni volta. Immettere il nome della sessione nel campo Saved Session e fare clic sul pulsante Save.

Seleziona la sessione salvata e accedi al server remoto facendo clic sul pulsante Open.

Verrà visualizzata una nuova finestra che richiede nome utente e password. Dopo aver inserito il nome utente e la password, si accederà al server e verrà avviato il tunnel SSH.

L'impostazione dell'autenticazione con chiave pubblica ti permetterà di connetterti al tuo server senza inserire una password.

Configurazione del browser per l'utilizzo del proxy

Ora che hai aperto il tunnel SSH SOCKS, l'ultimo passaggio è configurare il tuo browser preferito per usarlo.

Firefox

I passaggi seguenti sono gli stessi per Windows, macOS e Linux.

  1. Nell'angolo in alto a destra, fai clic sull'icona dell'hamburger per aprire il menu di Firefox.
  2. Clicca sul link ⚙ Preferences.
  3. Scorri verso il basso fino alla sezione Network Settings e fai clic sul pulsante Settings....

Verrà aperta una nuova finestra.

  • Seleziona il pulsante Manual proxy configuration.
  • Inserisci 127.0.0.1 nel campo SOCKS Host e 9090 nel campo Port.
  • Seleziona la casella Proxy DNS when using SOCKS v5.
  • Fare clic sul pulsante OK per salvare le impostazioni.

A questo punto, Firefox è configurato e puoi navigare in Internet attraverso il tunnel SSH. Per verificarlo puoi andare sugoogle.com, cercare digita “what is my ip” e dovresti vedere il tuo indirizzo IP del server.

Per ripristinare le impostazioni predefinite, andare su Network Settings, selezionare il pulsante Use system proxy settings e salvare le impostazioni.

Esistono anche diversi plugin che possono aiutarti a configurare le impostazioni proxy di Firefox come FoxyProxy.

Google Chrome

Google Chrome utilizza le impostazioni proxy di sistema predefinite. Invece di modificare le impostazioni del proxy del sistema operativo, puoi utilizzare un componente aggiuntivo come SwitchyOmega o avviare il browser Web Chrome dalla riga di comando.

Per avviare Chrome utilizzando un nuovo profilo e il tunnel SSH, utilizzare il comando seguente:

Linux :

/usr/bin/google-chrome \
    --user-data-dir="$HOME/proxy-profile" \
    --proxy-server="socks5://localhost:9090"

MacOS:

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
    --user-data-dir="$HOME/proxy-profile" \
    --proxy-server="socks5://localhost:9090"

Windows :

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^
    --user-data-dir="%USERPROFILE%\proxy-profile" ^
    --proxy-server="socks5://localhost:9090"

Il profilo verrà creato automaticamente se non esiste. In questo modo è possibile eseguire più istanze di Chrome contemporaneamente.

Per confermare che il tunnel SSH funziona correttamente, apri google.com e digita "what is my ip". L'IP mostrato nel tuo browser dovrebbe essere l'indirizzo IP del tuo server.

Conclusione

Hai imparato come impostare un tunnel SSH SOCKS 5 e configurare il browser per accedere a Internet in modo privato e anonimo. Per facilità d'uso, è possibile definire il tunnel SSH nel file di configurazione SSH o creare un alias Bash che imposterà il tunnel SSH e avvierà il browser.