Bagaimana mengizinkan akses LAN lokal saat terhubung ke Cisco VPN?

82

Bagaimana saya bisa mempertahankan akses LAN lokal saat terhubung ke Cisco VPN?

Saat menghubungkan menggunakan Cisco VPN, server harus mampu menginstruksikan klien untuk mencegah akses LAN lokal.

Dengan asumsi opsi sisi server ini tidak dapat dimatikan, bagaimana bisa memungkinkan akses LAN lokal saat terhubung dengan klien Cisco VPN?


Dulu saya pikir itu hanya masalah rute yang ditambahkan yang menangkap lalu lintas LAN dengan metrik yang lebih tinggi, misalnya:

  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

Dan mencoba untuk menghapus 10.0.x.x -> 192.168.199.12rute tidak berpengaruh:

>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

Dan sementara itu mungkin masih hanya masalah routing, upaya untuk menambah atau menghapus rute gagal.

Pada tingkat apa driver klien Cisco VPN melakukan apa dalam tumpukan jaringan yang mengambil alih kemampuan administrator lokal untuk mengelola mesin mereka?

Klien Cisco VPN tidak dapat menggunakan sihir. Ini masih perangkat lunak yang berjalan di komputer saya. Mekanisme apa yang digunakannya untuk mengganggu jaringan mesin saya? Apa yang terjadi ketika paket IP / ICMP tiba di jaringan? Di mana di tumpukan jaringan adalah paket dimakan?

Lihat juga


Sunting: Hal-hal yang belum saya coba:

>route delete 10.0.*

Pembaruan: Karena Cisco telah meninggalkan klien lama mereka, demi AnyConnect (VPN berbasis HTTP SSL), pertanyaan ini, yang tidak terpecahkan, dapat dibiarkan sebagai peninggalan sejarah.

Ke depan, kami dapat mencoba memecahkan masalah yang sama dengan klien baru mereka .

Ian Boyd
sumber
1
Tautan VPN memiliki metrik yang lebih rendah dan karenanya dicoba sebelum rute lokal Anda. Meningkatkan metrik LAN lokal Anda kemungkinan besar akan menonaktifkan LAN lokal Anda. Jika VPN tidak dikonfigurasi untuk tunnel semua traffic switching subnet rumah Anda bisa menjadi solusi. IP apa yang perlu Anda akses melalui VPN ini? Apakah ini keseluruhan 10.0.0.0 di sisi VPN?
pberlijn
Kedengarannya sangat baik bisa menjadi masalah; saya pikir metrik lebih tinggi = lebih baik .
Ian Boyd
1
Memang, Metrik bawah = disukai .
Jonathon Reinhart
2
Cisco AnyConnect dapat diganti dengan alternatif OpenConnect yang sebagian besar kompatibel dengan klien yang dijelaskan di serverfault.com/a/664097/104573
Vadzim

Jawaban:

53

Masalah dengan Anyconnect adalah pertama-tama memodifikasi tabel routing, kemudian mengasuh dan memperbaikinya jika Anda memodifikasinya secara manual. Saya menemukan solusi untuk ini. Bekerja dengan versi 3.1.00495, 3.1.05152, 3.1.05170, dan mungkin hal lain dalam keluarga 3.1. Dapat bekerja dengan versi lain, setidaknya ide yang sama seharusnya berfungsi dengan asumsi kode tidak ditulis ulang. Untungnya bagi kami, Cisco telah menempatkan panggilan "pengasuh bayi" pengasuh bayi ke perpustakaan bersama. Jadi idenya adalah kita mencegah tindakan oleh vpnagentd via LD_PRELOAD.

  1. Pertama kita membuat file 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;
    }
    

Catatan: Kode ini hanya berfungsi dengan Linux. Untuk menerapkan solusi ini ke mesin macOS, lihat versi yang disesuaikan macOS .

  1. Kemudian kompilasi seperti ini:

    gcc -o libhack.so -shared -fPIC hack.c
    
  2. Instal libhack.soke jalur perpustakaan Cisco:

    sudo cp libhack.so  /opt/cisco/anyconnect/lib/
    
  3. Turunkan agen:

    /etc/init.d/vpnagentd stop
    
  4. Pastikan itu benar-benar turun

    ps auxw | grep vpnagentd
    

    Jika tidak, kill -9hanya untuk memastikan saja.

  5. Kemudian perbaiki /etc/init.d/vpnagentd dengan menambahkan di LD_PRELOAD=/opt/cisco/anyconnect/lib/libhack.so mana vpnagentd dipanggil sehingga terlihat seperti ini:

    LD_PRELOAD=/opt/cisco/anyconnect/lib/libhack.so /opt/cisco/anyconnect/bin/vpnagentd
    
  6. Sekarang mulai agen:

    /etc/init.d/vpnagentd start
    
  7. Perbaiki iptables, karena AnyConnect mengacaukannya:

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

    Anda mungkin ingin melakukan sesuatu yang lebih maju di sini untuk memungkinkan akses hanya ke host LAN tertentu.

  8. Sekarang perbaiki rute yang Anda inginkan, misalnya:

    route add -net 192.168.1.0 netmask 255.255.255.0 dev wlan0
    
  9. Periksa untuk melihat apakah mereka benar-benar ada:

    route -n
    

Versi sebelumnya yang lebih sederhana dari peretasan ini memberikan fungsi yang hanya berfungsi "mengembalikan 0;" - poster itu mencatat bahwa "Satu-satunya efek samping yang saya amati sejauh ini adalah vpnagentd menggunakan 100% CPU seperti yang dilaporkan oleh top, tetapi keseluruhan CPU hanya 3% pengguna dan 20% sistem, dan sistem ini responsif sempurna Saya menggantinya, sepertinya melakukan dua pemilihan dalam satu lingkaran ketika idle kembali dari keduanya dengan cepat, tetapi tidak pernah membaca atau menulis - Saya kira panggilan yang saya hentikan dengan LD_PRELOAD seharusnya dibaca. Mungkin ada cara yang lebih bersih untuk melakukannya, tetapi sejauh ini cukup baik untuk saya. Jika seseorang memiliki solusi yang lebih baik, silakan bagikan. "

Masalah dengan hack sepele itu menyebabkan inti cpu tunggal menjadi 100% setiap saat, secara efektif mengurangi jumlah thread cpu perangkat keras Anda satu per satu - apakah koneksi vpn Anda aktif atau tidak. Saya perhatikan bahwa yang dipilih oleh kode berada pada soket netlink, yang mengirimkan data vpnagentd ketika tabel routing berubah. vpnagentd terus memperhatikan ada pesan baru di soket netlink dan memanggil routeCallBackHandler untuk menanganinya, tetapi karena peretasan sepele tidak menghapus pesan baru itu maka ia terus dipanggil lagi dan lagi. kode baru yang disediakan di atas mem-flush data netlink sehingga loop tanpa akhir yang menyebabkan cpu 100% tidak terjadi.

Jika sesuatu tidak berfungsi, lakukan gdb -p $(pidof vpnagentd), setelah dilampirkan:

b socket
c
bt

dan lihat di mana Anda berada. Lalu tebak saja yang ingin Anda hentikan, tambahkan ke hack.c dan kompilasi ulang.

Sasha Pachev
sumber
4
Ini jenius. Saya mencoba membuatnya berfungsi di OSX dan memiliki satu pertanyaan: bagaimana Anda tahu bahwa metode untuk menimpa dinamai _ZN27CInterfaceRouteMonitorLinux20routeCallbackHandlerEv?
donturner
2
@donturner Cobalah nm /opt/cisco/anyconnect/lib/libvpnagentutilities.dylib | grep routeCallbackHandlerEvdan kemudian Anda akan menemukan__ZN25CInterfaceRouteMonitorMac20routeCallbackHandlerEv
McKelvin
Saya menemukan jawabannya dengan melampirkan vpnagentd dengan gdb dan mengatur berbagai breakpoint.
Sasha Pachev
@McKelvin nm /opt/cisco/anyconnect/lib/libvpnagentutilities.sokembali nm: /opt/cisco/anyconnect/lib/libvpnagentutilities.so: no symbolspada AnyConnect saya di Ubuntu, jadi itu dihasilkan tanpa informasi tabel simbol. Bagaimana Anda bisa mendapatkannya?
nephewtom
@ SashaPachev Bagaimana Anda bisa men-debug vpnagentd tanpa informasi simbol?
nephewtom
11

Ini SANGAT berbelit-belit, tetapi jika Anda membuat VM minimal menggunakan VMWare Player atau yang serupa, dan menjalankan klien VPN Cisco AnyConnect di dalamnya, dimungkinkan untuk mengatur perutean seperti yang Anda inginkan menggunakan adapter jaringan virtual VMWare, atau cukup gunakan VM untuk akses ke sumber daya apa pun yang diperlukan melalui Cisco SSL VPN dan file "seret / lepas" ke / dari mesin Anda yang sebenarnya.

LawrenceC
sumber
7

Perangkat lunak Shrew Soft VPN melakukan trik untuk saya, juga, seperti yang disarankan Ian Boyd .

Itu dapat mengimpor profil klien Cisco VPN. Saya telah menggunakan Cisco VPN Client versi 5.0.05.0290, dan setelah menginstal Shrew VPN (versi 2.1.7) dan mengimpor profil Cisco, saya dapat mengakses LAN lokal saat terhubung ke VPN perusahaan tanpa konfigurasi tambahan koneksi VPN Shrew (atau perangkat lunak).

vstrale
sumber
Akan luar biasa jika ini tersedia untuk android.
Gabriel Fair
1
Saya dari 2019 dan berhasil !!!!!!
Sergey Povisenko
5

Terima kasih kepada Sasha Pachev untuk hack yang bagus di atas.

vpnagentdjuga mengacaukan resolver dengan menimpa perubahan yang dibuat /etc/resolv.conf. Saya menyelesaikannya dengan akhirnya memenangkan perlombaan melawannya:

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

Jangan lupa chattr -i /etc/resolv.confketika memutuskan koneksi.

Saya mencoba menyelesaikannya dengan memotong panggilan balik, seperti untuk metode rute di atas, tetapi belum dapat menemukan panggilan balik atau metode yang sesuai.

Update1 / 2: A stracemengungkapkan yang vpnagentdmenggunakan inotifyAPI untuk memantau perubahan file resolver. Dari sana dan seterusnya menurun. Inilah retas tambahan:

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

Itu sedikit berlebihan, memang, karena menonaktifkan semua file yang mengawasi agen. Tapi sepertinya berhasil OK.

Skrip pembungkus klien vpn di bawah ini mengintegrasikan semua fungsi (diperbarui untuk menyertakan peretasan tambahan ini). chattrtidak lagi digunakan / dibutuhkan.

Pembaruan 3: Memperbaiki pengaturan nama pengguna / kata sandi dalam skrip. Sekarang menggunakan vpn.conffile dengan format yang dijelaskan di bawah ini (dan izin root-only).

#!/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
sumber
1
Peretasan notifikasi Anda memecahkan masalah yang baru saya temukan (2017-02-25) dengan instalasi AnyConnect 3.1.14018 saya, di mana ia akan memutuskan sambungan setiap kali saya membuka jendela terminal baru atau layar GNU. Itu menonton / var / run / utmp untuk beberapa alasan. Yah, tidak lagi, terima kasih!
Martin Dorey
Bagus. Terkadang "berlebihan" bisa menjadi teman Anda. :-)
Mauro Lacy
4

Perusahaan saya masih menggunakan vpn itu. Klien vpnc hanya mengubah pengaturan iptables Anda seperti itu:

# iptables-save
# Dihasilkan oleh iptables-save v1.4.10 pada Sun Jun 17 14:12:20 2012
*Saring
: DROP INPUT [0: 0]
: FORWARD ACCEPT [0: 0]
: DROP OUTPUT [0: 0]
-A INPUT -s 123.244.255.254/32 -d 192.168.0.14/32 -j MENERIMA 
-A INPUT -i tun0 -j MENERIMA 
-A INPUT -i lo0 -j MENERIMA
INPUT -J DROP 
-A OUTPUT -s 192.168.0.14/32 -d 123.244.255.254/32 -j MENERIMA 
-OUTPUT -o tun0 -j MENERIMA 
-OUTPUT -o lo0 -j MENERIMA 
OUTPUT -J DROP 
MELAKUKAN

Filter semua kecuali untuk lalu lintas vpn.

Cukup masukkan filter dalam file dengan iptables-save, tambahkan jalur akses INPUT dan OUTPOUT yang sesuai dengan kebutuhan Anda dan terapkan kembali file dengan iptables-restore.

misalnya untuk mengakses jaringan lokal pada 192.168.0

# Dihasilkan oleh iptables-save v1.4.10 pada Sun Jun 17 14:12:20 2012
*Saring
: DROP INPUT [0: 0]
: FORWARD ACCEPT [0: 0]
: DROP OUTPUT [0: 0]
-A INPUT -s 123.244.255.254/32 -d 192.168.0.14/32 -j MENERIMA 
-A INPUT -s 192.168.0.0/24 -d 192.168.0.14/32-j ACCEPT #local in
-A INPUT -i tun0 -j MENERIMA 
-A INPUT -i lo0 -j MENERIMA 
INPUT -J DROP 
-A OUTPUT -s 192.168.0.14/32 -d 123.244.255.254/32 -j MENERIMA 
-A OUTPUT -s 192.168.0.14/32 -d 192.168.0.0/24 -j ACCEPT #local out
-OUTPUT -o tun0 -j MENERIMA 
-OUTPUT -o lo0 -j MENERIMA 
OUTPUT -J DROP 
MELAKUKAN
banjo
sumber
2
Ini salah, tidak mudah untuk hanya menambahkan rute Anda .. Saya mencoba dan tidak berhasil .. Klien VPN mengambil kendali atas tabel routing kernel yang tidak memungkinkan Anda memodifikasi
Satish
3

Ada berita tentang ini?

Pada tingkat apa driver klien Cisco VPN melakukan apa dalam tumpukan jaringan yang mengambil alih kemampuan administrator lokal untuk mengelola mesin mereka?

Saya sepenuhnya setuju dan bertanya-tanya tentang hal yang sama.

Bagaimanapun, ini adalah aplikasi yang memerlukan hak admin untuk menginstal dan ketika sedang berjalan mungkin sangat baik menyaring apa yang Anda lakukan ...

Upaya saya di Windows juga gagal:

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. Sepertinya tidak ada metrik di bawah 20 di sini.

Marki
sumber
Sejauh menyangkut linux, ini ( petefreitag.com/item/753.cfm ) tampaknya mengindikasikan bahwa firewall juga terlibat.
Marki
2
Saya menemukan ShrewSoft VPN. Itu dapat terhubung ke server VPN Cisco IPSec, dan mengabaikan permintaan administrator server VPN bahwa saya terputus dari jaringan saya sendiri. (Lihat superuser.com/questions/312947/... untuk petunjuk terperinci) Meskipun tidak menjawab pertanyaan ini, ini merupakan solusi. Catatan : ShrewSoft VPN hanya berfungsi untuk IPSec; itu tidak berfungsi dengan SSL VPN (yaitu klien Cisco AnyConnect VPN yang lebih baru)
Ian Boyd
3

Saya tidak tahu apakah saya memahaminya dengan benar, tetapi saya pertama-tama mengklarifikasi pemahaman saya:

Anda memiliki LAN lokal (misalnya, katakanlah 10.0.0.0/16, dan Cisco VPN Server jarak jauh (misalnya, 64.0.0.0/16). Anda ingin terhubung ke server VPN melalui klien Cisco VPN, namun Anda perlu untuk memiliki akses LAN. Dalam hal ini Anda ingin memisahkan seluruh 10.0.xx / 16 dari koneksi VPN). Rute berikut harus ditambahkan dalam klien Mac:

/sbin/route add -net 10.0 -interface en1

di mana en1 adalah antarmuka di mana Anda terhubung ke LAN Anda. Saya tahu Anda dapat menambahkan hal yang sama di Windows dan Linux juga.

Yasser Sobhdel
sumber
3
+1 untuk klien Mac; yang tidak berlaku untuk saya. Dan sementara perintah ini mungkin bekerja, klien Cisco mungkin menghapusnya segera setelah dibuat (klien Cisco tampaknya mencegah siapa pun dari mengubah rute)
Ian Boyd
2

Karena saya tidak dapat menambahkan komentar, saya akan memposting di sini. Saya berjalan di Windows.

Solusi menggunakan Virtual Machine dan menjalankan AnyConnect di dalam VM dan kemudian menggunakan VM sebagai mediator antara lingkungan kerja Anda dan jaringan perusahaan tidak akan berfungsi jika departemen TI "tercinta" Anda merutekan 0.0.0.0 melalui VPN sehingga bahkan jaringan lokal Anda (termasuk ini antara PC lokal dan VM Anda) dialihkan melalui VPN (sic!).

Saya mencoba menerapkan solusi yang diposting oleh @Sasha Pachev tetapi akhirnya saya menambal .dll sehingga mengembalikan 0 di awal fungsi. Akhirnya setelah beberapa pertarungan dengan perpustakaan dinamis, saya bisa memodifikasi tabel routing sesuai dengan kebutuhan saya tetapi ternyata itu tidak cukup!

Meskipun aturan saya tampaknya benar untuk mencapai tunneling split, saya masih mendapatkan Kegagalan Umum. Apakah Anda menemukan masalah yang sama seperti Anda bisa menyelesaikannya?

  • Gerbang saya ke internet adalah 192.168.163.2
  • Gerbang saya ke jaringan perusahaan adalah 10.64.202.1 (sehingga seluruh 10. . . * Subnet saya memperlakukan sebagai "comapny ini")

Beginilah tabel perutean saya sekarang (setelah modifikasi manual saat VPN aktif)

masukkan deskripsi gambar di sini

namun hasil ping mengikuti

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.

Hanya untuk referensi, di bawah ini adalah bagaimana tabel rute terlihat ketika VPN terputus (tidak diubah)

masukkan deskripsi gambar di sini

dan seperti inilah tabelnya ketika VPN terhubung (tidak diubah) dalam hal ini ketika saya mencoba melakukan ping, 8.8.8.8saya hanya mendapatkan batas waktu (karena firewall perusahaan tidak mengizinkan lalu lintas untuk pergi ke luar intranet)

masukkan deskripsi gambar di sini

Mike
sumber
Saya mengalami kesulitan menambal DLL, dapatkah seseorang memberikan salinannya atau menguraikan sedikit lebih detail offset mana yang perlu saya ubah?
Sean C
1

Bagi mereka yang ingin mempertahankan kendali atas tabel perutean mereka saat menggunakan Cisco AnyConnect SSL VPN, periksa OpenConnect . Keduanya mendukung Cisco AnyConnect SSL VPN dan tidak berusaha mengganggu atau mengamankan entri tabel perutean. @Adzim menyinggung ini dalam komentar di atas .

Setelah mencoba segala sesuatu selain menambal Klien Mobilitas Aman AnyConnect, saya berhasil menggantinya pada Windows dengan OpenConnect GUI . Ini memungkinkan saya untuk menjaga konektivitas ke sumber daya lokal (dan memperbarui tabel routing).

Saya menggunakan OpenConnect pada Windows tetapi juga mendukung Linux, BSD, dan macOS (di antara platform lain) sesuai dengan halaman proyek .

Robert Mooney
sumber
1
Ini berhasil untuk saya. Tetapi organisasi saya menggunakan token, jadi kata sandi berbeda setiap saat. Jadi saya harus mematikan "mode batch" - jika tidak maka akan menyimpan kata sandi pertama dan menggunakannya kembali.
Gabriel Luci
0

Coba hapus entri-entri itu dengan gateway untuk 10.64.202.13melihat apakah ping 8.8.8.8berfungsi kemudian tambahkan satu per satu dan identifikasi yang mana yang menyebabkan masalah.

Bagaimana Anda menambal DLL. Saya bahkan tidak bisa memodifikasi tabel routing karena terus menambahkan 0.0.0.0dengan gateway VPN kembali.

Tony
sumber
1
Jika Anda membutuhkan klarifikasi atau informasi tambahan tentang suatu pertanyaan, silakan kirim komentar daripada memasukkannya dalam jawaban Anda. Terima kasih.
Matthew Williams
tidak mengizinkan saya untuk menambahkan komentar ke pertanyaan yang ada.
Tony