Czy zdalnie uzyskujesz dostęp do serwera WWW hostowanego za VPN z zamkniętymi portami?

3

Obecnie mam następującą konfigurację:

Win Server 2008

-------> Mint 16 Cynamonowa maszyna wirtualna tunelowana przez zewnętrzną sieć VPN (przy użyciu OpenVPN)

---------------> Serwer WWW wewnątrz dla dostępu do sieci lokalnej

Czy jest jakiś możliwy sposób na dostęp do tego serwera WWW przy użyciu mojego zewnętrznego adresu IP ISP, gdy serwer sieciowy jest tunelowany za VPN ... bez potrzeby przesyłania dalej po stronie VPN?

Na przykład, czy można hostować serwer WWW na innej maszynie wirtualnej lub systemie operacyjnym hosta, który przekierowuje lub działa jako wskaźnik (... jak mod_rewrite lub przekierowanie?) Na tym serwerze lokalnym, aby można było uzyskać do niego dostęp zewnętrzny bez potrzeby mieć dostęp do konfigurowania reguł zapory na serwerze VPN?

NA PRZYKŁAD:

System operacyjny hosta

-----> VM 1, VPN + serwer WWW, lokalny adres IP karty to 192.168.1.2 (sieć domowa), IP tunelu VPN to 10.xxx, cały ruch zewnętrzny jest kierowany przez VPN.

--------------> VM 2, lokalny adres IP karty to 192.168.1.3, serwer WWW działa na porcie 80, wskazuje na stronę hostowaną na 192.168.1.2:80 i pozwala na podgląd zewnętrzny poprzez przekierowanie portów router lokalny.

Obecnie wszystkie urządzenia w sieci lokalnej mogą uzyskać dostęp do tego serwera.

Wbrew temu pomysłowi istnieje możliwość zmuszenia niektórych programów do wysyłania ruchu tylko przez określone interfejsy (tj. Lokalny interfejs Ethernet) lub zmuszania niektórych portów do trasowania przez bramę ISP zamiast sieci VPN (na poziomie systemu operacyjnego).

Doceniam Twoją opinię.

anditpaintsme
źródło
Możesz użyć rzeczywistego serwera WWW na VM2 jako „proxy”, żądając danych od tego hosta.
Nippey
W obu przypadkach jesteś niezarejestrowanym użytkownikiem - zarejestruj się i użyj łącza kontaktowego na dole, aby połączyć swoje konta.
Journeyman Geek
Masz 2 konta 1. superuser.com/users/319950/anditpainsme 2. superuser.com/users/323002/anditpaintsme , skorzystaj z formularza kontaktowego i wybierz „Muszę połączyć”, aby połączyć konta. W ten sposób możesz uzyskać kontrolę nad swoimi pytaniami i komentarzami.
Sathyajith Bhat

Odpowiedzi:

3

Tak, można to zrobić dzięki temu, że serwer WWW działa na maszynie wirtualnej z systemem Linux . Pierwszy fakt (że używasz Linuksa) jest bezwzględnym warunkiem wstępnym, drugi (że jest to maszyna wirtualna, a nie fizyczna maszyna) sprawia, że ​​jest to łatwiejsze i tańsze.

Podczas konfigurowania sieci VPN zmienia ona tabelę routingu, ustalając (w twoim przypadku), że cały ruch musi przechodzić przez inny serwer. Jeśli połączenie zostanie nawiązane przez lokalny router, Mint VM spróbuje odpowiedzieć, postępując zgodnie z instrukcjami routingu jedynej znanej tabeli, tj. Przez VPN. Jednak komputer próbujący skontaktować się z serwerem sieci Web zobaczy, że na jego zapytanie na adres inny niż VPN odpowiedział odrębny, zewnętrzny serwer VPN. Z oczywistych względów bezpieczeństwa odpowiedzi te są natychmiast odrzucane.

Aby rozwiązać ten problem, Linux ma możliwość obsługi dwóch (lub więcej) odrębnych tabel routingu, z regułami określającymi, kiedy ma być używana każda. Więc co chcesz zrobić, to utworzyć drugi interfejs na Mint VM (nazwijmy go eth1 ) i upewnij się, że ma on adres IP w twojej sieci LAN (jeśli używasz VirtualBox, oznacza to utworzenie mostkowanego interfejsu.

Teraz wystarczy skonfigurować dwie tabele routingu w taki sposób, aby w przypadku komunikacji przychodzącej za pośrednictwem OpenVPN odpowiedziała na nią tabela routingu skonfigurowana przez OpenVPN, ale w przypadku połączenia LAN ( Karta sieciowa, którą nazywamy eth1 ), odpowiada na nią inna tabela routingu, która kieruje ruchem z miejsca, z którego pochodzi, tj. Z lokalnego routera, a nie z serwera OpenVPN.

Robisz to w następujący sposób:

przed uruchomieniem VPN utwórz dwie tabele: nazwiemy je główne (ta, której ma używać OpenVPN) i NONVPN:

 echo 200 main >> /etc/iproute2/rt_tables
 echo 201 NONVPN >> /etc/iproute2/rt_tables

Dodaj bramę do każdej tabeli routingu (w razie potrzeby):

 ip route add 192.168.1.0/24 dev eth0 src <SRC1> table main
 ip route add 192.168.1.0/24 dev eth1 src <SRC2> table NONVPN

Następnie domyślna trasa:

 ip route add default via 192.168.1.1 table main
 ip route add default via 192.168.1.1 table NONVPN

gdzie założyłem, że 192.168.1.1 jest twoim lokalnym routerem, a 192.168.1.0/24 LAN.

Teraz możesz uruchomić VPN: zmodyfikuje on główną tabelę routingu.

Na koniec masz zasady wyboru tabeli tras na podstawie adresu źródłowego:

 ip rule add from 10.0.0.0/24 table main
 ip rule add from 192.168.1.0/24 table NONVPN  

gdzie założyłem, że twój tunel OpenVPN ma adresy z zakresu 10.0.0.0/24, odpowiednio zmodyfikuj.

Gotowe.

MariusMatutiae
źródło