ওপেন সংযোগ: ডিফল্ট রুট সেট করা হচ্ছে


13

আমি আমার সংস্থার সিসকো ভিপিএন (যেকোন সংযোগ) এর সাথে সংযোগ রাখতে ওপেন সংযোগ ব্যবহার করার চেষ্টা করছি

সংযোগটি ঠিক কাজ করছে বলে মনে হচ্ছে, যা আমি বুঝতে পারছি না সেটি কীভাবে রাউটিং সেট আপ করবেন। আমি কমান্ড লাইন থেকে এটি করছি।

আমি এর সাথে সংযোগ করতে ডিফল্ট ভিপিএন স্ক্রিপ্ট ব্যবহার করি:

openconnect -u MyUserName --script path_to_vpnc_script myvpngateway.example.com

আমি আমার পাসওয়ার্ডটি টাইপ করেছি এবং আমি সংযুক্ত হয়েছি, তবে আমার ডিফল্ট রুটটি সমস্ত ট্র্যাফিককে ভিপিএন লিঙ্কের নীচে চাপিয়ে দেওয়ার জন্য পরিবর্তিত হয়েছে, যেখানে আমি কেবল ভিপিএন লিঙ্কের নীচে কোম্পানির ট্র্যাফিক চাই।

ভিপিএনসি-স্ক্রিপ্টে আমার কিছু ভেরিয়েবল রাখা দরকার? এটি কীভাবে করা হয় তা খুব পরিষ্কার নয়।

উত্তর:


16

এই উত্তরটি নিম্নরূপ:

ভিপিএনসি-স্ক্রিপ্ট কল করতে নিম্নলিখিত ব্যাশ মোড়ক স্ক্রিপ্ট ব্যবহার করুন। মোড়ক স্ক্রিপ্টে, ভিপিএন সংযোগের জন্য ব্যবহৃত রুটগুলি একটি রুটেস ভেরিয়েবলের মাধ্যমে নির্দিষ্ট করা যেতে পারে।

#!/bin/bash
#

# Routes that we want to be used by the VPN link
ROUTES="162.73.0.0/16"

# Helpers to create dotted-quad netmask strings.
MASKS[1]="128.0.0.0"
MASKS[2]="192.0.0.0"
MASKS[3]="224.0.0.0"
MASKS[4]="240.0.0.0"
MASKS[5]="248.0.0.0"
MASKS[6]="252.0.0.0"
MASKS[7]="254.0.0.0"
MASKS[8]="255.0.0.0"
MASKS[9]="255.128.0.0"
MASKS[10]="255.192.0.0"
MASKS[11]="255.224.0.0"
MASKS[12]="255.240.0.0"
MASKS[13]="255.248.0.0"
MASKS[14]="255.252.0.0"
MASKS[15]="255.254.0.0"
MASKS[16]="255.255.0.0"
MASKS[17]="255.255.128.0"
MASKS[18]="255.255.192.0"
MASKS[19]="255.255.224.0"
MASKS[20]="255.255.240.0"
MASKS[21]="255.255.248.0"
MASKS[22]="255.255.252.0"
MASKS[23]="255.255.254.0"
MASKS[24]="255.255.255.0"
MASKS[25]="255.255.255.128"
MASKS[26]="255.255.255.192"
MASKS[27]="255.255.255.224"
MASKS[28]="255.255.255.240"
MASKS[29]="255.255.255.248"
MASKS[30]="255.255.255.252"
MASKS[31]="255.255.255.254"

export CISCO_SPLIT_INC=0

# Create environment variables that vpnc-script uses to configure network
function addroute()
{
    local ROUTE="$1"
    export CISCO_SPLIT_INC_${CISCO_SPLIT_INC}_ADDR=${ROUTE%%/*}
    export CISCO_SPLIT_INC_${CISCO_SPLIT_INC}_MASKLEN=${ROUTE##*/}
    export CISCO_SPLIT_INC_${CISCO_SPLIT_INC}_MASK=${MASKS[${ROUTE##*/}]}
    export CISCO_SPLIT_INC=$((${CISCO_SPLIT_INC}+1))
}

# Old function for generating NetworkManager 0.8 GConf keys 
function translateroute ()
{
    local IPADDR="${1%%/*}"
    local MASKLEN="${1##*/}"
    local OCTET1="$(echo $IPADDR | cut -f1 -d.)"
    local OCTET2="$(echo $IPADDR | cut -f2 -d.)"
    local OCTET3="$(echo $IPADDR | cut -f3 -d.)"
    local OCTET4="$(echo $IPADDR | cut -f4 -d.)"

    local NUMADDR=$(($OCTET1*16581375 + $OCTET2*65536 + $OCTET3*256 + $OCTET4))
    local NUMADDR=$(($OCTET4*16581375 + $OCTET3*65536 + $OCTET2*256 + $OCTET1))
    if [ "$ROUTESKEY" = "" ]; then
        ROUTESKEY="$NUMADDR,$MASKLEN,0,0"
    else
        ROUTESKEY="$ROUTESKEY,$NUMADDR,$MASKLEN,0,0"
    fi
}

if [ "$reason" = "make-nm-config" ]; then
    echo "Put the following into the [ipv4] section in your NetworkManager config:"
    echo "method=auto"
    COUNT=1
    for r in $ROUTES; do
        echo "routes${COUNT}=${r%%/*};${r##*/};0.0.0.0;0;"
        COUNT=$(($COUNT+1))
    done
    exit 0
fi

for r in $ROUTES; do
    addroute $r
done

exec /etc/openconnect/vpnc-script

তারপরে নিম্নলিখিত হিসাবে সংযুক্ত করুন:

openconnect -u myusername --script wrapper-script -b vpngateway.example.com

5
তারা কীভাবে ROUTES ভেরিয়েবলে একাধিক উপসর্গ / রুট যুক্ত করতে পারে তা ভাবতে ভাবতে আপনি একক স্পেস দিয়ে প্রতিটি এন্ট্রি পৃথক করে এটি করতে পারেন। উদাহরণস্বরূপ: ROUTES = "162.73.0.0/16 162.74.0.0/16"
এলিয়ট বি।

6
ডেবিয়ান 8-এ, উবুন্টু 16.04 এবং 17.04 ডিফল্ট ভিপিএনসি-স্ক্রিপ্টটি অবস্থিত /usr/share/vpnc-scripts/vpnc-script, সুতরাং এই ওএসের উপরে আমাকে সঠিকভাবে মোড়কের শেষ স্ট্রিংটি পরিবর্তন করা দরকার ছিল। আপনার সমাধানের জন্য আপনাকে ধন্যবাদ!
এনভেক

আমার কাজ ভিপিএন 10.0.xx তাই আমি রুটস = ​​10.0.0.0/16 সেট আপ করেছি এবং আমি উবুন্টু ব্যবহার করছি, তাই আমি এক্সিকিউটিটিকে / usr / share / vpnc-scripts / vpnc-ਸਕ্রিপ্টে সেট করেছিলাম - তবে আমি এইটিতে যেতে পারি না পৃথিবীর বাইরে. কোন ধারনা?
mmaceachran

আমি কীভাবে এর বিপরীত অর্জন করতে পারি, অর্থাত্ ভিপিএন থেকে কিছু রুট বাদ দিতে পারি?
হ্যাপিফ্রেস

2

এখানে একটি স্ক্রিপ্ট যা আইপিভি 4 এবং আইপিভি 6 উভয় নেটওয়ার্কে বিভক্ত-টানেলিং করে (আদিত্য কে সরবরাহিত স্ক্রিপ্টের উপর ভিত্তি করে, যা এখনও সমস্ত আইপিভি 6 ট্র্যাফিককে ভিপিএন-তে স্থানান্তরিত করতে অনুমতি দেয়)। আরও মনে রাখবেন যে CISCO_SPLIT_INC _ $ {N} _MASK ভেরিয়েবলের আর প্রয়োজন হবে না বলে মনে হয়):

#!/bin/bash
#

# Routes that we want to be used by the VPN link
ROUTES="162.73.0.0/16"
ROUTES6="1ef2:23e:5a4::0/48"

export CISCO_SPLIT_INC=0

# Create environment variables that vpnc-script uses to configure network
function addroute()
{
    local ROUTE="$1"
    export CISCO_SPLIT_INC_${CISCO_SPLIT_INC}_ADDR=${ROUTE%%/*}
    export CISCO_SPLIT_INC_${CISCO_SPLIT_INC}_MASKLEN=${ROUTE##*/}
    export CISCO_SPLIT_INC=$((${CISCO_SPLIT_INC}+1))
}

export CISCO_IPV6_SPLIT_INC=0
# Do the same for IPv6
function addroute6()
{
    local ROUTE="$1"
    local NET="${ROUTE%%/*}"
    local MASKLEN="${ROUTE##*/}"
    export CISCO_IPV6_SPLIT_INC_${CISCO_IPV6_SPLIT_INC}_ADDR=$NET
    export CISCO_IPV6_SPLIT_INC_${CISCO_IPV6_SPLIT_INC}_MASKLEN=$MASKLEN
    export CISCO_IPV6_SPLIT_INC=$((${CISCO_IPV6_SPLIT_INC}+1))
}

# Old function for generating NetworkManager 0.8 GConf keys 
function translateroute ()
{
    local IPADDR="${1%%/*}"
    local MASKLEN="${1##*/}"
    local OCTET1="$(echo $IPADDR | cut -f1 -d.)"
    local OCTET2="$(echo $IPADDR | cut -f2 -d.)"
    local OCTET3="$(echo $IPADDR | cut -f3 -d.)"
    local OCTET4="$(echo $IPADDR | cut -f4 -d.)"

    local NUMADDR=$(($OCTET1*16581375 + $OCTET2*65536 + $OCTET3*256 + $OCTET4))
    local NUMADDR=$(($OCTET4*16581375 + $OCTET3*65536 + $OCTET2*256 + $OCTET1))
    if [ "$ROUTESKEY" = "" ]; then
        ROUTESKEY="$NUMADDR,$MASKLEN,0,0"
    else
        ROUTESKEY="$ROUTESKEY,$NUMADDR,$MASKLEN,0,0"
    fi
}

if [ "$reason" = "make-nm-config" ]; then
    echo "Put the following into the [ipv4] section in your NetworkManager config:"
    echo "method=auto"
    COUNT=1
    for r in $ROUTES; do
        echo "routes${COUNT}=${r%%/*};${r##*/};0.0.0.0;0;"
        COUNT=$(($COUNT+1))
    done
    exit 0
fi

for r in $ROUTES; do
    addroute $r
done

for r in $ROUTES6; do
    addroute6 $r
done

exec /etc/openconnect/vpnc-script

1

আমি দেখেছি যে স্প্লিট টানেলিং অর্জনের সর্বোত্তম উপায় হ'ল ভিপিএন-স্লাইস ব্যবহার করা । আপনি মূলত কোন রুটগুলি চান তা বলতে পারবেন এবং এটি আপনার ভিপিএন স্ক্রিপ্ট হবে যা সার্ভারটি কনফিগারেশনটি দেয় তার পরিবর্তে রাউটিংটি করে:

openconnect --script 'vpn-slice 10.0.0.0/16' -b vpngateway.example.com

যদিও ডিফল্টরূপে এটি আপনার ডিএনএস সার্ভারটি সার্ভারের সরবরাহকারীর সাথে ওভাররাইড করে না, বরং আপনাকে ম্যানুয়ালি সমস্ত ডোমেন তালিকাবদ্ধ করতে হবে এবং এটি সমাধান করে আপনার হোস্ট ফাইলে এগুলি যুক্ত করবে:

openconnect --script 'vpn-slice 10.0.0.0/16 host1' -b vpngateway.example.com
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.