Làm cách nào để cho phép truy cập mạng LAN cục bộ trong khi kết nối với Cisco VPN?


82

Làm cách nào tôi có thể duy trì truy cập mạng LAN cục bộ trong khi kết nối với Cisco VPN?

Khi kết nối bằng Cisco VPN, máy chủ phải có khả năng hướng dẫn khách hàng ngăn chặn truy cập mạng LAN cục bộ.

Giả sử không thể tắt tùy chọn phía máy chủ này, làm thế nào có thể cho phép truy cập mạng LAN cục bộ trong khi được kết nối với máy khách VPN của Cisco?


Tôi đã từng nghĩ rằng đó đơn giản chỉ là vấn đề về các tuyến đường được thêm vào để nắm bắt lưu lượng mạng LAN với số liệu cao hơn, ví dụ:

  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

Và cố gắng xóa 10.0.x.x -> 192.168.199.12tuyến đường không có tác dụng:

>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

Và mặc dù nó vẫn có thể chỉ là một vấn đề định tuyến, nhưng các nỗ lực để thêm hoặc xóa các tuyến đều thất bại.

Trình điều khiển máy khách VPN của Cisco ở cấp độ nào đang thực hiện những gì trong ngăn xếp mạng sẽ ghi đè khả năng quản trị máy của họ?

Máy khách VPN của Cisco không thể sử dụng phép thuật. Nó vẫn là phần mềm chạy trên máy tính của tôi. Nó sử dụng cơ chế nào để can thiệp vào mạng của máy tôi? Điều gì xảy ra khi gói IP / ICMP đến trên mạng? Gói dữ liệu được ăn ở đâu?

Xem thêm


Chỉnh sửa: Những điều tôi chưa thử:

>route delete 10.0.*

Cập nhật: Vì Cisco đã từ bỏ ứng dụng khách cũ của họ, để ủng hộ AnyConnect (VPN dựa trên HTTP SSL), câu hỏi này, chưa được giải quyết, có thể được để lại như một di tích lịch sử.

Trong tương lai, chúng ta có thể cố gắng giải quyết vấn đề tương tự với khách hàng mới của họ .


1
Liên kết VPN có số liệu thấp hơn và do đó được thử trước tuyến đường địa phương của bạn. Việc tăng số liệu của mạng LAN cục bộ của bạn rất có thể sẽ vô hiệu hóa mạng LAN cục bộ của bạn. Nếu VPN không được cấu hình để tạo đường hầm, tất cả lưu lượng truy cập mạng con nhà bạn có thể là một giải pháp. IP bạn cần truy cập thông qua VPN này là gì? Đây có phải là toàn bộ 10.0.0.0 về phía VPN không?
pberlijn

Nghe có vẻ như nó rất tốt có thể là vấn đề; tôi nghĩ số liệu cao hơn = tốt hơn .
Ian Boyd


2
Cisco AnyConnect có thể được thay thế bằng ứng dụng khách tương thích thay thế OpenConnect được mô tả tại serverfault.com/a/664097/104573
Vadzim

Câu trả lời:


53

Vấn đề với Anyconnect là trước tiên nó sửa đổi bảng định tuyến, sau đó giữ trẻ và sửa nó nếu bạn sửa đổi bằng tay. Tôi tìm thấy một cách giải quyết cho việc này. Hoạt động với phiên bản 3.1.00495, 3.1.05152, 3.1.05170 và có thể là bất cứ thứ gì khác trong gia đình 3.1. Có thể hoạt động với các phiên bản khác, ít nhất là ý tưởng tương tự sẽ hoạt động với giả định mã không được viết lại. May mắn thay cho chúng tôi, Cisco đã đưa cuộc gọi bảo mẫu "em bé tỉnh táo" vào một thư viện dùng chung. Vì vậy, ý tưởng là chúng tôi ngăn chặn hành động của vpnagentd thông qua LD_PRELOAD.

  1. Đầu tiên chúng ta tạo một tệp 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;
    }
    

Lưu ý: Mã này chỉ hoạt động với Linux. Để áp dụng giải pháp này cho máy macOS, hãy xem phiên bản phù hợp với macOS .

  1. Sau đó biên dịch nó như thế này:

    gcc -o libhack.so -shared -fPIC hack.c
    
  2. Cài đặt libhack.sovào đường dẫn thư viện của Cisco:

    sudo cp libhack.so  /opt/cisco/anyconnect/lib/
    
  3. Đưa đại lý xuống:

    /etc/init.d/vpnagentd stop
    
  4. Hãy chắc chắn rằng nó thực sự bị hỏng

    ps auxw | grep vpnagentd
    

    Nếu không, kill -9chỉ để chắc chắn.

  5. Sau đó sửa /etc/init.d/vpnagentd bằng cách thêm vào LD_PRELOAD=/opt/cisco/anyconnect/lib/libhack.so nơi vpnagentd đang được gọi để nó trông như thế này:

    LD_PRELOAD=/opt/cisco/anyconnect/lib/libhack.so /opt/cisco/anyconnect/bin/vpnagentd
    
  6. Bây giờ bắt đầu đại lý:

    /etc/init.d/vpnagentd start
    
  7. Khắc phục iptables, vì AnyConnect gây rối với chúng:

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

    Bạn có thể muốn làm một cái gì đó cao cấp hơn ở đây để chỉ cho phép truy cập vào một số máy chủ LAN nhất định.

  8. Bây giờ sửa chữa các tuyến đường như bạn muốn, ví dụ:

    route add -net 192.168.1.0 netmask 255.255.255.0 dev wlan0
    
  9. Kiểm tra xem họ có thực sự ở đó không:

    route -n
    

Một phiên bản đơn giản hơn trước đây của bản hack này đã cung cấp một chức năng chỉ thực hiện "return 0;" - áp phích đó lưu ý rằng "Tác dụng phụ duy nhất mà tôi quan sát được cho đến nay là vpnagentd đang sử dụng 100% CPU như báo cáo hàng đầu, nhưng tổng thể CPU chỉ có 3% người dùng và 20% hệ thống, và hệ thống hoàn toàn đáp ứng Tôi đã thực hiện nó, có vẻ như đang thực hiện hai lựa chọn trong một vòng lặp khi nhàn rỗi quay trở lại từ cả hai, nhưng nó không bao giờ đọc hoặc viết - Tôi cho rằng cuộc gọi mà tôi đã cắt bằng LD_PRELOAD đáng lẽ phải đọc. để làm điều đó, nhưng nó là đủ tốt cho tôi cho đến nay. Nếu ai đó có một giải pháp tốt hơn, xin vui lòng chia sẻ. "

Vấn đề với hack tầm thường là nó đã khiến một lõi cpu duy nhất 100% mọi lúc, làm giảm hiệu quả số luồng cpu phần cứng của bạn một lần - cho dù kết nối vpn của bạn có hoạt động hay không. Tôi nhận thấy rằng các lựa chọn mà mã đang thực hiện là trên một ổ cắm netlink, nó sẽ gửi dữ liệu vpnagentd khi bảng định tuyến thay đổi. vpnagentd tiếp tục nhận thấy có một tin nhắn mới trên ổ cắm netlink và gọi tuyến đườngCallBackHandler để xử lý nó, nhưng vì vụ hack tầm thường không xóa tin nhắn mới nên nó cứ bị gọi đi gọi lại. mã mới được cung cấp ở trên sẽ xóa dữ liệu netlink để vòng lặp vô tận gây ra 100% cpu không xảy ra.

Nếu một cái gì đó không hoạt động, làm gdb -p $(pidof vpnagentd), một khi đính kèm:

b socket
c
bt

và xem bạn đang gọi cuộc gọi nào. Sau đó, hãy đoán xem bạn muốn cắt cuộc gọi nào, thêm nó vào hack.c và biên dịch lại.


4
Đây là thiên tài. Tôi đang cố gắng để nó hoạt động trên OSX và có một câu hỏi: làm thế nào bạn biết rằng phương thức ghi đè được đặt tên _ZN27CInterfaceRouteMonitorLinux20routeCallbackHandlerEv?
donturner

2
@donturner Hãy thử nm /opt/cisco/anyconnect/lib/libvpnagentutilities.dylib | grep routeCallbackHandlerEvvà sau đó bạn sẽ tìm thấy__ZN25CInterfaceRouteMonitorMac20routeCallbackHandlerEv
McKelvin

Tôi đã tìm ra nó bằng cách gắn vào vpnagentd với gdb và thiết lập các điểm dừng khác nhau.
Sasha Pachev

@McKelvin nm /opt/cisco/anyconnect/lib/libvpnagentutilities.sotrả nm: /opt/cisco/anyconnect/lib/libvpnagentutilities.so: no symbolsvề AnyConnect của tôi trong Ubuntu, do đó, nó được tạo mà không có thông tin bảng biểu tượng. Làm thế nào bạn có thể có được điều đó?
cháu trai

@SashaPachev Làm thế nào bạn có thể gỡ lỗi vpnagentd mà không có thông tin biểu tượng?
cháu trai

11

Đây là RẤT phức tạp, nhưng nếu bạn tạo một VM tối thiểu bằng VMWare Player hoặc tương tự, và chạy ứng dụng khách Cisco AnyConnect VPN trong đó, có thể thiết lập định tuyến như bạn muốn bằng bộ điều hợp mạng ảo VMWare hoặc chỉ cần sử dụng VM để truy cập vào bất kỳ tài nguyên nào được yêu cầu thông qua Cisco SSL VPN và các tệp "kéo / thả" đến / từ máy thực tế của bạn.


7

Phần mềm Shrew Soft VPN cũng đã giúp tôi, như Ian Boyd đề xuất.

Nó có thể nhập cấu hình máy khách Cisco VPN. Tôi đã sử dụng Cisco VPN Client phiên bản 5.0.05.0290 và sau khi cài đặt Shrew VPN (phiên bản 2.1.7) và nhập cấu hình Cisco, tôi có thể truy cập mạng LAN cục bộ trong khi kết nối với VPN công ty mà không cần bất kỳ cấu hình bổ sung nào của kết nối VPN Shrew (hoặc phần mềm).


Sẽ thật tuyệt vời nếu điều này có sẵn cho Android.
Hội chợ Gabriel

1
Tôi đến từ năm 2019 và nó hoạt động !!!!!!
Serge Povisenko

5

Cảm ơn Sasha Pachev vì bản hack hay ở trên.

vpnagentdcũng gây rối với trình phân giải bằng cách ghi đè các thay đổi được thực hiện /etc/resolv.conf. Tôi đã giải quyết nó bằng cách cuối cùng chiến thắng cuộc đua chống lại nó:

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

Đừng quên chattr -i /etc/resolv.confkhi ngắt kết nối.

Tôi đang cố gắng giải quyết nó bằng cách chặn cuộc gọi lại, như đối với phương thức định tuyến ở trên, nhưng chưa thể tìm thấy phương thức gọi lại tương ứng.

Update1 / 2: Một stracetiết lộ vpnagentdđang sử dụng inotifyAPI để theo dõi các thay đổi của tệp trình phân giải. Từ đó trở đi nó xuống dốc. Đây là bản hack bổ sung:

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

Đó là một chút quá mức cần thiết, được cấp, vì nó vô hiệu hóa tất cả các tập tin xem cho các đại lý. Nhưng dường như hoạt động tốt.

Tập lệnh trình bao bọc máy khách vpn bên dưới tích hợp tất cả các chức năng (được cập nhật để bao gồm bản hack bổ sung này). chattrkhông còn được sử dụng / cần thiết.

Cập nhật 3: Đã sửa lỗi cài đặt tên người dùng / mật khẩu trong tập lệnh. Bây giờ nó sử dụng một vpn.conftệp có định dạng được mô tả dưới đây (và quyền chỉ gốc).

#!/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
Việc hack thông báo của bạn đã giải quyết vấn đề mới phát hiện (2017 / 02-25) của tôi với bản cài đặt AnyConnect 3.1.14018 của tôi, theo đó nó sẽ ngắt kết nối bất cứ khi nào tôi mở cửa sổ terminal hoặc màn hình GNU mới. Đó là xem / var / run / utmp vì một số lý do. Vâng, không còn nữa, cảm ơn!
Martin Dorey

Đẹp. Đôi khi "quá mức" có thể là bạn của bạn. :-)
Mauro Lacy

4

Công ty tôi vẫn sử dụng vpn đó. Ứng dụng khách vpnc chỉ cần thay đổi cài đặt iptables của bạn theo cách đó:

# iptables-lưu
# Được tạo bởi iptables-save v1.4.10 vào Chủ Nhật 17 tháng 6 14:12:20 2012
* bộ lọc
: VÀO DROP [0: 0]
: CHẤP NHẬN [0: 0]
: ĐẦU RA DROP [0: 0]
-A INPUT -s 123.244.255.254 / 32 -d 192.168.0.14 / 32 -j CHẤP NHẬN 
-A INPUT -i tun0 -j CHẤP NHẬN 
-A INPUT -i lo0 -j CHẤP NHẬN
-A VÀO -j DROP 
-A ĐẦU RA -s 192.168.0.14 / 32 -d 123.244.255.254 / 32 -j CHẤP NHẬN 
-A ĐẦU RA -o tun0 -j CHẤP NHẬN 
-A ĐẦU RA -o lo0 -j CHẤP NHẬN 
-A ĐẦU RA -j DROP 
CAM KẾT

Nó lọc tất cả ngoại trừ lưu lượng vpn.

Chỉ cần lấy bộ lọc trong một tệp có iptables-save, thêm các dòng truy cập INPUT và OUTPOUT phù hợp với nhu cầu của bạn và áp dụng lại tệp với iptables-restore.

ví dụ để truy cập mạng cục bộ trên 192.168.0

# Được tạo bởi iptables-save v1.4.10 vào Chủ Nhật 17 tháng 6 14:12:20 2012
* bộ lọc
: VÀO DROP [0: 0]
: CHẤP NHẬN [0: 0]
: ĐẦU RA DROP [0: 0]
-A INPUT -s 123.244.255.254 / 32 -d 192.168.0.14 / 32 -j CHẤP NHẬN 
-A INPUT -s 192.168.0.0/24 -d 192.168.0.14 / 32 -j CHẤP NHẬN #local in
-A INPUT -i tun0 -j CHẤP NHẬN 
-A INPUT -i lo0 -j CHẤP NHẬN 
-A VÀO -j DROP 
-A ĐẦU RA -s 192.168.0.14 / 32 -d 123.244.255.254 / 32 -j CHẤP NHẬN 
-A ĐẦU RA -s 192.168.0.14 / 32 -d 192.168.0.0/24 -j CHẤP NHẬN #local out
-A ĐẦU RA -o tun0 -j CHẤP NHẬN 
-A ĐẦU RA -o lo0 -j CHẤP NHẬN 
-A ĐẦU RA -j DROP 
CAM KẾT

2
Thật sai lầm, thật không dễ dàng khi chỉ thêm tuyến đường của bạn .. Tôi đã thử và nó không hoạt động .. Máy khách VPN kiểm soát bảng định tuyến kernel không cho phép bạn sửa đổi
Satish

3

Bất kỳ tin tức về điều này?

Trình điều khiển máy khách VPN của Cisco ở cấp độ nào đang thực hiện những gì trong ngăn xếp mạng sẽ ghi đè khả năng quản trị máy của họ?

Tôi hoàn toàn đồng ý và đã tự hỏi về điều tương tự.

Dù sao, đó là một ứng dụng yêu cầu quyền quản trị viên để cài đặt và trong khi nó chạy, nó có thể lọc rất tốt những gì bạn làm ...

Những nỗ lực của tôi trên Windows cũng thất bại:

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

Haha. Không có số liệu dưới 20 ở đây có vẻ như.


Theo như linux có liên quan, điều này ( petefreitag.com/item/753.cfm ) dường như chỉ ra rằng tường lửa cũng có liên quan.
Marki

2
tôi đã tìm thấy ShrewSoft VPN. Nó có thể kết nối với máy chủ VPN IPSec của Cisco và nó bỏ qua yêu cầu của quản trị viên máy chủ VPN rằng tôi bị ngắt kết nối với mạng của chính tôi. (Xem superuser.com/questions/312947/ để biết hướng dẫn chi tiết) Mặc dù nó không trả lời câu hỏi này, nhưng đó là một cách giải quyết. Lưu ý : ShrewSoft VPN chỉ hoạt động cho IPSec; nó không hoạt động với SSL VPN (tức là máy khách Cisco AnyConnect VPN mới hơn)
Ian Boyd

3

Tôi không biết liệu tôi đã hiểu đúng chưa, nhưng trước tiên tôi làm rõ sự hiểu biết của mình:

Bạn có mạng LAN cục bộ (ví dụ: 10.0.0.0/16 và Cisco VPN Server từ xa (ví dụ: 64.0.0.0/16). Bạn muốn kết nối với máy chủ VPN thông qua máy khách VPN của Cisco và bạn vẫn cần để có quyền truy cập mạng LAN. Trong trường hợp này, bạn muốn tách toàn bộ 10.0.xx / 16 khỏi kết nối VPN). Tuyến đường sau phải được thêm vào máy khách Mac:

/sbin/route add -net 10.0 -interface en1

Trong đó en1 là giao diện mà qua đó bạn được kết nối với mạng LAN của mình. Tôi biết bạn cũng có thể thêm điều tương tự trong Windows và Linux.


3
+1 cho máy khách Mac; mà không áp dụng cho tôi. Và trong khi lệnh này có thể hoạt động, máy khách của Cisco có thể xóa nó ngay sau khi được tạo (ứng dụng khách Cisco dường như ngăn không cho bất kỳ ai thay đổi tuyến đường)
Ian Boyd

2

Vì tôi không thể thêm ý kiến, tôi sẽ đăng ở đây. Tôi đang chạy trên Windows.

Giải pháp sử dụng Máy ảo và chạy AnyConnect bên trong VM và sau đó sử dụng VM làm trung gian hòa giải giữa môi trường làm việc của bạn và mạng của công ty sẽ không hoạt động nếu bộ phận CNTT "yêu quý" của bạn định tuyến 0.0.0.0 qua VPN, kể cả mạng cục bộ của bạn (bao gồm cả mạng này giữa PC cục bộ và VM) được định tuyến thông qua VPN (sic!).

Tôi đã cố gắng áp dụng giải pháp được đăng bởi @Sasha Pachev nhưng cuối cùng tôi đã vá lỗi để nó trả về 0 khi bắt đầu hàm. Cuối cùng, sau một vài cuộc chiến với thư viện động, tôi đã có thể sửa đổi các bảng định tuyến theo nhu cầu của mình nhưng dường như điều đó là không đủ!

Mặc dù các quy tắc của tôi dường như là chính xác để đạt được đường hầm phân chia, tôi vẫn nhận được Thất bại chung. Bạn đã gặp vấn đề tương tự như có thể giải quyết nó?

  • Cổng vào internet của tôi là 192.168.163.2
  • Cửa ngõ của tôi vào mạng của công ty là 10.64.202.1 (do đó toàn bộ 10 . . * Subnet tôi đối xử như "comapny của")

Đây là cách bảng định tuyến của tôi trông giống như bây giờ (sau khi sửa đổi thủ công trong khi bật VPN)

nhập mô tả hình ảnh ở đây

nhưng kết quả của ping đang theo sau

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.

Chỉ để tham khảo, bên dưới là bảng lộ trình trông như thế nào khi VPN bị ngắt kết nối (không thay đổi)

nhập mô tả hình ảnh ở đây

và đây là giao diện của bảng khi VPN được kết nối (không thay đổi) trong trường hợp đó khi tôi đang cố gắng ping, 8.8.8.8tôi chỉ đơn giản là hết thời gian chờ (vì tường lửa của công ty không cho phép lưu lượng truy cập bên ngoài mạng nội bộ)

nhập mô tả hình ảnh ở đây


Tôi đang gặp khó khăn trong việc vá DLL, ai đó có thể cung cấp một bản sao của họ hoặc phác thảo chi tiết hơn một chút mà tôi cần thay đổi không?
Sean C

1

Đối với những người muốn duy trì quyền kiểm soát bảng định tuyến của họ khi sử dụng Cisco AnyConnect SSL VPN, hãy xem OpenConnect . Cả hai đều hỗ trợ Cisco AnyConnect SSL VPN và không cố gắng phá vỡ hoặc 'bảo mật' các mục trong bảng định tuyến. @Vadzim ám chỉ điều này trong một bình luận ở trên .

Sau khi thử mọi cách nhưng vá Máy khách di động an toàn AnyConnect, tôi đã có thể thay thế thành công nó trên Windows bằng OpenConnect GUI . Điều này cho phép tôi duy trì kết nối với tài nguyên cục bộ (và cập nhật bảng định tuyến).

Tôi sử dụng OpenConnect trên Windows nhưng nó cũng hỗ trợ Linux, BSD và macOS (trong số các nền tảng khác) theo trang dự án .


1
Điều này làm việc cho tôi. Nhưng tổ chức của tôi sử dụng mã thông báo, vì vậy mật khẩu mỗi lần khác nhau. Vì vậy, tôi đã phải chuyển "chế độ hàng loạt" - nếu không nó sẽ lưu mật khẩu đầu tiên và sử dụng lại.
Gabriel Luci

0

Hãy thử xóa các mục đó bằng gateway để 10.64.202.13xem ping có 8.8.8.8hoạt động không, sau đó thêm từng mục một và xác định mục nào gây rắc rối.

Làm thế nào bạn vá DLL. Tôi thậm chí không thể sửa đổi bảng định tuyến vì nó tiếp tục thêm 0.0.0.0cổng VPN trở lại.


1
Nếu bạn cần làm rõ hoặc thêm thông tin về một câu hỏi, vui lòng gửi bình luận thay vì đưa nó vào câu trả lời của bạn. Cảm ơn.
Matthew Williams

đã không cho phép tôi thêm ý kiến ​​cho các câu hỏi hiện có.
Tony
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.