Cisco VPN에 연결된 상태에서 로컬 LAN 액세스를 허용하는 방법은 무엇입니까?


82

Cisco VPN에 연결된 상태에서 로컬 LAN 액세스를 유지하려면 어떻게해야합니까?

Cisco VPN을 사용하여 연결할 때 서버는 클라이언트에게 로컬 LAN 액세스를 방지하도록 지시 할 수 있어야합니다.

이 서버 측 옵션을 끌 수 없다고 가정하면 Cisco VPN 클라이언트에 연결된 상태에서 로컬 LAN 액세스를 어떻게 허용 할 수 있습니까?


예를 들어 더 높은 메트릭으로 LAN 트래픽을 캡처하는 경로를 추가하는 것만으로 생각했습니다.

  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

10.0.x.x -> 192.168.199.12경로 를 삭제 해도 아무런 효과가 없습니다.

>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

여전히 라우팅 문제 일 수 있지만 경로를 추가하거나 삭제하려는 시도는 실패합니다.

Cisco VPN 클라이언트 드라이버는 네트워크 관리자가 로컬 관리자의 시스템 관리 기능을 무시하는 작업을 어떤 수준에서 수행합니까?

Cisco VPN 클라이언트는 마법을 사용할 수 없습니다. 여전히 내 컴퓨터에서 실행되는 소프트웨어입니다. 내 컴퓨터의 네트워크를 방해하기 위해 어떤 메커니즘을 사용합니까? IP / ICMP 패킷이 네트워크에 도착하면 어떻게됩니까? 네트워킹 스택에서 패킷을 어디서 먹을 수 있습니까?

또한보십시오


편집 : 아직 시도하지 않은 것들 :

>route delete 10.0.*

업데이트 : Cisco는 AnyConnect (HTTP SSL 기반 VPN)를 선호하여 기존 클라이언트를 포기했기 때문에 해결되지 않은이 질문은 역사의 유물로 남을 수 있습니다.

앞으로는 새로운 고객과 동일한 문제 를 해결하려고 노력할 수 있습니다 .


1
VPN 링크는 메트릭이 낮으므로 로컬 경로보다 먼저 시도됩니다. 로컬 LAN의 메트릭을 늘리면 로컬 LAN이 비활성화 될 가능성이 높습니다. VPN이 모든 트래픽 전환을 터널링하도록 구성되지 않은 경우 홈 서브넷이 해결책이 될 수 있습니다. 이 VPN을 통해 액세스해야하는 IP는 무엇입니까? 이것이 VPN 쪽의 전체 10.0.0.0입니까?
pberlijn

문제가 될 수있는 것처럼 들립니다. 나는 높은 = 더 나은 메트릭을 생각했다 .
Ian Boyd


2
시스코 애니 커넥트는에 설명 OpenConnect 대안 대부분 호환 클라이언트로 대체 할 수 serverfault.com/a/664097/104573
바드

답변:


53

Anyconnect의 문제점은 먼저 라우팅 테이블을 수정 한 다음 수동으로 수정하면이를 수정하고 수정한다는 것입니다. 이에 대한 해결 방법을 찾았습니다. 버전 3.1.00495, 3.1.05152, 3.1.05170 및 3.1 제품군의 다른 항목과 호환됩니다. 다른 버전에서 작동 할 수 있지만 코드가 다시 작성되지 않는다고 가정하면 적어도 비슷한 아이디어가 작동해야합니다. 다행스럽게도 Cisco는 베이비 시터 "아기가 깨어 있습니다"호출을 공유 라이브러리에 넣었습니다. 따라서 아이디어는 LD_PRELOAD를 통한 vpnagentd의 동작을 방지하는 것입니다.

  1. 먼저 파일을 만듭니다 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. 그런 다음 다음과 같이 컴파일하십시오.

    gcc -o libhack.so -shared -fPIC hack.c
    
  3. libhack.soCisco 라이브러리 경로에 설치 하십시오.

    sudo cp libhack.so  /opt/cisco/anyconnect/lib/
    
  4. 에이전트를 내립니다.

    /etc/init.d/vpnagentd stop
    
  5. 실제로 다운되었는지 확인하십시오

    ps auxw | grep vpnagentd
    

    그렇지 않은 경우에는 kill -9확인하십시오.

  6. 그런 다음 LD_PRELOAD=/opt/cisco/anyconnect/lib/libhack.so vpnagentd가 호출되는 위치 를 추가하여 /etc/init.d/vpnagentd를 수정 하십시오.

    LD_PRELOAD=/opt/cisco/anyconnect/lib/libhack.so /opt/cisco/anyconnect/bin/vpnagentd
    
  7. 이제 에이전트를 시작하십시오.

    /etc/init.d/vpnagentd start
    
  8. AnyConnect가 엉망이기 때문에 iptables를 수정하십시오.

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

    특정 LAN 호스트에만 액세스 할 수 있도록 여기에서보다 고급 작업을 수행 할 수 있습니다.

  9. 이제 원하는대로 경로를 수정하십시오. 예를 들면 다음과 같습니다.

    route add -net 192.168.1.0 netmask 255.255.255.0 dev wlan0
    
  10. 그들이 실제로 있는지 확인하십시오 :

    route -n
    

이 해킹의 이전의 더 간단한 버전은 "return 0;" "내가 지금까지 관찰 한 유일한 부작용은 vpnagentd가 최고로보고 한대로 CPU의 100 %를 사용하지만 전체 CPU는 3 % 사용자와 20 % 시스템이며 시스템은 완벽하게 반응한다는 것입니다 straced, 유휴 상태에서 빠르게 복귀 할 때 루프에서 두 가지 선택을하는 것처럼 보이지만 읽거나 쓰지 않습니다 .LD_PRELOAD로 잘라낸 호출을 읽은 것으로 가정합니다. 해낼 수는 있지만 지금까지는 충분합니다. 누군가 더 나은 해결책이 있다면 공유하십시오. "

사소한 해킹의 문제점은 단일 CPU 코어가 항상 100 %가 되었기 때문에 VPN 연결이 활성화되어 있는지 여부에 관계없이 하드웨어 CPU 스레드 수를 1 씩 효과적으로 줄입니다. 나는 코드가하고있는 선택이 라우팅 테이블이 변경 될 때 vpnagentd 데이터를 보내는 netlink 소켓에 있음을 알았습니다. vpnagentd는 netlink 소켓에 새로운 메시지가 있다는 것을 계속 인식하고 그것을 처리하기 위해 routeCallBackHandler를 호출하지만, 사소한 해킹이 새로운 메시지를 지우지 않기 때문에 계속해서 계속 호출됩니다. 위에 제공된 새 코드는 netlink 데이터를 플러시하므로 100 % CPU를 발생시키는 무한 루프가 발생하지 않습니다.

무언가가 효과가 없다면 gdb -p $(pidof vpnagentd), 일단 첨부되면 :

b socket
c
bt

어떤 전화를 받았는지 확인한 다음 잘라내려는 전화를 추측하고 hack.c에 추가 한 후 다시 컴파일하십시오.


4
이것은 천재입니다. OSX에서 작동하도록하고 있는데 한 가지 질문이 있습니다 _ZN27CInterfaceRouteMonitorLinux20routeCallbackHandlerEv.
donturner

2
@donturner 시도 nm /opt/cisco/anyconnect/lib/libvpnagentutilities.dylib | grep routeCallbackHandlerEv하면 찾을 수 있습니다__ZN25CInterfaceRouteMonitorMac20routeCallbackHandlerEv
McKelvin

gdb로 vpnagentd에 연결하고 다양한 중단 점을 설정하여 알아 냈습니다.
Sasha Pachev

@McKelvin nm /opt/cisco/anyconnect/lib/libvpnagentutilities.sonm: /opt/cisco/anyconnect/lib/libvpnagentutilities.so: no symbolsUbuntu의 AnyConnect에서 반환 되므로 심볼 테이블 정보없이 생성되었습니다. 어떻게 얻을 수 있습니까?
nephewtom

@SashaPachev 심볼 정보없이 vpnagentd를 어떻게 디버깅 할 수 있습니까?
nephewtom

11

이는 매우 복잡하지만 VMWare Player 또는 이와 유사한 기능을 사용하여 최소 VM을 생성하고 Cisco AnyConnect VPN 클라이언트를 실행하는 경우 VMWare 가상 네트워크 어댑터를 사용하여 원하는대로 라우팅을 설정하거나 간단히 Cisco SSL VPN을 통해 필요한 모든 리소스에 액세스하고 실제 시스템과 파일을 "드래그 / 드롭"하는 VM.


7

Ian Boyd가 제안한 것처럼 Shrew Soft VPN 소프트웨어도 나를 위해 속임수를 사용 했습니다.

Cisco VPN 클라이언트 프로파일을 가져올 수 있습니다. Cisco VPN Client 버전 5.0.05.0290을 사용하고 Shrew VPN (버전 2.1.7)을 설치하고 Cisco 프로파일을 가져온 후 Shrew VPN 연결을 추가로 구성하지 않고 회사 VPN에 연결 한 상태에서 로컬 LAN에 액세스 할 수있었습니다. 소프트웨어).


이것이 안드로이드에서 가능하다면 놀랍습니다.
가브리엘 페어

1
나는 2019에서 왔으며 작동합니다 !!!!!!
Sergey Povisenko

5

위의 멋진 해킹에 대한 Sasha Pachev 에게 감사드립니다 .

vpnagentd에 대한 변경 사항을 덮어 써서 리졸버와 혼동됩니다 /etc/resolv.conf. 나는 결국 그것을 상대로 경주에서 이겨서 해결했습니다.

#!/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

chattr -i /etc/resolv.conf연결을 끊을 때 잊지 마십시오 .

위의 Routes 메소드와 같이 콜백을 가로 채서 해결하려고하지만 해당 콜백이나 메소드를 아직 찾을 수 없습니다.

업데이트 1/2 : API를 사용 하여 확인자 파일 변경 사항을 모니터링 하는 strace것으로 나타났습니다 . 거기서부터 내리막 길이었다. 추가 해킹은 다음과 같습니다.vpnagentdinotify

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

에이전트에 대한 모든 파일 감시를 비활성화하므로 약간 과잉 입니다. 그러나 제대로 작동하는 것 같습니다.

아래의 VPN 클라이언트 래퍼 스크립트는 모든 기능을 통합합니다 (이 추가 핵을 포함하도록 업데이트되었습니다). chattr더 이상 사용 / 필요하지 않습니다.

업데이트 3 : 스크립트에서 사용자 이름 / 암호 설정을 수정했습니다. 이제 vpn.conf아래 설명 된 형식 (및 루트 전용 권한) 의 파일을 사용합니다 .

#!/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

1
알림 해킹으로 AnyConnect 3.1.14018 설치에서 새로 발견 된 (2017-02-25) 문제를 해결하여 새 터미널 창이나 GNU 화면을 열 때마다 연결이 끊어졌습니다. 어떤 이유로 / var / run / utmp를보고 있습니다. 더 이상은 고마워요!
Martin Dorey

좋은. 때때로 "오버 킬"은 친구가 될 수 있습니다. :-)
Mauro Lacy

4

우리 회사는 여전히 그 VPN을 사용합니다. vpnc 클라이언트는 단순히 iptables 설정을 다음과 같이 변경합니다.

# iptables-save
# 2012 년 6 월 17 일 14:12:20에 iptables-save v1.4.10에서 생성
*필터
: 입력 드롭 [0 : 0]
: FOCCARD ACCEPT [0 : 0]
: 출력 드롭 [0 : 0]
-A 입력 -s 123.244.255.254/32 -d 192.168.0.14/32 -j ACCEPT 
-A 입력 -i tun0 -j 수락 
-A 입력 -i lo0 -j 수락
-A 입력 -j DROP 
-A 출력 -s 192.168.0.14/32 -d 123.244.255.254/32 -j ACCEPT 
-A 출력 -o tun0 -j 수락 
-A 출력 -o lo0 -j ACCEPT 
-A 출력 -j DROP 
범하다

VPN 트래픽을 제외한 모든 것을 필터링합니다.

iptables-save를 사용하여 파일로 필터를 가져와 필요에 맞는 INPUT 및 OUTPOUT 액세스 라인을 추가 한 후 iptables-restore로 파일을 다시 적용하십시오.

예를 들어 192.168.0의 로컬 네트워크에 액세스

# 2012 년 6 월 17 일 14:12:20에 iptables-save v1.4.10에서 생성
*필터
: 입력 드롭 [0 : 0]
: FOCCARD ACCEPT [0 : 0]
: 출력 드롭 [0 : 0]
-A 입력 -s 123.244.255.254/32 -d 192.168.0.14/32 -j ACCEPT 
-A 입력 -s 192.168.0.0/24 -d 192.168.0.14/32 -j ACCEPT #local in
-A 입력 -i tun0 -j 수락 
-A 입력 -i lo0 -j 수락 
-A 입력 -j DROP 
-A 출력 -s 192.168.0.14/32 -d 123.244.255.254/32 -j ACCEPT 
-A 출력 -s 192.168.0.14/32 -d 192.168.0.0/24 -j ACCEPT #local out
-A 출력 -o tun0 -j 수락 
-A 출력 -o lo0 -j ACCEPT 
-A 출력 -j DROP 
범하다

2
잘못, 경로를 추가하기가 쉽지는 않습니다. 시도했지만 작동하지 않았습니다. VPN 클라이언트가 커널 라우팅 테이블을 제어하여 수정할 수없는 커널 라우팅 테이블
Satish

3

이것에 대한 뉴스가 있습니까?

Cisco VPN 클라이언트 드라이버는 네트워크 관리자가 로컬 관리자의 시스템 관리 기능을 무시하는 작업을 어떤 수준에서 수행합니까?

나는 완전히 동의하고 똑같은 것에 대해 궁금했다.

어쨌든, 그것은 설치하는 데 관리자 권한이 필요한 응용 프로그램이며 실행하는 동안 수행하는 작업을 매우 잘 필터링 할 수 있습니다 ...

Windows에서의 시도도 실패합니다.

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

하하. 여기서 20 미만의 메트릭은 없습니다.


리눅스에 관한 한 이것은 ( petefreitag.com/item/753.cfm ) 방화벽도 관련되어있는 것으로 보입니다.
Marki

2
ShrewSoft VPN을 찾았습니다. Cisco IPSec VPN 서버에 연결할 수 있으며 VPN 서버 관리자의 요구에 따라 내 네트워크와의 연결을 끊어야합니다. ( 자세한 지침 은 superuser.com/questions/312947/… 을 참조하십시오. )이 질문에 대답하지 않더라도 해결 방법입니다. 참고 : ShrewSoft VPN은 IPSec에서만 작동합니다. 그것은 SSL VPN (즉, 새로운 시스코 애니 커넥트 VPN 클라이언트)와 함께 작동하지 않습니다
이안 보이드

3

나는 그것을 올바르게 이해했는지 모르겠지만 먼저 내 이해를 분명히합니다.

로컬 LAN (예 : 10.0.0.0/16)과 원격 Cisco VPN Server (예 : 64.0.0.0/16)가 있으며 Cisco VPN 클라이언트를 통해 VPN 서버에 연결하려고하지만 여전히 필요합니다 이 경우 전체 10.0.xx / 16을 VPN 연결에서 분리하려고합니다. Mac 클라이언트에 다음 경로를 추가해야합니다.

/sbin/route add -net 10.0 -interface en1

여기서 en1은 LAN에 연결되는 인터페이스입니다. Windows와 Linux에서도 같은 것을 추가 할 수 있다는 것을 알고 있습니다.


3
Mac 클라이언트의 경우 +1; 그것은 나에게 적용되지 않습니다. 이 명령이 작동하는 동안 Cisco 클라이언트는 생성 된 직후 명령을 삭제할 수 있습니다 (Cisco 클라이언트는 경로를 변경하지 못하게하는 것 같습니다)
Ian Boyd

2

의견을 추가 할 수 없으므로 여기에 게시하겠습니다. Windows에서 실행 중입니다.

가상 머신을 사용하고 VM 내에서 AnyConnect를 실행 한 다음 VM을 작업 환경과 회사 네트워크 사이의 중재자로 사용하는 솔루션은 "사랑하는"IT 부서가 VPN을 통해 0.0.0.0을 라우팅하여 로컬 네트워크까지 포함하는 경우 작동하지 않습니다. 로컬 PC와 VM 간)은 VPN (sic!)을 통해 라우팅됩니다.

@Sasha Pachev가 게시 한 솔루션을 적용하려고했지만 결국 .dll 패치를 끝내서 함수 시작시 0을 반환했습니다. 결국 동적 라이브러리와의 싸움 후 필요에 따라 라우팅 테이블을 수정할 수 있었지만 충분하지 않습니다!

분할 터널링을 달성하기 위해 규칙이 올바른 것 같지만 여전히 일반 오류가 발생합니다. 당신은 그것을 해결할 수있는 비슷한 문제를 겪었습니까?

  • 인터넷으로가는 관문은 192.168.163.2입니다.
  • 이 회사의 네트워크에 내 게이트웨이 10.64.202.1 (따라서 전체 10입니다 . . * 나는 "의 comapny의"로 처리 서브넷)

이것이 내 라우팅 테이블이 현재 모습입니다 (VPN이 켜져있는 동안 수동 수정 후)

여기에 이미지 설명을 입력하십시오

그러나 핑의 결과는 다음과 같습니다

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.

참고로 아래는 VPN 연결이 끊어졌을 때의 라우팅 테이블 모습입니다.

여기에 이미지 설명을 입력하십시오

핑을 시도 할 때 VPN이 연결되어 (변경되지 않은) 테이블이 어떻게 보이는지입니다. 8.8.8.8회사 방화벽이 트래픽이 인트라넷 외부로 나가는 것을 허용하지 않기 때문에 시간 초과가 발생합니다.

여기에 이미지 설명을 입력하십시오


DLL 패치에 어려움을 겪고 있습니다. 누군가 사본을 제공하거나 변경해야 할 오프셋에 대해 좀 더 자세히 설명 할 수 있습니까?
Sean C

1

Cisco AnyConnect SSL VPN을 사용할 때 라우팅 테이블을 제어하려는 경우 OpenConnect를 확인하십시오 . 둘 다 Cisco AnyConnect SSL VPN을 지원하며 라우팅 테이블 항목을 방해하거나 '보안'하지 않습니다. @Vadzim주석 에서 이것을 암시합니다 .

모든 것을 시도했지만 AnyConnect Secure Mobility Client를 패치 한 후 Windows에서 OpenConnect GUI 로 성공적으로 교체 할 수있었습니다 . 이를 통해 로컬 리소스에 대한 연결을 유지하고 라우팅 테이블을 업데이트 할 수있었습니다.

Windows에서 OpenConnect를 사용하지만 프로젝트 페이지에 따라 Linux, BSD 및 macOS (다른 플랫폼 중에서도) 를 지원합니다 .


1
이것은 나를 위해 일했습니다. 그러나 우리 조직은 토큰을 사용하므로 매번 암호가 다릅니다. 따라서 "배치 모드"를 설정해야했습니다. 그렇지 않으면 첫 번째 비밀번호를 저장하고 재사용합니다.
가브리엘 루시

0

게이트웨이를 사용하여 해당 항목을 제거하고 10.64.202.13ping이 8.8.8.8작동하는지 확인한 다음 하나씩 다시 추가하고 문제를 일으키는 항목을 식별하십시오.

DLL을 어떻게 패치 했습니까? 0.0.0.0VPN 게이트웨이를 다시 사용 하여 라우팅 테이블을 계속 추가하기 때문에 라우팅 테이블을 수정할 수도 없습니다 .


1
질문에 대한 설명이나 추가 정보가 필요하면 답변에 포함시키지 말고 의견을 게시하십시오. 감사.
Matthew Williams

기존 질문에 의견을 추가 할 수 없었습니다.
Tony
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.