Jak korzystać z OpenVPN poprzez restrykcyjną zaporę ogniową?


13

Jestem obecnie w sytuacji, gdy próbuję skonfigurować OpenVPN na osobistym VPS, do połączenia głównie przez zbyt restrykcyjną zaporę ogniową. Wszystkie wymienione poniżej konfiguracje działają, gdy są używane przez rozsądnie zaporowe połączenie.

Próbowałem:

  1. OpenVPN działa na standardowym porcie
  2. OpenVPN działa na porcie 443 (uruchamiam OpenVPN ręcznie z wiersza poleceń na VPS i widzę, że serwer zgłasza połączenie niemal natychmiast, zakładam, że jest to wynik DPI na zaporze ogniowej)
  3. STunnel działający na porcie 443, aby uzyskać dostęp do OpenVPN i uniknąć DPI. Jest to najbardziej udany i pozwala na połączenie i dostęp do Internetu przez VPN na ~ 10-20 sekund, zanim połączenie zostanie zamknięte siłą.

Czy jest coś jeszcze, co mogę spróbować?


1
Szanowny Panie, jaki masz „osobisty dostawca VPS”, który dołożył wszelkich starań, aby uniemożliwić uruchomienie VPN ?! Nie jest też jasne, czy próbujesz użyć VPS jako serwera OpenVPN, czy chcesz ustawić go jako klienta?
allquixotic

Woops! Powinienem być bardziej dokładny. Dostawcą VPS jest Linode i na pewno niczego nie blokują. ;) Problem polega na tym, że łączę się z VPN z klienta (mojego laptopa), którego dostęp do Internetu jest poważnie zaporowy.
RL Stine,

1
Ogólnie rzecz biorąc, rozwiązanie VPN będzie dość łatwo wykrywane przez wszystko, co wykonuje stanową kontrolę pakietów, jak wskazałeś. Silne rozłączenie może być spowodowane metodami analizy ruchu, które sprawdzają połączenie stunnela przez https i „poczekaj chwilę, standardowe połączenia HTTP / żądania nie są aż tak gadatliwe!” - w gruncie rzeczy utknąłeś. Możesz jednak spróbować proxy HTTPS; może coś, w którym przekazujesz żądanie jako
treść

3
Warto pamiętać, że ominięcie ograniczeń wdrożonych przez firmową zaporę ogniową prawdopodobnie narusza zasady firmy. Sugeruję, aby porozmawiać z administratorem zapory o tym problemie.
Ansgar Wiechers,

Odpowiedzi:


11

Połączenia odcinane po pewnym czasie czasami wskazują limit bajtów na sekundę. Spróbuj sprawdzić, czy spowolnienie połączenia VPN działa. Również jeśli masz OpenVPN skonfigurowany dla UDP, spróbuj TCP (443 UDP może być zablokowany, a 443 TCP może pozostać niewykryty).

Odwiedź dobrze znaną witrynę korzystającą z protokołu SSL i sprawdź certyfikat. Następnie zrób to samo w domu. Jeśli się nie zgadzają, twoja lokalizacja używa przezroczystego serwera proxy HTTPS SSL i faktycznie widzi ruch HTTPS.

Możliwe, że coś, co nie jest portem 443, nie jest tak dokładnie obserwowane. Spróbuj 22.

Może to zabrzmieć głupio, ale spróbuj to zrobić przez port 80 i sprawdź, co dostajesz. Możesz także spróbować skonfigurować tunel HTTP między tobą a VPS, aby ruch wyglądał jak żądania HTTP.

Jeśli czujesz się szalony, spróbuj jodu .


2
+1, ale szczególnie dla jodu!
0xC0000022L

5

Wydaje mi się, że wiem, dlaczego tak działa metoda stunnela. Wynika to z tego, że można ustawić „statyczną trasę” dla serwera stunnel. Pozwól mi to wyjaśnić. Gdy łączysz się z serwerem openvpn, zmienia on tabelę routingu i kieruje wszystkie twoje pakiety przez VPN, z wyjątkiem pakietów openvpn. faktycznie openvpn doda trasę dla twojego adresu IP serwera. Ale kiedy używasz stunnela do połączenia z serwerem openvpn, połączysz openvpn z interfejsem pętli zwrotnej i nie ma trasy do twojego serwera poza twoją VPN, więc pakiety stunnela chcą iść na serwer, a one idą do twojej VPN i twoich pakietów VPN ogłuszyć :)

Musisz więc dodać trasę do adresu IP swojego serwera, która wychodzi poza VPN (domowy router).

A jeśli chodzi o problem z portem metody 443, chcę powiedzieć, że być może twoja zapora ogniowa używa SPI lub DPI i może łatwo tworzyć różne pakiety openvpn z pakietów https (ssl). Najlepszym sposobem jest użycie stunnela, a jeśli zapora blokuje pakiety ssl, lepiej jest użyć obfsproxy lub fteproxy, aby go ominąć.

(wiem, że ten post jest za stary, ale szukałem odpowiedzi na ten sam problem od tygodni, więc chciałem podzielić się tym, czego się dowiem na ten temat)


To nie daje odpowiedzi na pytanie. Aby skrytykować lub poprosić autora o wyjaśnienie, pozostaw komentarz pod jego postem - zawsze możesz komentować własne posty, a gdy będziesz mieć wystarczającą reputację , będziesz mógł komentować każdy post .
Ramhound,

3

Odpowiedź Rezy Askari była dokładnie odpowiedzią na trzecie pytanie. Działo się to zarówno na moim komputerze z systemem Linux, jak i na Androidzie.

Na komputerze, zanim połączysz się z OpenVPN przez

sudo openvpn --config configFile.ovpn

Powinieneś dodać regułę, aby usunąć serwer stunnel z tunelu OpenVPN.

sudo /sbin/ip route add stunnel_ip via default_gateway_ip

Następnie połącz się z serwerem OpenVPN. Po zakończeniu możesz usunąć tę regułę poprzez:

sudo /sbin/ip route del stunnel_ip

Aby wszystko było łatwiejsze, abyś nie zapomniał, utwórz skrypt powłoki, który doda regułę i uruchom OpenVPN, kiedy OpenVPN wyjdzie, reguła zostanie usunięta:

sudo /sbin/ip route add stunnel_ip via default_gateway_ip

sudo openvpn --config configFile.ovpn

sudo /sbin/ip route del stunnel_ip

Na Androidzie użyj klienta „OpenVPN dla Androida” autorstwa „Arne Schwabe” i „SSLDroid” autorstwa „Balint Kovacs”.

Następnie w kliencie OpenVPN wyklucz „SSLDroid” z profilu VPN, który przechodzi przez stunnel.

Chciałbym głosować tam za odpowiedzią lub komentarzem Rezy, ale ta reguła oceny reputacji mi to uniemożliwiła.


1

Nigdy tego nie próbowałem (więc daj mi znać, czy to działa!), Ale daj zastrzyk @ używając tunelowania ssh ponad 443 i uruchom OpenVPN przez tunel. Możesz potrzebować dodatkowego zdalnego hosta, aby nasłuchiwać na 443, jeśli go nie masz, ale jest tutaj przykład http://www.anonyproz.com/openvpnsshtunnel.pdf do korzystania z ich usługi proxy [Nota redaktora: ten link Wayback Machine może być bezpieczniej], ale jest to również Google:

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

Znam również ludzi, którzy używają tego podejścia jako proxy, ponieważ ich pracodawca zablokował dostęp do stron z ofertami pracy, takich jak dice.com, gdy byli popularni.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.