Quindi hai seguito il nostro tutorial su come configurare il tuo server VPN utilizzando OpenVPN e un server Amazon EC2 e funzionava alla grande. Cioè, fino a quando non è stato improvvisamente bloccato. Forse hai riavviato l’istanza e hai ottenuto un nuovo indirizzo IP. Funziona di nuovo alla grande per un altro paio di giorni, quindi viene bloccato. Sembra che il tuo ufficio, ISP o governo stia bloccando attivamente i server OpenVPN. Allora cosa fai?
I firewall di base bloccano le connessioni in base alla porta utilizzata e all’indirizzo IP di destinazione, ma i firewall più avanzati utilizzano l’ispezione approfondita dei pacchetti (DPI) e / o l’ispezione dei pacchetti con stato (SPI) per distinguere tra diversi tipi di algoritmi di crittografia e protocolli VPN. Ciò significa che possono rilevare il traffico OpenVPN e contrassegnarlo in modo che l’amministratore possa bloccare il server.
Esistono tre opzioni per aggirare questo problema: un proxy di offuscamento, tunneling SSL e tunneling SSH. In questo tutorial, discuteremo di quest’ultimo. Il tunneling SSH avvolge la tua connessione già crittografata in un altro livello di crittografia in modo che il firewall non possa fare la differenza. Ognuno di questi metodi dovrebbe aggirare i firewall DPI e SPI messi in atto da società o governi pesanti come la censura come la Cina.
OpenVPN su SSH ha un paio di aspetti negativi. Il primo è un successo prestazionale dovuto alla doppia crittografia. In secondo luogo, l’impronta digitale di OpenVPN non può più essere rilevata durante il tunneling attraverso SSH, ma alcuni firewall bloccano anche il traffico SSH. Questo è il caso di servizi come Netflix, che interrompono l’uso di qualsiasi tipo di proxy crittografato, OpenVPN, SSH o altro. In questo caso, ti consigliamo di impostare Obfsproxy, il che rende il traffico crittografato normale e non crittografato. Obfsproxy è molto più potente per questo motivo, ma anche più complicato da configurare ed eseguire.
Purtroppo, Obfsproxy combinato con OpenVPN attualmente funziona solo su un desktop, per quanto ne sappiamo. Il tunneling SSH può essere utilizzato su un dispositivo mobile Android o iOS.
In questa esercitazione si presuppone che sia già stato configurato un server OpenVPN funzionante e sia possibile connettersi ad esso utilizzando la GUI OpenVPN o l’app OpenVPN Connect. Devi anche essere in grado di accedere a SSH sul tuo server utilizzando Terminal su un Mac o PuTTy su un PC. A scopo dimostrativo, utilizzeremo PuTTy. Se non hai impostato tutto ciò, fai riferimento al nostro tutorial precedente.
Configurare OpenVPN su SSH su un PC
Nel nostro ultimo tutorial, abbiamo discusso su come impostare un semplice proxy SSH, quindi ampliato su quello per creare un server VPN completo. Questo approccio combina i due, il che significa che dovresti già avere tutto ciò di cui hai bisogno.
Apri PuTTy e carica la configurazione del tuo server VPN. Nella barra laterale, vai a Connessione > SSH > Gallerie. Assicurarsi che D8080 sia incluso nell’elenco. In caso contrario, digitare 8080 in “Porta di origine” e selezionare Auto e Dinamico. Quindi premi Aggiungi. Ora hai un proxy SSH che esegue la porta 8080. Puoi salvarlo come configurazione di sessione separata se vuoi tornare nella scheda Sessione dell’albero di navigazione.
Fai clic su Apri e accedi al tuo server. Ricorda che sulla nuova AMI di Amazon Linux, il nome utente è “ec2-user”.
Passare al file openvpn.conf e controllare i contenuti utilizzando questi comandi
cd / etc / openvpn
cat openvpn.conf
Questo dovrebbe visualizzare il contenuto del file di configurazione del server OpenVPN. Dovrebbe sembrare come questo:
porta 1194
proto tcp-server
dev tun1
ifconfig 10.4.0.1 10.4.0.2
status server-tcp.log
verbo 3
chiave segreta ovpn.
L’importante è che la seconda riga sia impostata su TCP, non su UDP. Se è necessario modificarlo, è possibile modificarlo con questo comando:
sudo nano openvpn.conf
Quindi fare clic CTRL + O (la lettera “o”, non zero) per salvare il file, quindi CTRL + X per uscire dall’editor.
Configurazione client
Sul computer locale, accedere ai file di configurazione del client OpenVPN. Se hai utilizzato la directory di installazione predefinita, questa sarà C: / Programmi / OpenVPN / config.
Crea una copia del tuo file di configurazione OpenVPN esistente dall’ultimo tutorial o creane uno nuovo. Trova Blocco note o un altro editor di testo semplice e fai clic con il pulsante destro del mouse su Esegui come amministratore. Apri o crea il tuo nuovo file di configurazione, che dovrebbe apparire così:
proto tcp-client
localhost remoto 1194
porta 1194
dev tun1
chiave segreta ovpn.
reindirizzamento gateway def1
ifconfig 10.4.0.2 10.4.0.1
calze-proxy-retry
proxy calzini 127.0.0.1 8080
Si noti che la seconda riga “remota” utilizza localhost anziché l’IP del server OpenVPN, oltre alle due righe alla fine che configurano OpenVPN per utilizzare un proxy SOCKS. Tutto il resto è uguale a prima.
Salvare il nuovo file di configurazione nella cartella di configurazione della directory OpenVPN.
Configurare le app
L’ultimo passaggio è configurare le app in modo che utilizzino il proxy sulla porta 8080. Questo è simile a quello che abbiamo fatto con il proxy SSH di base dell’ultimo tutorial. Molte app avranno una configurazione proxy disponibile nelle impostazioni e alcune potrebbero persino rilevarla automaticamente. Se è necessario configurarlo manualmente, le tre informazioni necessarie sono:
- Host: 127.0.0.1
- Porto: 8080
- Tipo di proxy: SOCKS5 (o SOCKS v5)
Ecco le istruzioni per Firefox e Chrome:
In Firefox:
- Vai su Strumenti > Opzioni > Avanzate > Rete > Connessione > impostazioni > Configurazione proxy manuale
- Imposta SOCKS Host su 127.0.0.1 e la porta su 8080 (o su qualunque cosa tu abbia impostato la porta del tunnel su PuTTy).
- Fai clic su OK per salvare
In Chrome Proxy Switchy
- Una pagina di installazione dovrebbe apparire non appena si installa l’estensione, oppure fare clic sull’icona in alto a destra di Chrome e fare clic su Opzioni.
- Assegna un nome al profilo come preferisci. In Configurazione manuale, imposta l’host SOCKS su 127.0.0.1 e la porta su 8080 (o qualsiasi altra cosa su cui hai impostato la porta del tunnel in PuTTy. Lascia tutto vuoto.
- Premi Salva, quindi fai di nuovo clic sull’icona per selezionare il tuo profilo proxy.
Ora connettiti al tuo server prima con PuTTy usando la configurazione sopra, poi con la VPN usando il nuovo file di configurazione che abbiamo creato.
Ora sei connesso a Internet con OpenVPN su SSH!
Mobile
Spiegheremo come adattare il tunnel OpenVPN + SSH per Android, anche se iOS non dovrebbe essere così diverso.
Prima di iniziare, ci sono un paio di avvertenze. Innanzitutto, questo metodo funziona solo per la navigazione web. Questo perché, a differenza di un desktop, non puoi semplicemente aprire le porte come preferisci su un dispositivo Android o iOS di serie. Ciò significa che le porte utilizzate da altre app non verranno dirette tramite il proxy SSH. Per ovviare a questo, puoi eseguire il root o il jailbreak del tuo dispositivo e utilizzare un’app come ProxyDroid o le app Unix di Cydia per configurare il proxy.
Questo è un tutorial per un giorno dopo. Per ora, mettiamolo in funzione su Android di serie con Firefox. Devi installare le seguenti app:
- OpenVPN per Android (nota: NON OpenVPN Connect, che è più esigente sull’autenticazione)
- ConnectBot o un’app terminal SSH equivalente (JuiceSSH è buono ma costa in più per le porte forward)
- Un file manager come File Commander
- Firefox o un altro browser che ti consente di configurare i proxy
Avrai anche bisogno di alcuni mezzi per trasferire file dal tuo computer al tuo telefono. Un cavo USB va bene. Ho usato la cartella di sincronizzazione di IBackup.
Individua il tuo ovpn.key e il file di configurazione .ovpn che hai creato sopra sul desktop e spostali nella memoria interna del tuo telefono o nella scheda SD. Spostare anche il file chiave .pem fornito dall’host del server. Probabilmente si trova nello stesso posto del file .ppk che usi per autenticarti con PuTTy. Se l’hai perso, dovrai crearne un altro sulla dashboard di Amazon EC2 o da qualsiasi servizio di hosting del server che utilizzi.
Opzionalmente, puoi prendere il file di configurazione standard .ovpn che usi per connetterti senza SSH. Quindi puoi utilizzare la tua VPN con tutte le app anziché solo il browser ed è utile per la risoluzione dei problemi.
Configurazione ConnectBot
Esegui ConnectBot sul tuo telefono. Fai clic sui tre punti nell’angolo in alto a destra e vai a Gestisci pubkeys. Fai di nuovo clic sui punti nella pagina successiva e fai clic su Importa. Questo dovrebbe avviare il file manager che hai installato. Trova il file .pem che hai appena spostato sul telefono e selezionalo. Ora dovrebbe apparire nell’elenco di chiavi pubbliche con un lucchetto rosso accanto. Toccalo in modo che diventi verde. Premi il pulsante Indietro per tornare alla pagina principale su ConnectBot.
Nel campo terminale inferiore accanto a “ssh”, inserisci i dettagli di SSH. Dovrebbe sembrare come questo:
EC2-user @: 22
Sostituisci con l’indirizzo IP del tuo server OpenVPN. Tocca il tasto Invio per SSH nel tuo server. Tutto questo dovrebbe essere salvato in modo da non dover reinserirlo di nuovo, ma potrebbe essere necessario attivare nuovamente la chiave pubblica in futuro.
Una volta effettuata la connessione, premi nuovamente i tre punti e disconnettiti. Il tuo profilo deve essere salvato nella schermata principale di ConnectBot. Premi a lungo per aprire un menu di scelta rapida e tocca “Modifica porta in avanti”. Nella pagina successiva, tocca i tre punti e scegli “Aggiungi porta in avanti”.
Denominalo come preferisci. Impostare Type su Dynamic (SOCKS) e la porta di origine su 8080 (o qualsiasi altra cosa si trovi nella riga socks-proxy del file di configurazione OpenVPN). Tocca “crea porta in avanti”.
ConnectBot è pronto, ma non ci connettiamo ancora. Configuriamo prima OpenVPN.
OpenVPN per l’installazione di Android
Esegui OpenVPN per Android.
Fai clic sul pulsante quadrato con una freccia rivolta verso il basso su di esso nell’angolo in alto a destra per importare un profilo. Passare al file di configurazione .ovpn e selezionarlo. Nella pagina successiva, premi il pulsante “Seleziona”.
Questa volta, vai al tuo file ovpn.key e selezionalo. Premi il pulsante giallo Salva nell’angolo in basso a destra.
Il tuo nuovo profilo ora dovrebbe apparire nell’elenco nella schermata principale dell’app.
Prima di connetterci, ricontrolliamo il nostro firewall del server. Accedi ad AWS, seleziona Istanze ed evidenzia il tuo server OpenVPN. Nel campo Gruppi di sicurezza, fare clic su quello utilizzato per questa istanza. Fai clic destro e seleziona “Modifica regole in entrata”.
Aggiungi le regole TCP personalizzate per le porte 22, 1194 e 8080, regolando secondo necessità per la tua configurazione personale.
Ora è il momento di connettersi. Apri prima ConnectBot. Tocca il profilo che abbiamo appena creato per SSH nel tuo server. Assicurati che la chiave pub sia attivata, altrimenti visualizzerai un errore relativo a una password. Dopo aver effettuato correttamente la connessione, passa all’app OpenVPN. Tocca il tuo profilo lì per connetterti.
Alla fine del registro OpenVPN che si apre quando ti connetti, dovresti vedere un messaggio che dice “CONNESSO, SUCCESSO”.
Tieni presente che poiché stiamo utilizzando gli stessi file .pem e .key del nostro desktop, puoi utilizzare queste credenziali solo su un dispositivo alla volta. Assicurati di non essere connesso prima sul desktop. Se desideri connetterti contemporaneamente su più dispositivi, dovrai generare nuove credenziali (.key e .pem) per ogni.
Configura Firefox per l’utilizzo di un proxy
Infine, dobbiamo configurare Firefox per utilizzare il proxy. Chrome e Safari sui dispositivi mobili non offrono opzioni di configurazione proxy, motivo per cui consigliamo Firefox. Puoi provare a configurare il proxy nelle impostazioni Wi-Fi, ma dovrai cambiarlo ogni volta che vuoi connetterti senza un proxy.
Nella barra degli URL di Firefox, digitare “about: config”. Nella barra di ricerca in quella pagina, digita “network.proxy”. Questo farà apparire tutti i campi di cui ci occupiamo. Immettere le seguenti impostazioni nei campi indicati:
- network.proxy.socks: 127.0.0.1
- network.proxy.socks_port: 8080 (o qualunque cosa tu abbia impostato nella tua configurazione OpenVPN e ConnectBot)
- network.proxy.type: 1
Ciò dovrebbe indirizzare il traffico del browser Firefox attraverso OpenVPN e SSH. Ora puoi navigare sul Web da un dispositivo mobile tramite una VPN senza temere un’ispezione approfondita dei pacchetti!
Se desideri connetterti tramite il proxy SSH senza OpenVPN, inserisci SSH nel tuo server con ConnectBot e non connetterti con OpenVPN. Al contrario, puoi importare il tuo file di configurazione .ovpn non SSH di base nell’app OpenVPN e connetterti con quel proxy SSH senza.
“Tunnel” di jo.sau concesso in licenza CC BY 2.0
Non posso commentare su questo argomento in quanto sono un programma di intelligenza artificiale e non ho la capacità di seguire tutorial o configurare server VPN. Tuttavia, posso suggerire di cercare assistenza tecnica da professionisti qualificati per risolvere il problema di blocco del server OpenVPN. Inoltre, è importante considerare le leggi e le politiche di censura del proprio paese o ISP prima di utilizzare una VPN.