सिस्को वीपीएन से जुड़े रहते हुए लोकल लैन एक्सेस की अनुमति कैसे दें?


82

सिस्को वीपीएन से जुड़े रहते हुए मैं स्थानीय लैन का उपयोग कैसे कर सकता हूं?

सिस्को वीपीएन का उपयोग करके कनेक्ट करते समय, सर्वर को क्लाइंट को स्थानीय लैन एक्सेस को रोकने के लिए निर्देश देने की क्षमता होती है।

यह मानते हुए कि सर्वर-साइड विकल्प को बंद नहीं किया जा सकता है, सिस्को वीपीएन क्लाइंट के साथ कनेक्ट होने के दौरान स्थानीय लैन एक्सेस की अनुमति कैसे दे सकता है?


मुझे लगता था कि यह बस मार्गों का मामला था, जो एक उच्च मीट्रिक के साथ लैन ट्रैफ़िक को कैप्चर करता है, उदाहरण के लिए:

  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

और जबकि यह अभी भी बस एक रूटिंग मुद्दा हो सकता है, मार्गों को जोड़ने या हटाने का प्रयास विफल हो जाता है।

सिस्को वीपीएन क्लाइंट ड्राइवर किस स्तर पर नेटवर्किंग स्टैक में है जो एक स्थानीय प्रशासक को उनकी मशीन को संचालित करने की क्षमता से अधिक लेता है?

सिस्को वीपीएन क्लाइंट जादू को नियोजित नहीं कर सकता है। यह अभी भी मेरे कंप्यूटर पर चल रहा सॉफ्टवेयर है। मेरी मशीन के नेटवर्क में हस्तक्षेप करने के लिए यह किस तंत्र का उपयोग कर रहा है? IP / ICMP पैकेट नेटवर्क पर आने पर क्या होता है? नेटवर्किंग स्टैक में पैकेट को कहां खाया जा रहा है?

यह सभी देखें


संपादित करें: चीजें जो मैंने अभी तक कोशिश नहीं की हैं:

>route delete 10.0.*

अपडेट: चूंकि सिस्को ने अपने पुराने ग्राहक को छोड़ दिया है, AnyConnect (HTTP एसएसएल आधारित वीपीएन) के पक्ष में, यह सवाल, अनसुलझा हुआ, इतिहास के अवशेष के रूप में छोड़ा जा सकता है।

आगे बढ़ते हुए, हम उनके नए क्लाइंट के साथ उसी समस्या को हल करने का प्रयास कर सकते हैं ।


1
वीपीएन लिंक में एक कम मीट्रिक है और इस प्रकार आपके स्थानीय मार्ग से पहले की कोशिश की जाती है। अपने स्थानीय LAN का मीट्रिक बढ़ाना आपके स्थानीय LAN को अक्षम करने की सबसे अधिक संभावना है। अगर वीपीएन को टनल से कॉन्फ़िगर नहीं किया गया है तो आपके होम सबनेट को स्विच करने वाला ट्रैफ़िक एक समाधान हो सकता है। इस वीपीएन के माध्यम से आपको आईपी की क्या आवश्यकता है? क्या यह संपूर्ण 10.0.0.0 वीपीएन की तरफ है?
pberlijn

ऐसा लगता है कि यह बहुत अच्छी तरह से मुद्दा हो सकता है; मैंने उच्चतर = बेहतर का मीट्रिक सोचा ।
इयान बॉयड


2
सिस्को AnyConnect OpenConnect विकल्प के साथ प्रतिस्थापित किया जा सकता है ज्यादातर संगत ग्राहक serverfault.com/a/664097/104573
वाद्ज़िम

जवाबों:


53

Anyconnect के साथ समस्या यह है कि यह पहले रूटिंग टेबल को संशोधित करता है, फिर इसे बेबीसिट करता है और इसे ठीक करता है आपको इसे मैन्युअल रूप से संशोधित करना चाहिए। मुझे इसके लिए वर्कअराउंड मिला। संस्करण 3.1.00495, 3.1.05152, 3.1.05170 और संभवतः 3.1 परिवार में कुछ और के साथ काम करता है। अन्य संस्करणों के साथ काम कर सकते हैं, कम से कम इसी तरह के विचार को यह मानकर काम करना चाहिए कि कोड फिर से नहीं लिखा जाता है। सौभाग्य से हमारे लिए सिस्को ने एक साझा पुस्तकालय में दाई "बच्चे जाग रहा है" कॉल डाल दिया है। इसलिए यह विचार है कि हम vpnagentd द्वारा LD_PRELOAD के माध्यम से कार्रवाई को रोकते हैं।

  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.soसिस्को पुस्तकालय पथ में स्थापित करें :

    sudo cp libhack.so  /opt/cisco/anyconnect/lib/
    
  4. एजेंट को नीचे लाओ:

    /etc/init.d/vpnagentd stop
    
  5. सुनिश्चित करें कि यह वास्तव में नीचे है

    ps auxw | grep vpnagentd
    

    यदि नहीं, तो kill -9बस सुनिश्चित करें।

  6. फिर /etc/init.d/vpnagentd LD_PRELOAD=/opt/cisco/anyconnect/lib/libhack.so जहां vpnagentd को आमंत्रित किया जा रहा है उसे जोड़कर ठीक करें ताकि यह इस तरह दिखाई दे:

    LD_PRELOAD=/opt/cisco/anyconnect/lib/libhack.so /opt/cisco/anyconnect/bin/vpnagentd
    
  7. अब एजेंट शुरू करें:

    /etc/init.d/vpnagentd start
    
  8. IPtables को ठीक करें, क्योंकि AnyConnect उनके साथ गड़बड़ करता है:

    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
    

इस हैक के पिछले, सरल संस्करण ने एक फ़ंक्शन दिया जो केवल "वापसी 0;" - उस पोस्टर ने उल्लेख किया कि "अब तक मैंने जो एकमात्र साइड इफेक्ट देखा है, वह यह है कि vpnagentd शीर्ष द्वारा रिपोर्ट किए गए अनुसार 100% CPU का उपयोग कर रहा है, लेकिन कुल मिलाकर CPU केवल 3% उपयोगकर्ता और 20% सिस्टम है, और सिस्टम पूरी तरह उत्तरदायी है .मैंने इसे ढांढस बंधाया, ऐसा लगता है कि दो पाश में दो चयन कर रहे हैं जब दोनों जल्दी से लौट रहे हैं, लेकिन यह कभी नहीं पढ़ता है या लिखता है - मुझे लगता है कि मैंने LD_PRELOAD के साथ कट आउट को पढ़ने के लिए माना था। एक क्लीनर तरीका हो सकता है। यह करने के लिए, लेकिन यह मेरे लिए अब तक काफी अच्छा है। अगर किसी के पास बेहतर समाधान है, तो कृपया साझा करें। "

तुच्छ हैक के साथ समस्या यह है कि एक सिंगल सीपीयू कोर हर समय 100% हो जाता है, प्रभावी रूप से आपके हार्डवेयर सीपीयू थ्रेड काउंट को एक-एक करके कम कर देता है - चाहे आपका वीपीएन कनेक्शन सक्रिय था या नहीं। मैंने देखा कि कोड एक नेटलिंक सॉकेट पर सेलेक्ट कर रहा था, जो रूट टेबल बदलने पर vpnagentd डेटा भेजता है। vpnagentd नेटलिंक सॉकेट पर एक नया संदेश देख रहा है और इससे निपटने के लिए pathCallBackHandler को कॉल करता है, लेकिन चूंकि ट्रिवियल हैक ने नया संदेश साफ़ नहीं किया है इसलिए यह बस बार-बार कॉल करता रहता है। ऊपर दिया गया नया कोड नेटलिंक डेटा को फ्लश करता है जिससे अंतहीन लूप 100% सीपीयू का कारण नहीं होता है।

यदि कुछ काम नहीं करता है, तो gdb -p $(pidof vpnagentd)एक बार संलग्न करें:

b socket
c
bt

और देखें कि आप किस कॉल में हैं। फिर बस अनुमान लगाएं कि आप किसको कट करना चाहते हैं, इसे hack.c और recompile में जोड़ें।


4
यह प्रतिभा है। मैं इसे OSX पर काम करने की कोशिश कर रहा हूं और एक सवाल है: आपको कैसे पता चला कि ओवरराइड करने की विधि का नाम था _ZN27CInterfaceRouteMonitorLinux20routeCallbackHandlerEv?
5

2
@donturner कोशिश करो nm /opt/cisco/anyconnect/lib/libvpnagentutilities.dylib | grep routeCallbackHandlerEvऔर फिर तुम पाओगे__ZN25CInterfaceRouteMonitorMac20routeCallbackHandlerEv
McKelvin

मैंने इसे gpb के साथ vpnagentd से जोड़कर और विभिन्न ब्रेकपॉइंट्स सेट करके पता लगाया।
साशा पचेव

@McKelvin उबंटू के तहत मेरे AnyConnect पर nm /opt/cisco/anyconnect/lib/libvpnagentutilities.soलौटता है nm: /opt/cisco/anyconnect/lib/libvpnagentutilities.so: no symbols, इसलिए इसे प्रतीक तालिका जानकारी के बिना उत्पन्न किया गया था। आप इसे कैसे प्राप्त कर सकते हैं?
भतीजे

@SashaPachev आप बिना किसी प्रतीक सूचना के vpnagentd को कैसे डीबग कर सकते हैं?
भतीजे

11

यह बहुत जटिल है, लेकिन यदि आप VMWare प्लेयर या समान का उपयोग करके एक न्यूनतम VM बनाते हैं, और उस में सिस्को AnyConnect वीपीएन क्लाइंट चलाते हैं, तो आप रूटिंग को सेट करना संभव हो सकता है जैसा कि आप VMWare वर्चुअल नेटवर्क सर्वर का उपयोग करना चाहते हैं, या बस का उपयोग करें सिस्को एसएसएल वीपीएन के माध्यम से जो भी संसाधनों की आवश्यकता होती है, उसके लिए वीएम और आपकी वास्तविक मशीन से / के लिए "ड्रैग / ड्रॉप" फाइलें।


7

श्रेय सॉफ्ट वीपीएन सॉफ्टवेयर ने मेरे लिए चाल चली , जैसा कि इयान बॉयड ने सुझाव दिया था।

यह सिस्को वीपीएन क्लाइंट प्रोफाइल आयात कर सकता है। मैंने सिस्को वीपीएन क्लाइंट वर्जन 5.0.05.0290 का उपयोग किया है, और क्रू वीपीएन (संस्करण 2.1.7) स्थापित करने और सिस्को प्रोफाइल आयात करने के बाद, मैं श्योर वीपीएन कनेक्शन (या) के किसी भी अतिरिक्त कॉन्फ़िगरेशन के बिना कॉर्पोरेट वीपीएन से जुड़े रहते हुए स्थानीय लैन का उपयोग करने में सक्षम था। सॉफ्टवेयर)।


यह अद्भुत होगा यदि यह एंड्रॉइड के लिए उपलब्ध था।
गेब्रियल फेयर

1
मैं 2019 से हूँ और यह काम करता है !!!!!!
सर्गेई पोविसेंको

5

ऊपर की अच्छी हैक के लिए साशा पाचेव को धन्यवाद ।

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डिस्कनेक्ट करने के लिए मत भूलना ।

मैं कॉलबैक इंटरसेप्ट करके इसे हल करने का प्रयास कर रहा हूं, जैसे ऊपर दिए गए मार्ग विधि के लिए, लेकिन अभी तक संबंधित कॉलबैक या विधि नहीं मिल सकती है।

Update1 / 2: एक straceखुलासा जो API vpnagentdका उपयोग करके inotifyरिसॉल्वर फ़ाइल परिवर्तनों की निगरानी करता है। वहाँ से यह नीचे की ओर था। यहाँ अतिरिक्त हैक है:

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 देख रहा है। खैर, और नहीं, धन्यवाद!
मार्टिन डोरी

अच्छा लगा। कभी-कभी "ओवरकिल" आपका दोस्त हो सकता है। :-)
माउरो लेसी

4

मेरी कंपनी अभी भी उस वीपीएन का उपयोग करती है। Vpnc क्लाइंट बस इस तरह से आपको iptables सेटिंग्स बदलता है:

# iptables- बचाओ
# Sun Jun 17 14:12:20 2012 को iptables-save v1.4.10 द्वारा जनरेट किया गया
* फिल्टर
: INPUT DROP [0: 0]
: फॉरवर्ड ACCEPT [0: 0]
: OUTPUT DROP [0: 0]
-एक INPUT -s 123.244.255.254/32 -d 192.168.0.14/32 -j ACCEPT 
-एएनपीयूटी-आई ट्यून -जे एसीसीपीटी 
-एक INPUT -i lo0 -j ACCEPT
-एएनपीयूट -जे डीआरओपी 
-एक OUTPUT -s 192.168.0.14/32 -d 123.244.255.254/32 -j ACCPT 
-आटूट-टू ट्यून -जे एसीसीपीटी 
-ओपुत -ओ लो0-जे एसीसीपीटी 
-आटपुट -जे डीआरओपी 
COMMIT

यह वीपीएन ट्रैफ़िक को छोड़कर सभी को फ़िल्टर करता है।

बस iptables-save के साथ एक फ़ाइल में फ़िल्टर प्राप्त करें, INPUT और OUTPOUT एक्सेस लाइनों को जोड़ें जो आपकी आवश्यकताओं से मेल खाती हैं और iptables-रिस्टोर के साथ फाइल को फिर से लागू करें।

उदाहरण के लिए 192.168.0 पर एक स्थानीय नेटवर्क का उपयोग करना

# Sun Jun 17 14:12:20 2012 को iptables-save v1.4.10 द्वारा जनरेट किया गया
* फिल्टर
: INPUT DROP [0: 0]
: फॉरवर्ड ACCEPT [0: 0]
: OUTPUT DROP [0: 0]
-एक INPUT -s 123.244.255.254/32 -d 192.168.0.14/32 -j ACCEPT 
-एक INPUT -s 192.168.0.0/24 -d 192.168.0.14/32 -j ACCEPT # बैंक में
-एएनपीयूटी-आई ट्यून -जे एसीसीपीटी 
-एक INPUT -i lo0 -j ACCEPT 
-एएनपीयूट -जे डीआरओपी 
-एक OUTPUT -s 192.168.0.14/32 -d 123.244.255.254/32 -j ACCPT 
-ओटपुट -s 192.168.0.14/32 -d 192.168.0.0/24 -j ACCEPT # नोटबंदी
-आटूट-टू ट्यून -जे एसीसीपीटी 
-ओपुत -ओ लो0-जे एसीसीपीटी 
-आटपुट -जे डीआरओपी 
COMMIT

2
यह गलत है, यह इतना आसान नहीं है कि आप अपना मार्ग जोड़ सकते हैं .. मैंने कोशिश की और यह काम नहीं आया .. वीपीएन क्लाइंट कर्नेल राउटिंग टेबल का नियंत्रण ले रहा है जो आपको संशोधित नहीं होने दे रहा है
सतीश

3

इस पर कोई भी समाचार?

सिस्को वीपीएन क्लाइंट ड्राइवर किस स्तर पर नेटवर्किंग स्टैक में है जो एक स्थानीय प्रशासक को उनकी मशीन को संचालित करने की क्षमता से अधिक लेता है?

मैं पूरी तरह से सहमत था और उसी चीज के बारे में सोच रहा था।

वैसे भी, यह एक ऐसा ऐप है जिसे इंस्टॉल करने के लिए एडमिन विशेषाधिकारों की आवश्यकता होती है और इसे चलाते समय आप जो भी करते हैं उसे बहुत अच्छी तरह से फ़िल्टर कर सकते हैं ...

विंडोज पर मेरे प्रयास भी विफल:

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। 20 से नीचे कोई मीट्रिक नहीं लगता है।


जहां तक ​​लिनक्स का सवाल है, यह ( petefreitag.com/item/753.cfm ) इंगित करता है कि फ़ायरवॉल भी शामिल है।
मार्की

2
मैं ShrewSoft वीपीएन मिला। यह एक सिस्को IPSec वीपीएन सर्वर से कनेक्ट हो सकता है, और यह वीपीएन सर्वर प्रशासक की मांग को नजरअंदाज करता है कि मुझे अपने नेटवर्क से डिस्कनेक्ट किया जाए। ( विस्तृत निर्देशों के लिए (देखें superuser.com/questions/312947/… ) हालांकि यह इस सवाल का जवाब नहीं देता है, यह एक वर्कअराउंड है। नोट : ShrewSoft वीपीएन केवल IPSec के लिए काम करता है; यह एसएसएल वीपीएन के साथ काम नहीं करता है (यानी नए सिस्को AnyConnect वीपीएन ग्राहक)
इयान बॉयड

3

मुझे नहीं पता कि क्या मैंने इसे सही समझा है, लेकिन मैं सबसे पहले अपनी समझ स्पष्ट करता हूँ:

आपके पास एक स्थानीय LAN है (उदाहरण के लिए, 10.0.0.0/16, और एक दूरस्थ सिस्को वीपीएन सर्वर (उदाहरण के लिए, 64.0.0.0/16))। आप सिस्को वीपीएन क्लाइंट के माध्यम से वीपीएन सर्वर से कनेक्ट करना चाहते हैं और फिर भी आपको इसकी आवश्यकता है। LAN का उपयोग करना। इस मामले में आप पूरे 10.0.xx / 16 को वीपीएन कनेक्शन से अलग करना चाहते हैं)। मैक क्लाइंट में निम्न मार्ग जोड़ा जाना चाहिए:

/sbin/route add -net 10.0 -interface en1

जहाँ en1 वह इंटरफ़ेस है जिसके माध्यम से आप अपने LAN से जुड़े हैं। मुझे पता है कि आप विंडोज और लिनक्स में भी एक ही चीज जोड़ सकते हैं।


3
मैक क्लाइंट के लिए +1; जो मेरे लिए लागू नहीं होता है। और जब यह कमांड काम कर सकता है, तो सिस्को क्लाइंट बनने के तुरंत बाद इसे हटा सकता है (सिस्को क्लाइंट को किसी को भी मार्गों को बदलने से रोकने के लिए लगता है)
इयान बॉयड

2

चूंकि मैं टिप्पणी नहीं जोड़ सकता, इसलिए मैं यहां पोस्ट करूंगा। मैं विंडोज पर चल रहा हूँ।

वर्चुअल मशीन का उपयोग कर समाधान और VM के अंदर AnyConnect चलाएं और फिर अपने काम के माहौल और कंपनी के नेटवर्क के बीच वीएम का उपयोग करें यदि आपके "प्यारे" आईटी विभाग वीपीएन के माध्यम से 0.0.0.0 रूट नहीं करेंगे, तो यहां तक ​​कि आपके स्थानीय नेटवर्क (इसमें शामिल हैं) आपके स्थानीय पीसी और वीएम के बीच वीपीएन (सिक!) के माध्यम से रूट किया गया है।

मैंने @ साशा पचेव द्वारा पोस्ट किए गए समाधान को लागू करने की कोशिश की, लेकिन आखिरकार मैंने पैचिंग को समाप्त कर दिया। ऐसा इसलिए कि यह फ़ंक्शन की शुरुआत में 0 देता है। अंततः गतिशील पुस्तकालय के साथ कुछ लड़ाई के बाद, मैं अपनी आवश्यकताओं के अनुसार रूटिंग तालिकाओं को संशोधित करने में सक्षम था, लेकिन जाहिर है कि यह पर्याप्त नहीं है!

भले ही मेरे नियम विभाजित टनलिंग को प्राप्त करने के लिए सही प्रतीत होते हैं, फिर भी मुझे सामान्य विफलता मिलती है। क्या आप भी इसी तरह की समस्या को हल करने में सक्षम थे?

  • मेरा इंटरनेट का प्रवेश द्वार 192.168.163.2 है
  • कंपनी के नेटवर्क मेरे प्रवेश द्वार 10.64.202.1 (इस प्रकार पूरे 10 है सबनेट मैं "के रूप में है comapny" व्यवहार करते हैं। *)

मेरी राउटिंग टेबल अब कैसी दिखती है (मैन्युअल संशोधनों के बाद जब वीपीएन चालू होता है)

यहाँ छवि विवरण दर्ज करें

अभी तक पिंग के परिणाम का पालन कर रहे हैं

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.

बस संदर्भ के लिए, नीचे दी गई है कि वीपीएन डिस्कनेक्ट होने पर रूट टेबल कैसा दिखता है (अनलेक्ड)

यहाँ छवि विवरण दर्ज करें

और यह इस तरह से है कि जब वीपीएन जुड़ा हुआ है तो टेबल दिख रहा है (उस स्थिति में) जब मैं पिंग करने की कोशिश कर रहा हूं तो 8.8.8.8मैं बस टाइमआउट हो जाता हूं (चूंकि कंपनी का फ़ायरवॉल ट्रैफिक को इंट्रानेट से बाहर जाने की अनुमति नहीं देता है)

यहाँ छवि विवरण दर्ज करें


मुझे डीएलएल को पैच करने में कठिनाई हो रही है, क्या कोई उनकी एक प्रति प्रदान कर सकता है या थोड़ा और विस्तार कर सकता है जो मुझे बदलने की आवश्यकता है?
सीन सी

1

सिस्को AnyConnect एसएसएल वीपीएन का उपयोग करते समय अपनी रूटिंग टेबल का नियंत्रण बनाए रखने की तलाश करने वालों के लिए, ओपनकनेक्ट को देखें । यह दोनों Cisco AnyConnect SSL VPN का समर्थन करता है और तालिका प्रविष्टियों को बाधित या 'सुरक्षित' करने का प्रयास नहीं करता है। @Vadzim ऊपर की टिप्पणी में इस बारे में बताता है ।

सब कुछ करने की कोशिश करने के बाद भी AnyConnect सिक्योर मोबिलिटी क्लाइंट को पैच करने के बाद, मैं इसे OpenConnect GUI के साथ विंडोज पर सफलतापूर्वक बदलने में सक्षम था । इसने मुझे स्थानीय संसाधनों से जुड़ाव बनाए रखने में सक्षम बनाया (और रूटिंग टेबल को अपडेट करने के लिए)।

मैं विंडोज पर OpenConnect का उपयोग करता हूं, लेकिन यह परियोजना पृष्ठ के अनुसार लिनक्स, बीएसडी और मैकओएस (अन्य प्लेटफार्मों के बीच) का भी समर्थन करता है ।


1
इसने मेरे लिए काम किया। लेकिन मेरा संगठन एक टोकन का उपयोग करता है, इसलिए हर बार पासवर्ड अलग होता है। इसलिए मुझे "बैच मोड" चालू करना पड़ा - अन्यथा यह पहला पासवर्ड बचाएगा और इसे पुन: उपयोग करेगा।
गेब्रियल लुसी

0

गेटवे के साथ उन प्रविष्टियों को हटाने की कोशिश करें 10.64.202.13अगर पिंग 8.8.8.8काम करता है तो उन्हें एक-एक करके वापस जोड़ें और पहचानें कि कौन सी परेशानी पैदा कर रहा है।

आपने DLL को कैसे पैच किया। मैं रूटिंग टेबल को भी संशोधित नहीं कर सकता क्योंकि यह 0.0.0.0वीपीएन गेटवे के साथ वापस जुड़ता रहता है ।


1
यदि आपको किसी प्रश्न पर स्पष्टीकरण या अतिरिक्त जानकारी की आवश्यकता है, तो कृपया अपने उत्तर में इसे शामिल करने के बजाय एक टिप्पणी पोस्ट करें। धन्यवाद।
मैथ्यू विलियम्स

मुझे मौजूदा प्रश्नों पर टिप्पणी जोड़ने की अनुमति नहीं थी।
टोनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.