2012-08-03 01:03:06 +0000 2012-08-03 01:03:06 +0000
50
50

OpenVPN: Przekierowywać tylko określone adresy IP przez VPN?

W zdalnej sieci prywatnej znajdują się dwa serwery - serwer plików i serwer bazy danych (oba są maszynami Win, jeśli to ma znaczenie).

Serwer plików ma własne, dość solidne mechanizmy uwierzytelniania i pozwala mi łączyć się bezpośrednio ze zdalnej lokalizacji.

Serwer bazy danych używa prostej nazwy użytkownika i hasła, więc aby zapobiec nieautoryzowanemu dostępowi, jest on zamknięty w sieci lokalnej - ruch zewnętrzny jest zablokowany.

Aby uzyskać dostęp do serwera bazy danych, używam klienta OpenVPN w systemie Windows do łączenia się z serwerem VPN w sieci prywatnej.

Domyślnie OpenVPN kieruje wszystkie pakiety sieciowe przeznaczone do zdalnej sieci, w której znajduje się serwer VPN, przez VPN. Niestety, dostęp do serwera plików przez VPN jest ekstremalnie powolny!

Pytanie:

Jak mogę skonfigurować klienta OpenVPN, aby kierował przez VPN TYLKO ruch przeznaczony dla jednego, konkretnego adresu IP - mianowicie serwera bazy danych?

Odpowiedzi (5)

57
57
57
2013-08-06 08:15:41 +0000

Poprawna konfiguracja dla OpenVpn to:

route-nopull 
route 192.168.0.0 255.255.255.0

Te wpisy znajdują się w pliku .ovpn i będą kierować cały ruch z podsieci 192.168.0.0 przez VPN.

Tylko dla jednego IP (192.168.0.1):

route-nopull 
route 192.168.0.1 255.255.255.255
27
27
27
2012-08-03 03:53:45 +0000

Goals

  • Użyj zwykłego połączenia internetowego dla całego ruchu internetowego domyślnie, nawet gdy VPN jest podłączony.
  • Przekieruj ruch do jednego konkretnego adresu IP przez VPN.

Kroki

  1. Naciśnij Win + R i wykonaj ncpa.cpl.

  2. Kliknij prawym przyciskiem myszy połączenie VPN i przejdź do Właściwości → Sieć.

  3. Wybierz Internet Protocol Version 4 i przejdź do Właściwości → Zaawansowane….

  4. Usuń zaznaczenie opcji Używaj bramy domyślnej w sieci zdalnej i kliknij OK.

  5. (opcjonalnie) Powtórz poprzednie kroki dla Internet Protocol Version 6.

  6. (Ponownie) połącz się z siecią VPN.

  7. Otwórz wiersz poleceń i wykonaj route print -4.

  8. Zauważ interfejs VPN w Liście interfejsów i jego bramę w Active Routes.

  9. Dodaj trwałą trasę, która będzie dodawana do aktywnych tras za każdym razem, gdy nastąpi połączenie z VPN:

  10. (opcjonalnie) Powtórz poprzednie kroki dla route print -6.

  11. Przetestuj konfigurację.

12
12
12
2013-02-04 14:38:03 +0000

Do konfiguracji klienta OpenVPN, dodaj linię taką jak:

route The.IP.To.Go 255.255.255.255

(Where The.IP.To.Go is the IP you wish to route through the VPN)

To instruuje OpenVPN, aby utworzył wpis w tablicy routingu twojego OS.

Alternatywnie, serwer OpenVPN może być wykonany tak, aby “wypchnąć” tę konfigurację routingu w dół do klientów, poprzez dodanie do konfiguracji serwera:

push "route The.IP.To.Go 255.255.255.255"

EDIT: Jedna rzecz, którą pominąłem - domyślne przekierowywanie całego ruchu… Można to albo wyłączyć na serwerze, albo klienci mogą zdecydować się na ignorowanie “pchanych” dyrektyw (więc nasza druga opcja “pchania” trasy nie będzie działać) poprzez:

route-nopull
0
0
0
2020-01-10 21:36:56 +0000

W odpowiedzi na komentarze z prośbą o łatwe, przyjazne dla linuxa / networkmanagera rozwiązanie do dostosowywania tego, co jest routowane przez OpenVPN, oto przyjazny dla GUI sposób na skonfigurowanie tego. Ta odpowiedź jest, o ile mogę powiedzieć, po prostu wersją GUI z Odpowiedź Thomasa .

Krok 1 : wybierz swoją konfigurację VPN

Krok 2 : przejdź do odpowiedniej zakładki (albo IPv4 albo IPv6)

Krok 3 : Kliknij przycisk “Trasy…” na dole po prawej stronie

Krok 4 : Dodaj żądaną trasę (w tym przypadku jest to przekierowanie całego ruchu z 192.168.0.0.\ przez VPN

Krok 5 : Zaznacz pole wyboru “Użyj tylko dla zasobów na tym połączeniu”, aby połączenie z VPN nie zmieniło ustawień domyślnej bramy, aby przekierować cały ruch przez VPN.

-3
-3
-3
2015-02-13 09:07:32 +0000
iptables -A PREROUTING -t mangle -i <LAN_interface> \
-d <remote_network>/<remote_netmask> -j ROUTE --gw <openvpn_host_ip>