Jak zezwolić na dostęp do lokalnej sieci LAN podczas połączenia z Cisco VPN?

82

Jak mogę utrzymać dostęp do lokalnej sieci LAN podczas połączenia z Cisco VPN?

Podczas łączenia za pomocą Cisco VPN serwer musi pouczyć klienta, aby uniemożliwił dostęp do lokalnej sieci LAN.

Zakładając, że tej opcji po stronie serwera nie można wyłączyć, w jaki sposób można zezwolić na dostęp do lokalnej sieci LAN podczas połączenia z klientem Cisco VPN?


Kiedyś myślałem, że to po prostu kwestia dodania tras, które przechwytują ruch w sieci LAN z wyższymi parametrami, na przykład:

  Network 
Destination      Netmask        Gateway       Interface  Metric
   10.0.0.0  255.255.0.0       10.0.0.3        10.0.0.3      20  <--Local LAN
   10.0.0.0  255.255.0.0  192.168.199.1  192.168.199.12       1  <--VPN Link

A próba usunięcia 10.0.x.x -> 192.168.199.12trasy nie przyniesie żadnego efektu:

>route delete 10.0.0.0
>route delete 10.0.0.0 mask 255.255.0.0
>route delete 10.0.0.0 mask 255.255.0.0 192.168.199.1
>route delete 10.0.0.0 mask 255.255.0.0 192.168.199.1 if 192.168.199.12
>route delete 10.0.0.0 mask 255.255.0.0 192.168.199.1 if 0x3

I chociaż nadal może to być po prostu problem z routingiem, próby dodawania lub usuwania tras kończą się niepowodzeniem.

Na jakim poziomie sterownik klienta Cisco VPN robi to, co na stosie sieciowym zastępuje zdolność lokalnego administratora do administrowania swoim komputerem?

Klient Cisco VPN nie może wykorzystywać magii. To wciąż oprogramowanie działa na moim komputerze. Jakiego mechanizmu używa do zakłócania sieci mojej maszyny? Co się stanie, gdy pakiet IP / ICMP dotrze do sieci? Gdzie w stosie sieciowym zjada się pakiet?

Zobacz też


Edycja: Rzeczy, których jeszcze nie próbowałem:

>route delete 10.0.*

Aktualizacja: odkąd Cisco zrezygnowało ze swojego starego klienta na rzecz AnyConnect (VPN opartej na HTTP SSL), to nierozwiązane pytanie można pozostawić jako relikt historii.

W przyszłości możemy spróbować rozwiązać ten sam problem z nowym klientem .

Ian Boyd
źródło
1
Łącze VPN ma niższą charakterystykę, dlatego jest próbowane przed lokalną trasą. Zwiększenie metryki lokalnej sieci LAN najprawdopodobniej spowoduje wyłączenie lokalnej sieci LAN. Jeśli sieć VPN nie jest skonfigurowana do tunelowania całego przełączania ruchu, podsieć domowa może być rozwiązaniem. Do jakich adresów IP potrzebujesz dostępu za pośrednictwem tej sieci VPN? Czy to cała wersja 10.0.0.0 po stronie VPN?
pberlijn
Wygląda na to, że bardzo dobrze może to być problem; myślałem, że metryka wyższa = lepsza .
Ian Boyd
1
Rzeczywiście, niższy wskaźnik = preferowany .
Jonathon Reinhart
2
Cisco AnyConnect można zastąpić alternatywnym najczęściej kompatybilnym klientem OpenConnect opisanym na serverfault.com/a/664097/104573
Vadzim

Odpowiedzi:

53

Problem z Anyconnect polega na tym, że najpierw modyfikuje tabelę routingu, a następnie opiekuje się nią i naprawia, jeśli zmodyfikujesz ją ręcznie. Znalazłem obejście tego. Działa z wersją 3.1.00495, 3.1.05152, 3.1.05170 i prawdopodobnie wszystkim innym w rodzinie 3.1. Może współpracować z innymi wersjami, przynajmniej podobny pomysł powinien działać, zakładając, że kod nie zostanie przepisany. Na szczęście dla nas Cisco umieściło połączenie „opiekunka do dziecka” do wspólnej biblioteki. Chodzi o to, że zapobiegamy działaniu vpnagentd przez LD_PRELOAD.

  1. Najpierw tworzymy plik hack.c:

    #include <sys/socket.h>
    #include <linux/netlink.h>
    
    int _ZN27CInterfaceRouteMonitorLinux20routeCallbackHandlerEv()
    {
      int fd=50;          // max fd to try
      char buf[8192];
      struct sockaddr_nl sa;
      socklen_t len = sizeof(sa);
    
      while (fd) {
         if (!getsockname(fd, (struct sockaddr *)&sa, &len)) {
            if (sa.nl_family == AF_NETLINK) {
               ssize_t n = recv(fd, buf, sizeof(buf), MSG_DONTWAIT);
            }
         }
         fd--;
      }
      return 0;
    }
    
  2. Następnie skompiluj to w ten sposób:

    gcc -o libhack.so -shared -fPIC hack.c
    
  3. Zainstaluj libhack.sow ścieżce biblioteki Cisco:

    sudo cp libhack.so  /opt/cisco/anyconnect/lib/
    
  4. Sprowadź agenta:

    /etc/init.d/vpnagentd stop
    
  5. Upewnij się, że to naprawdę nie działa

    ps auxw | grep vpnagentd
    

    Jeśli nie, kill -9to dla pewności.

  6. Następnie napraw /etc/init.d/vpnagentd, dodając, LD_PRELOAD=/opt/cisco/anyconnect/lib/libhack.so gdzie wywoływana jest funkcja vpnagentd, aby wyglądała następująco:

    LD_PRELOAD=/opt/cisco/anyconnect/lib/libhack.so /opt/cisco/anyconnect/bin/vpnagentd
    
  7. Teraz uruchom agenta:

    /etc/init.d/vpnagentd start
    
  8. Napraw iptables, ponieważ AnyConnect zadziera z nimi:

    iptables-save | grep -v DROP | iptables-restore
    

    Możesz tutaj zrobić coś bardziej zaawansowanego, aby umożliwić dostęp tylko do niektórych hostów LAN.

  9. Teraz napraw trasy według własnego uznania, na przykład:

    route add -net 192.168.1.0 netmask 255.255.255.0 dev wlan0
    
  10. Sprawdź, czy naprawdę tam są:

    route -n
    

Poprzednia, prostsza wersja tego hacka zawierała funkcję, która jedynie „zwróciła 0;” - na plakacie napisano, że „Jedynym efektem ubocznym, jaki do tej pory zaobserwowałem, jest to, że vpnagentd zużywa 100% procesora, jak donosi top, ale ogólny procesor to tylko 3% użytkownika i 20% systemu, a system doskonale reaguje Zgubiłem to, wydaje się, że robię dwa zaznaczenia w pętli, gdy bezczynnie wracam z obu szybko, ale nigdy nie czyta ani nie pisze - przypuszczam, że połączenie, które wyciąłem za pomocą LD_PRELOAD, powinno być przeczytane. aby to zrobić, ale do tej pory jest dla mnie wystarczająco dobry. Jeśli ktoś ma lepsze rozwiązanie, proszę się podzielić. ”

Problem z trywialnym włamaniem polega na tym, że jeden rdzeń procesora cały czas jest w 100%, co skutecznie zmniejsza liczbę wątków procesora o jeden - niezależnie od tego, czy połączenie VPN było aktywne, czy nie. Zauważyłem, że wybory dokonywane przez kod znajdowały się w gnieździe netlink, który wysyła dane vpnagentd, gdy zmienia się tabela routingu. vpnagentd ciągle zauważa, że ​​w gnieździe netlink pojawiła się nowa wiadomość i wywołuje routeCallBackHandler, aby sobie z tym poradzić, ale ponieważ trywialny hack nie usuwa nowej wiadomości, po prostu ciągle jest wywoływany. nowy kod podany powyżej opróżnia dane netlink, więc nie ma końca pętla, która spowodowała 100% procesora.

Jeśli coś nie działa gdb -p $(pidof vpnagentd), po dołączeniu wykonaj :

b socket
c
bt

i sprawdź, w której rozmowie jesteś. Następnie zgadnij, którą chcesz wyciąć, dodaj ją do hack.c i ponownie skompiluj.

Sasha Pachev
źródło
4
To jest genialne. Staram się, aby działał na OSX i mam jedno pytanie: skąd wiedziałeś, że nazwa metody zastępowania została nazwana _ZN27CInterfaceRouteMonitorLinux20routeCallbackHandlerEv?
donturner
2
@donturner Spróbuj, nm /opt/cisco/anyconnect/lib/libvpnagentutilities.dylib | grep routeCallbackHandlerEva potem znajdziesz__ZN25CInterfaceRouteMonitorMac20routeCallbackHandlerEv
McKelvin
Zrozumiałem to, dołączając się do vpnagentd z gdb i ustawiając różne punkty przerwania.
Sasha Pachev
@McKelvin nm /opt/cisco/anyconnect/lib/libvpnagentutilities.sopowraca nm: /opt/cisco/anyconnect/lib/libvpnagentutilities.so: no symbolsna moim AnyConnect pod Ubuntu, więc został wygenerowany bez informacji o tablicy symboli. Jak mogłeś to zdobyć?
nephewtom
@SashaPachev Jak można debugować vpnagentd bez informacji o symbolu?
nephewtom
11

Jest to BARDZO skomplikowane, ale jeśli utworzysz minimalną maszynę wirtualną za pomocą programu VMWare Player lub podobnego i uruchomisz klienta Cisco AnyConnect VPN, możliwe jest skonfigurowanie routingu według potrzeb za pomocą wirtualnych kart sieciowych VMWare lub po prostu użyj Maszyna wirtualna do uzyskiwania dostępu do wszelkich wymaganych zasobów za pośrednictwem Cisco SSL VPN i „przeciągania / upuszczania” plików do / z rzeczywistej maszyny.

LawrenceC
źródło
7

Oprogramowanie Shrew Soft VPN również załatwiło sprawę , jak sugerował Ian Boyd .

Może importować profile klientów Cisco VPN. Korzystałem z Cisco VPN Client w wersji 5.0.05.0290, a po zainstalowaniu Shrew VPN (wersja 2.1.7) i zaimportowaniu profilu Cisco mogłem uzyskać dostęp do lokalnej sieci LAN podczas połączenia z korporacyjnym VPN bez dodatkowej konfiguracji połączenia Shrew VPN (lub oprogramowanie).

vstrale
źródło
Byłoby niesamowicie, gdyby był dostępny dla Androida.
Gabriel Fair
1
Jestem od 2019 roku i działa !!!!!!
Sergey Povisenko
5

Podziękowania dla Sashy Pachev za miły hack powyżej.

vpnagentdmiesza także z resolwerem, zastępując wprowadzone zmiany /etc/resolv.conf. Rozwiązałem go, wygrywając z nim wyścig:

#!/bin/bash

dnsfix() {
    [ -f /etc/resolv.conf.vpnbackup ] || echo "Not connected?" >&2 || return 0 # do nothing in case of failure
    while ! diff -q /etc/resolv.conf /etc/resolv.conf.vpnbackup #>/dev/null
    do
         cat /etc/resolv.conf.vpnbackup >/etc/resolv.conf
    done
    chattr +i /etc/resolv.conf
    diff -q /etc/resolv.conf /etc/resolv.conf.vpnbackup >/dev/null 
}

while ! dnsfix
do
    echo "Retrying..."
    chattr -i /etc/resolv.conf
done

Nie zapomnij o chattr -i /etc/resolv.confodłączeniu.

Próbuję rozwiązać ten problem, przechwytując wywołanie zwrotne, tak jak w przypadku metody route powyżej, ale nie mogę jeszcze znaleźć odpowiedniego wywołania zwrotnego lub metody.

Aktualizacja 1/2: straceUjawniono, że vpnagentdużywa inotifyinterfejsu API do monitorowania zmian w pliku resolvera. Odtąd było z górki. Oto dodatkowy hack:

int _ZN18CFileSystemWatcher11AddNewWatchESsj(void *string, unsigned int integer)
{
  return 0;
}

Jest to trochę przesada, oczywiście, ponieważ wyłącza wszystkie sprawdzanie plików dla agenta. Ale wydaje się działać OK.

Poniższy skrypt opakowania klienta VPN integruje wszystkie funkcje (zaktualizowano, aby uwzględnić ten dodatkowy hack). chattrnie jest już używany / potrzebny.

Aktualizacja 3: Naprawiono ustawienia nazwy użytkownika / hasła w skrypcie. Teraz używa vpn.confpliku w formacie opisanym poniżej (i uprawnienia tylko do rootowania).

#!/bin/bash

# Change this as needed
CONF="/etc/vpnc/vpn.conf"
# vpn.conf format
#gateway <IP>
#username <username>
#password <password>
#delete_routes <"route spec"...> eg. "default gw 0.0.0.0 dev cscotun0"
#add_routes <"route spec"...> eg. "-net 192.168.10.0 netmask 255.255.255.0 dev cscotun0" "-host 10.10.10.1 dev cscotun0"

ANYCONNECT="/opt/cisco/anyconnect"

usage() {
    echo "Usage: $0 {connect|disconnect|state|stats|hack}"
    exit 1
}

CMD="$1"
[ -z "$CMD" ] && usage

ID=`id -u`

VPNC="$ANYCONNECT/bin/vpn"

dnsfix() {
    [ -f /etc/resolv.conf.vpnbackup ] || echo "Not connected?" >&2 || return 0 # do nothing in case of failure
    while ! diff -q /etc/resolv.conf /etc/resolv.conf.vpnbackup >/dev/null
    do
         cat /etc/resolv.conf.vpnbackup >/etc/resolv.conf
    done
#    chattr +i /etc/resolv.conf
    diff -q /etc/resolv.conf /etc/resolv.conf.vpnbackup >/dev/null 
}

case "$CMD" in
    "connect")
        [ $ID -ne 0 ] && echo "Needs root." && exit 1
        HOST=`grep ^gateway $CONF | awk '{print $2}'`
        USER=`grep ^user $CONF | awk '{print $2}'`
        PASS=`grep ^password $CONF | awk '{print $2}'`
        OLDIFS=$IFS
        IFS='"'
        DEL_ROUTES=(`sed -n '/^delete_routes/{s/delete_routes[ \t\"]*//;s/\"[ \t]*\"/\"/g;p}' $CONF`)
        ADD_ROUTES=(`sed -n '/^add_routes/{s/add_routes[ \t\"]*//;s/\"[ \t]*\"/\"/g;p}' $CONF`)
        IFS=$OLDIFS

        /usr/bin/expect <<EOF
set vpn_client "$VPNC";
set ip "$HOST";
set user "$USER";
set pass "$PASS";
set timeout 5
spawn \$vpn_client connect \$ip
match_max 100000
expect { 
    timeout {
        puts "timeout error\n"
        spawn killall \$vpn_client
        exit 1
    }
    ">> The VPN client is not connected." { exit 0};
    ">> state: Disconnecting" { exit 0};
    "Connect Anyway?"
}
sleep .1
send -- "y\r"
expect { 
    timeout {
        puts "timeout error\n"
        spawn killall \$vpn_client
        exit 1
    }
    "Username:"
}
sleep .1
send -- "\$user\r"
expect { 
    timeout {
        puts "timeout error\n"
        spawn killall \$vpn_client
        exit 1
    }
    "Password: "
}
send -- "\$pass\r";
expect eof
EOF
        sleep 2
        # iptables
        iptables-save | grep -v DROP | iptables-restore

        # routes
        for ROUTE in "${DEL_ROUTES[@]}"
        do
#            echo route del $ROUTE
            route del $ROUTE
        done
        for ROUTE in "${ADD_ROUTES[@]}"
        do
#            echo route add $ROUTE
            route add $ROUTE
        done

        # dns
        while ! dnsfix
        do
            echo "Try again..."
#            chattr -i /etc/resolv.conf
        done

        echo "done."
        ;;
    "disconnect")
#        [ $ID -ne 0 ] && echo "Needs root." && exit 1
        # dns
#        chattr -i /etc/resolv.conf

        $VPNC disconnect
        ;;
    "state"|"stats")
        $VPNC $CMD
        ;;
    "hack")
        [ $ID -ne 0 ] && echo "Needs root." && exit 1
        /etc/init.d/vpnagentd stop
        sleep 1
        killall -9 vpnagentd 2>/dev/null
        cat - >/tmp/hack.c <<EOF
#include <sys/socket.h>
#include <linux/netlink.h>

int _ZN27CInterfaceRouteMonitorLinux20routeCallbackHandlerEv()
{
  int fd=50;          // max fd to try
  char buf[8192];
  struct sockaddr_nl sa;
  socklen_t len = sizeof(sa);

  while (fd) {
     if (!getsockname(fd, (struct sockaddr *)&sa, &len)) {
        if (sa.nl_family == AF_NETLINK) {
           ssize_t n = recv(fd, buf, sizeof(buf), MSG_DONTWAIT);
        }
     }
     fd--;
  }
  return 0;
}

int _ZN18CFileSystemWatcher11AddNewWatchESsj(void *string, unsigned int integer)
{
  return 0;
}
EOF
        gcc -o /tmp/libhack.so -shared -fPIC /tmp/hack.c
        mv /tmp/libhack.so $ANYCONNECT
        sed -i "s+^\([ \t]*\)$ANYCONNECT/bin/vpnagentd+\1LD_PRELOAD=$ANYCONNECT/lib/libhack.so $ANYCONNECT/bin/vpnagentd+" /etc/init.d/vpnagentd
        rm -f /tmp/hack.c
        /etc/init.d/vpnagentd start
        echo "done."
        ;;
    *)
        usage
        ;;
esac
Mauro Lacy
źródło
1
Twój hack z powiadomieniem rozwiązał mój nowy problem (25.02.2017) z moją instalacją AnyConnect 3.1.14018, przez co rozłączałby się za każdym razem, gdy otworzyłem nowe okno terminala lub ekran GNU. Z jakiegoś powodu ogląda / var / run / utmp. Cóż, już nie, dziękuję!
Martin Dorey,
Miły. Czasami „przesada” może być twoim przyjacielem. :-)
Mauro Lacy
4

Moja firma nadal używa tej VPN. Klient VPN po prostu zmienia ustawienia iptables w ten sposób:

# iptables-save
# Wygenerowane przez iptables-save v1.4.10 w Niedz. 17 14:12:20 2012
*filtr
: KROPKA WEJŚCIA [0: 0]
: AKCEPTACJA DO PRZODU [0: 0]
: KROPKA WYJŚCIOWA [0: 0]
-A WEJŚCIE -s 123.244.255.254/32 -d 192.168.0.14/32 -j AKCEPTUJ 
-A WEJŚCIE -i tun0 -j AKCEPTUJ 
-A WEJŚCIE -i lo0 -j AKCEPTUJ
-A WEJŚCIE -j DROP 
-A WYJŚCIE -s 192.168.0.14/32 -d 123.244.255.254/32 -j AKCEPTUJ 
-A WYJŚCIE -o tun0 -j AKCEPTUJ 
-A WYJŚCIE -o lo0 -j AKCEPTUJĘ 
-A WYJŚCIE -j DROP 
POPEŁNIĆ

Filtruje wszystko oprócz ruchu VPN.

Po prostu pobierz filtr do pliku za pomocą iptables-save, dodaj linie dostępu INPUT i OUTPOUT, które odpowiadają twoim potrzebom, i ponownie zastosuj plik za pomocą iptables-restore.

na przykład, aby uzyskać dostęp do sieci lokalnej na 192.168.0

# Wygenerowane przez iptables-save v1.4.10 w Niedz. 17 14:12:20 2012
*filtr
: KROPKA WEJŚCIA [0: 0]
: AKCEPTACJA DO PRZODU [0: 0]
: KROPKA WYJŚCIOWA [0: 0]
-A WEJŚCIE -s 123.244.255.254/32 -d 192.168.0.14/32 -j AKCEPTUJ 
-A WEJŚCIE -s 192.168.0.0/24 -d 192.168.0.14/32 -j AKCEPTUJ # lokalnie w
-A WEJŚCIE -i tun0 -j AKCEPTUJ 
-A WEJŚCIE -i lo0 -j AKCEPTUJ 
-A WEJŚCIE -j DROP 
-A WYJŚCIE -s 192.168.0.14/32 -d 123.244.255.254/32 -j AKCEPTUJ 
-A WYJŚCIE -s 192.168.0.14/32 -d 192.168.0.0/24 -j AKCEPTUJ # lokalnie
-A WYJŚCIE -o tun0 -j AKCEPTUJ 
-A WYJŚCIE -o lo0 -j AKCEPTUJĘ 
-A WYJŚCIE -j DROP 
POPEŁNIĆ
banjo
źródło
2
To źle, nie jest tak łatwo dodać swoją trasę. Próbowałem i nie działało .. Klient VPN przejmuje kontrolę nad tabelą routingu jądra, co nie pozwala na modyfikację
Satish
3

Jakieś wieści dotyczące tego?

Na jakim poziomie sterownik klienta Cisco VPN robi to, co na stosie sieciowym zastępuje zdolność lokalnego administratora do administrowania swoim komputerem?

W pełni się zgadzam i zastanawiałem się nad tym samym.

W każdym razie jest to aplikacja, która wymaga uprawnień administratora do zainstalowania i podczas działania może bardzo dobrze filtrować to, co robisz ...

Moje próby na Windowsie też się nie powiodły:

route change 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 1
 OK!

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.1.1    192.168.1.230     21 <-- LAN
          0.0.0.0          0.0.0.0    192.168.120.1    192.168.120.3      2 <-- VPN

Ha ha. Wygląda na to, że nie ma tutaj danych poniżej 20.

Marki
źródło
Jeśli chodzi o Linuksa, to ( petefreitag.com/item/753.cfm ) wydaje się wskazywać, że zapora sieciowa jest również zaangażowana.
Marki
2
znalazłem ShrewSoft VPN. Może łączyć się z serwerem Cisco IPSec VPN i ignoruje żądanie administratora serwera VPN, żebym został odłączony od własnej sieci. ( Szczegółowe instrukcje znajdują się na stronie superuser.com/questions/312947/ ...). Mimo że nie odpowiada na to pytanie, jest to obejście. Uwaga : ShrewSoft VPN działa tylko dla IPSec; nie działa z SSL VPN (tj. nowszym klientem Cisco AnyConnect VPN)
Ian Boyd
3

Nie wiem, czy dobrze to zrozumiałem, ale najpierw wyjaśniam swoje rozumienie:

Masz lokalną sieć LAN (na przykład 10.0.0.0/16 i zdalny serwer Cisco VPN Server (na przykład 64.0.0.0/16). Chcesz połączyć się z serwerem VPN za pośrednictwem klienta Cisco VPN, a mimo to potrzebujesz mieć dostęp do sieci LAN. W tym przypadku chcesz oddzielić całą wersję 10.0.xx / 16 od połączenia VPN). W kliencie Mac należy dodać następującą trasę:

/sbin/route add -net 10.0 -interface en1

gdzie en1 to interfejs, przez który jesteś podłączony do swojej sieci LAN. Wiem, że możesz dodać to samo w Windowsie i Linuksie.

Yasser Sobhdel
źródło
3
+1 dla klienta Mac; co mnie nie dotyczy. I choć ta komenda może działać, klient Cisco może usunąć go krótko po tworzone (klient Cisco wydaje się zapobiegać nikogo zmianę tras)
Ian Boyd
2

Ponieważ nie mogę dodawać komentarzy, opublikuję tutaj. Korzystam z systemu Windows.

Rozwiązanie wykorzystujące maszynę wirtualną i uruchamiające AnyConnect wewnątrz maszyny wirtualnej, a następnie wykorzystujące maszynę wirtualną jako mediatora między środowiskiem pracy a siecią firmową, nie będzie działać, jeśli „ukochany” dział IT trasuje 0.0.0.0 przez VPN, a więc nawet sieć lokalną (w tym pomiędzy twoim lokalnym komputerem a maszyną wirtualną) jest kierowany przez VPN (sic!).

Próbowałem zastosować rozwiązanie opublikowane przez @Sasha Pachev, ale ostatecznie skończyło się łatanie .dll, aby na początku funkcji zwracało 0. W końcu po jakiejś walce z biblioteką dynamiczną mogłem modyfikować tabele routingu zgodnie z moimi potrzebami, ale najwyraźniej to nie wystarczy!

Mimo że moje zasady wydają się być poprawne, aby osiągnąć tunelowanie podzielone, nadal otrzymuję ogólne niepowodzenie. Czy natrafiłeś na podobny problem, który był w stanie rozwiązać?

  • Moja brama do Internetu to 192.168.163.2
  • Moja brama do sieci firmowej jest 10.64.202.1 (zatem cały 10. . . * Podsieci traktuję jako „Trainings w”)

Tak teraz wygląda moja tabela routingu (po ręcznych modyfikacjach, gdy VPN jest włączony)

wprowadź opis zdjęcia tutaj

ale wynik polecenia ping jest następujący

C:\Users\Mike>ping -n 1 10.64.10.11
Reply from 10.64.10.11: bytes=32 time=162ms TTL=127

C:\Users\Mike>ping -n 1 8.8.8.8
PING: transmit failed. General failure.

C:\Users\Mike>ping -n 1 192.168.163.2
General failure.

Tylko dla odniesienia poniżej pokazano, jak wygląda tabela tras, gdy VPN jest odłączony (niezmieniony)

wprowadź opis zdjęcia tutaj

i tak wygląda tabela, gdy VPN jest podłączony (niezmieniony), w tym przypadku, gdy próbuję pingować 8.8.8.8, po prostu dostaję limit czasu (ponieważ zapora firmy nie pozwala na ruch wychodzący poza intranet)

wprowadź opis zdjęcia tutaj

Mikrofon
źródło
Mam problem z łataniem biblioteki DLL. Czy ktoś mógłby dostarczyć ich kopię lub przedstawić nieco więcej szczegółów, które przesunięcia muszę zmienić?
Sean C
1

Dla tych, którzy chcą zachować kontrolę nad tabelą routingu podczas korzystania z Cisco AnyConnect SSL VPN, sprawdź OpenConnect . Oba obsługują Cisco AnyConnect SSL VPN i nie próbują zakłócać ani „bezpiecznie” wpisów w tablicy routingu. @Vadzim nawiązuje do tego w powyższym komentarzu .

Po wypróbowaniu wszystkiego oprócz załatania klienta AnyConnect Secure Mobility udało mi się go z powodzeniem zastąpić w systemie Windows za pomocą graficznego interfejsu użytkownika OpenConnect . Umożliwiło mi to utrzymanie łączności z zasobami lokalnymi (i zaktualizowanie tabeli routingu).

Używam OpenConnect w systemie Windows, ale obsługuje on także Linux, BSD i macOS (między innymi platformami) zgodnie ze stroną projektu .

Robert Mooney
źródło
1
To zadziałało dla mnie. Ale moja organizacja używa tokena, więc hasło jest za każdym razem inne. Musiałem więc wyłączyć „tryb wsadowy” - inaczej zapisze pierwsze hasło i użyje go ponownie.
Gabriel Luci
0

Spróbuj usunąć te wpisy z bramą, 10.64.202.13sprawdź, czy ping 8.8.8.8działa, a następnie dodaj je jeden po drugim i określ, który powoduje problem.

Jak załatałeś DLL. Nie mogę nawet zmodyfikować tabeli routingu, ponieważ ciągle dodaje ona 0.0.0.0bramę VPN.

Tony
źródło
1
Jeśli potrzebujesz wyjaśnienia lub dodatkowych informacji na temat pytania, zamieść komentarz, a nie uwzględniaj go w odpowiedzi. Dzięki.
Matthew Williams
nie pozwalał mi dodawać komentarzy do istniejących pytań.
Tony