Nie można zmienić trasy za pomocą klienta VPN

10

Moje połączenie VPN zmusza cały ruch internetowy przez tunel, a to bardzo wolno. Chcę mieć możliwość tunelowania tylko niektórych adresów IP i robienia tego po mojej stronie (po stronie klienta).

Łączę się z VPN za pomocą klienta FortiSSL , tablica tras wygląda tak przed ustanowieniem połączenia:

Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.0.1    192.168.0.101     40
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
      192.168.0.0    255.255.255.0         On-link     192.168.0.101    276
    192.168.0.101  255.255.255.255         On-link     192.168.0.101    276
    192.168.0.255  255.255.255.255         On-link     192.168.0.101    276
    192.168.119.0    255.255.255.0         On-link     192.168.119.1    276
    192.168.119.1  255.255.255.255         On-link     192.168.119.1    276
  192.168.119.255  255.255.255.255         On-link     192.168.119.1    276
    192.168.221.0    255.255.255.0         On-link     192.168.221.1    276
    192.168.221.1  255.255.255.255         On-link     192.168.221.1    276
  192.168.221.255  255.255.255.255         On-link     192.168.221.1    276
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link     192.168.119.1    276
        224.0.0.0        240.0.0.0         On-link     192.168.221.1    276
        224.0.0.0        240.0.0.0         On-link     192.168.0.101    276
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link     192.168.119.1    276
  255.255.255.255  255.255.255.255         On-link     192.168.221.1    276
  255.255.255.255  255.255.255.255         On-link     192.168.0.101    276

Po podłączeniu wygląda to tak:

Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.0.1    192.168.0.101   4265
          0.0.0.0          0.0.0.0         On-link        172.16.0.1     21
        127.0.0.0        255.0.0.0         On-link         127.0.0.1   4531
        127.0.0.1  255.255.255.255         On-link         127.0.0.1   4531
  127.255.255.255  255.255.255.255         On-link         127.0.0.1   4531
       172.16.0.1  255.255.255.255         On-link        172.16.0.1    276
      192.168.0.0    255.255.255.0         On-link     192.168.0.101   4501
    192.168.0.101  255.255.255.255         On-link     192.168.0.101   4501
    192.168.0.255  255.255.255.255         On-link     192.168.0.101   4501
    192.168.119.0    255.255.255.0         On-link     192.168.119.1   4501
    192.168.119.1  255.255.255.255         On-link     192.168.119.1   4501
  192.168.119.255  255.255.255.255         On-link     192.168.119.1   4501
    192.168.221.0    255.255.255.0         On-link     192.168.221.1   4501
    192.168.221.1  255.255.255.255         On-link     192.168.221.1   4501
  192.168.221.255  255.255.255.255         On-link     192.168.221.1   4501
   200.250.246.74  255.255.255.255      192.168.0.1    192.168.0.101   4245
        224.0.0.0        240.0.0.0         On-link         127.0.0.1   4531
        224.0.0.0        240.0.0.0         On-link     192.168.119.1   4502
        224.0.0.0        240.0.0.0         On-link     192.168.221.1   4502
        224.0.0.0        240.0.0.0         On-link     192.168.0.101   4502
        224.0.0.0        240.0.0.0         On-link        172.16.0.1     21
  255.255.255.255  255.255.255.255         On-link         127.0.0.1   4531
  255.255.255.255  255.255.255.255         On-link     192.168.119.1   4501
  255.255.255.255  255.255.255.255         On-link     192.168.221.1   4501
  255.255.255.255  255.255.255.255         On-link     192.168.0.101   4501
  255.255.255.255  255.255.255.255         On-link        172.16.0.1    276

Klient VPN ustawia trasę typu „catch-all” o niższym wskaźniku niż wszystkie inne moje trasy, co prowadzi cały ruch internetowy przez tunel. Próbowałem zmienić domyślną metrykę trasy internetowej na niższą wartość:

C:\Windows\system32>route change 0.0.0.0 mask 0.0.0.0 192.168.0.1 metric 10 if 13
OK!

Ale nic się nie zmieniło.

Następnie próbowałem usunąć trasę „catch-all” VPN, tę z metryką 21 powyżej:

C:\Windows\system32>route delete 0.0.0.0 mask 0.0.0.0 if 50
OK!

I wszystko zepsuło:

C:\Windows\system32>ping 8.8.8.8

Pinging 8.8.8.8 with 32 bytes of data:
PING: transmit failed. General failure.

Próbowałem również zmienić metrykę na adapterach, ale klient FortiSSL zastępuje wszystkie ustawienia podczas łączenia, więc to nie pomogło.

Poprawka musi pochodzić z mojej strony, ponieważ ludzie po drugiej stronie potrzebują dni na odpowiedź.

Korzystam z systemu Windows 7 x64, jeśli to pomaga.

- AKTUALIZACJA (2013-12-24) -

Dzięki wskazówce mbrownnyc zbadałem problem z Rohitabem i dowiedziałem się, że klient FortiSSL obserwuje tabelę tras za pomocą NotifyRouteChangewywołania API IP Helper.

NotifyRouteChangeUstawiłem punkt przerwania przed połączeniami i użyłem opcji „Pomiń połączenie”, aby skutecznie uniemożliwić FortiSSL resetowanie wskaźników trasy, a teraz mam:

Trasy z parametrami faworyzującymi moją kartę Wi-Fi

Jednak po uruchomieniu tracert moja trasa nadal przechodzi przez VPN:

C:\Windows\system32>tracert www.google.com

Tracing route to www.google.com [173.194.118.83]
over a maximum of 30 hops:

  1    45 ms    47 ms    45 ms  Jurema [172.16.0.1]

Czy jest jakiś aspekt sieci Windows, o którym nie wiem, że może faworyzować określoną trasę, nawet jeśli wskaźniki wydruku trasy mówią inaczej?

Juliano
źródło
Czy nie ma sensu, aby Twój klient VPN wymuszał tę politykę? Firma prawdopodobnie ma politykę bezpieczeństwa, która wymaga, abyś nie korzystał z tunelowania podzielonego, a obejście tej zasady stanowiłoby zagrożenie bezpieczeństwa.
Ryan Ries,
Wręcz przeciwnie. Mam teraz dostęp do serwisów internetowych tej firmy zastrzeżonych dla partnerów IP, ponieważ mój ruch internetowy jest wysyłany przez ich internetowy adres IP. Jest to bardzo leniwa konfiguracja z ich strony, ponieważ w „Tuneluję wszystko przez VPN, więc nigdy nie będę musiał dodawać kolejnego adresu IP ani podsieci do tabeli tras”.
@Juliano Celem unikania dzielonego tunelowania jest uniemożliwienie użytkownikom wejścia do jednego tunelu, a następnie uzyskania dostępu do danych w drugim tunelu. Spodziewałbym się, że będziesz miał taki sam dostęp do tunelowanej sieci, jak gdybyś był w sieci. Jednak nie chcesz używać podzielonego tunelu, aby przyznać dostęp do świata.
BillThor
2
Właściwie, gdybym był w tej sieci, byłbym w stanie skonfigurować moje trasy i parametry, aby dać pierwszeństwo żądanemu połączeniu internetowemu (3g / 4g np.). Miałbym tę opcję, ponieważ nie podlegałbym śmiesznie restrykcyjnemu klientowi VPN. Zapobieganie dzielonemu tunelowaniu brzmi teoretycznie OK, ale ogranicza mnie WIĘCEJ, niż gdybym był fizycznie w tej sieci. Wy uzasadniacie implementację bezpieczeństwa, która rani mnie, zamiast pomagać mi znaleźć wyjście, o co tu chodzi. Jak to ominąć?
Istnieją również parametry interfejsu: ncpa.cpl> właściwości karty sieciowej> właściwości pozycji stosu IP v4> karta Ogólne / Zaawansowane> Metryka automatyczna. Spójrz tam na oba interfejsy. Zobacz także ten post na blogu o systemie Windows MultiHomed .
mbrownnyc

Odpowiedzi:

2

Zauważ, że nie używam regularnej notacji sieciowej do adresowania tutaj (takiej jak CIDR, a nawet host/masknotacji, aby nie mylić pytającego).

Zamiast usuwać trasę „bramy domyślnej” ( 0.0.0.0 mask 0.0.0.0), aby stos sieciowy nie miał pojęcia, gdzie wysłać większość pakietów, spróbuj podnieść metrykę trasy VPN poniżej tej z trasy domyślnej (w tym przypadku 4265).

Po połączeniu z klientem Fortigate:

route change 0.0.0.0 mask 0.0.0.0 172.16.0.1 metric 4266 if N

Gdzie N jest numerem interfejsu dla fortisslinterfejsu zwróconego na początku route print.

Stos sieciowy powinien traktować to poprawnie:

  • Trasa „zawierająca adresy docelowe” obsłuży pakiety (trasa informuje stos sieciowy o wysłaniu pakietów przeznaczonych this IPdo this gatewaydalszego routingu).
  • Wszystkie pakiety z docelowym adresem IP 172.16.*.*zostaną wysłane do sieci VPN; ponieważ stos sieciowy systemu Windows wie, że jeśli do interfejsu dołączony jest adres, interfejs ten służy do uzyskiwania dostępu do innych adresów IP w tym zakresie adresów. Mogę uzyskać bardziej wyraźny zakres, jeśli opublikujesz „Maskę podsieci” dla 172.16.0.1.

Musisz określić adresy IP zasobów, do których potrzebujesz dostępu przez VPN. Możesz to zrobić z łatwością, korzystając z nslookup [hostname of resource]połączenia, bez zmiany tras.

[tyrada]

Nie mam problemu z dopuszczeniem tunelowania podzielonego przez VPN, szczególnie z powodu cytowanego problemu użytkowania. Jeśli Twój dział IT rozważa tunelowanie podzielone jako mechanizm bezpieczeństwa, musi ponownie przemyśleć swoje działania:

  • Dostęp klientów VPN do zasobów powinien być izolowany i mocno ograniczony, tak jakby dostęp do nich był uzyskiwany przez Internet (ponieważ zasoby, w przypadku których nie dochodzi się pełnej kontroli, wiążą się z wyższym ryzykiem niż zasoby, w których można dochodzić niektórych).
  • Powinny one zintegrować mechanizm kontroli dostępu do sieci dla klientów VPN. Może to pozwolić im na egzekwowanie niektórych zasad na komputerach klienckich (takich jak „czy definicje antywirusowe są aktualne?” Itp.).
  • Rozważ zastosowanie sztywnego rozwiązania, takiego jak wirtualny pulpit Fortigate SSL VPN (który jest dość łatwy do skonfigurowania i bezpłatny [wydaje mi się] z licencją SSL VPN).

[/tyrada]

mbrownnyc
źródło
Kiedy próbuję zmienić metrykę VPN 0.0.0.0 na wyższą niż trasa internetowa, FortiSSL Client ustawia moją trasę internetową na jeszcze wyższą metrykę.
Juliano,
W tabeli „po” były dwie domyślne trasy bramy. VPN 0.0.0.0 i karta Wi-Fi 0.0.0.0. Usunąłem domyślną bramę VPN, ale zostawiłem tę z karty Wi-Fi, co powinno wyglądać tak, jak było wcześniej, ale wszystko zepsuło. Albo fortissl robi coś na stosie, aby uniemożliwić ludziom robienie tego, co próbuję zrobić, albo robię to źle.
Juliano,
Są to różne interfejsy, więc powinieneś być w stanie osobno dostosowywać koszty trasy. Jeśli klient obserwuje tablicę routingu, nic ci tam nie pomoże. Klient Cisco VPN jest skonfigurowany z plikiem PRF, który można kontrolować w systemie. Klient Fortigate SSL jest prawdopodobnie taki sam, rejestr lub plik. Po prostu nie jestem pewien, gdzie byłoby to ustawienie. Grzebiąc trochę, możesz znaleźć coś, co pozwoli ci skonfigurować klienta. Dodatkowo „wsparcie dla tunelowania dzielonego” to konfiguracja „po stronie serwera” / na urządzeniu Fortigate.
mbrownnyc,
Spójrz w ciągu: HKEY_CURRENT_USER\Software\Fortinet\SslvpnClient. Tunnelpowinno być interesujące. Prześlij z powrotem to, co znajdziesz. Lub odpowiedz i oznacz jako community wiki, abyś mógł pomóc innym.
mbrownnyc,
1
Szkoda Nie jesteś pewien swojej sytuacji, ale czy warto złożyć wniosek o podzielone tunelowanie? W przeciwnym razie wygląda na to, że będziesz musiał porwać niektóre wywołania API za pomocą czegoś takiego jak rohitab lub objazdy MSFT. To może być zabawny projekt weekendowy!
mbrownnyc