Come usare OpenVPN attraverso un firewall restrittivo?


13

Sono attualmente nella situazione di tentare di installare OpenVPN su un VPS personale, per la connessione principalmente attraverso un firewall eccessivamente restrittivo. Tutte le impostazioni menzionate di seguito funzionano se utilizzate tramite una connessione ragionevolmente protetta da firewall.

Ho provato:

  1. OpenVPN in esecuzione sulla porta standard
  2. OpenVPN in esecuzione sulla porta 443 (avvio OpenVPN manualmente dalla riga di comando sul VPS e vedo che il server segnala che la connessione viene chiusa quasi immediatamente, suppongo che questo sia il risultato di DPI sul firewall)
  3. STunnel in esecuzione sulla porta 443 per accedere a OpenVPN ed eludere DPI. Questo è il più efficace e consente una connessione e l'accesso a Internet tramite VPN per ~ 10-20 secondi, prima che la connessione venga forzatamente chiusa.

C'è qualcos'altro che posso provare?


1
Caro signore, quale fornitore di "VPS personali" hai che fa di tutto per impedirti di eseguire una VPN ?! Inoltre, non è chiaro se si sta tentando di utilizzare il VPS come server OpenVPN o se si desidera renderlo client?
allquixotic,

Woops! Avrei dovuto essere più chiaro. Il provider VPS è Linode e sicuramente non stanno bloccando nulla. ;) Il problema è che mi sto collegando alla VPN da un client (il mio laptop) il cui accesso a Internet è gravemente protetto da firewall.
RL Stine,

1
Una soluzione VPN in generale verrà facilmente rilevata da qualsiasi cosa esegua un'ispezione dei pacchetti con stato, come hai accennato. La disconnessione forzata potrebbe essere dovuta ai metodi di analisi del traffico che guardano la connessione https di stunnel e che vanno "aspetta un minuto, le connessioni standard di richiesta / risposta HTTP non sono così chiacchierone!" - in sostanza sei bloccato. Puoi provare un proxy HTTPS però; forse qualcosa in cui si passa la richiesta come un corpo HTTP (su SSL) per un servlet e in avanti la vostra richiesta ... o_O
allquixotic

3
Si consiglia di tenere presente che l'eliminazione delle restrizioni implementate da un firewall aziendale costituisce probabilmente una violazione della politica aziendale. Ti suggerisco di parlare con l'amministratore del firewall del problema.
Ansgar Wiechers,

Risposte:


11

Le connessioni interrotte dopo un certo periodo di tempo a volte indicano un tipo di limite di byte al secondo. Prova a vedere se il rallentamento della tua connessione VPN funziona. Inoltre, se OpenVPN è configurato per UDP, provare TCP (443 UDP potrebbe essere bloccato mentre 443 TCP potrebbe non essere rilevato).

Visita un sito ben noto che utilizza SSL e controlla il certificato. Quindi fai lo stesso a casa. Se non corrispondono, la tua posizione utilizza un proxy SSL HTTPS trasparente e può effettivamente vedere il tuo traffico HTTPS.

È possibile che qualcosa che non sia la porta 443 non sia visto così da vicino. Prova 22.

Può sembrare stupido, ma prova a farlo sulla porta 80 e vedi cosa ottieni. Puoi anche provare a configurare un tunnel HTTP tra te e il VPS per rendere il traffico simile alle richieste HTTP.

Se ti senti pazzo, prova lo iodio .


2
+1, ma soprattutto per lo iodio!
0xC0000022L

5

Penso di sapere perché il metodo stunnel si comporta così. È perché si imposta una "route statica" per il server stunnel. Lascia che te lo spieghi. Quando ti connetti a un server openvpn, cambia la tabella di routing e instrada tutti i pacchetti attraverso la VPN, ad eccezione dei pacchetti openvpn. In realtà openvpn aggiungerà una route per l'indirizzo IP del tuo server. Ma quando usi stunnel per connetterti al tuo server openvpn, connetterai openvpn a un'interfaccia di loopback e non c'è alcun percorso verso il tuo server al di fuori del tuo VPN, quindi i pacchetti di stunnel vogliono andare al server e vanno al tuo VPN e i tuoi pacchetti VPN stordire :)

Quindi devi aggiungere un percorso al tuo IP server che vada al di fuori del tuo VPN (il tuo router di casa).

E per problemi con la porta del metodo 443, voglio dire che forse il tuo firewall utilizza SPI o DPI e può facilmente creare pacchetti openvpn diversi dai pacchetti https (ssl). Quindi il modo migliore è usare lo stunnel, o se il firewall blocca i pacchetti ssl è meglio usare obfsproxy o fteproxy per bypassarlo.

(So ​​che il post è troppo vecchio, ma cercavo una risposta sullo stesso problema da settimane, quindi volevo condividere ciò che ho appreso al riguardo)


Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti a un autore, lascia un commento sotto il suo post: puoi sempre commentare i tuoi post e una volta che avrai una reputazione sufficiente sarai in grado di commentare qualsiasi post .
Ramhound,

3

La risposta di Reza Askari è stata esattamente la risposta alla terza domanda. Questo è successo sia sul mio computer Linux che su Android.

Sul computer, prima di connettersi a OpenVPN tramite

sudo openvpn --config configFile.ovpn

È necessario aggiungere una regola per rimuovere il server stunnel dal tunnel OpenVPN.

sudo /sbin/ip route add stunnel_ip via default_gateway_ip

Quindi connettersi al server OpenVPN. Al termine puoi rimuovere quella regola:

sudo /sbin/ip route del stunnel_ip

Per rendere le cose più semplici e da non dimenticare, crea uno script di shell che aggiungerà la regola ed eseguirà OpenVPN, quando OpenVPN esce, la regola verrà eliminata:

sudo /sbin/ip route add stunnel_ip via default_gateway_ip

sudo openvpn --config configFile.ovpn

sudo /sbin/ip route del stunnel_ip

Su Android, usa il client "OpenVPN per Android" di "Arne Schwabe" e "SSLDroid" di "Balint Kovacs".

Quindi nel client OpenVPN, escludere "SSLDroid" dal profilo VPN che attraversa lo stunnel.

Mi sarebbe piaciuto votare la risposta o il commento di Reza lì, ma questa regola del punteggio di reputazione mi ha impedito.


1

Non l'ho mai provato (quindi fammi sapere se funziona!) Ma dai uno scatto @ usando ssh tunneling su 443 ed esegui il tuo OpenVPN attraverso il tunnel. Potrebbe essere necessario un host remoto aggiuntivo per l'ascolto su 443 se non ne hai uno, ma qui c'è un esempio http://www.anonyproz.com/openvpnsshtunnel.pdf per l'utilizzo del loro servizio proxy [Nota dell'editore: questo link a Wayback Machine potrebbe essere più sicuro], ma anche questo è Googlable:

https://www.google.com/search?q=ssh%20tunnel%20openvpn .

Ho anche conosciuto persone che usano questo approccio come proxy perché il loro datore di lavoro ha bloccato l'accesso a siti di lavoro come dice.com quando erano popolari.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.