GNU/Linux >> Belajar Linux >  >> Linux

Openconnect:Mengatur Rute Default?

Saya mencoba menggunakan OpenConnect untuk terhubung ke Cisco VPN (AnyConnect) perusahaan saya

Koneksi tampaknya berfungsi dengan baik, yang tidak saya pahami adalah cara mengatur perutean. Saya melakukan ini dari baris perintah.

Saya menggunakan skrip VPN default untuk terhubung seperti ini:

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

Saya mengetikkan kata sandi saya, dan saya terhubung dengan baik, tetapi rute default saya telah berubah untuk memaksa semua lalu lintas ke bawah tautan VPN, sedangkan saya hanya ingin lalu lintas perusahaan turun dari tautan VPN.

Apakah ada beberapa variabel yang perlu saya masukkan ke dalam skrip vpnc? Tidak begitu jelas bagaimana ini dilakukan.

Jawaban yang Diterima:

Jawabannya adalah sebagai berikut:

Gunakan skrip pembungkus bash berikut untuk memanggil skrip vpnc. Dalam skrip pembungkus, rute yang akan digunakan untuk koneksi VPN dapat ditentukan melalui variabel ROUTES.

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

Kemudian sambungkan sebagai berikut:

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

Linux
  1. Mengapa Nullglob Tidak Default?

  2. Mengkonfigurasi Perangkat Alsa Default (hw:0,0) Di Asoundrc?

  3. Menyiapkan Tampilan Monitor 3?

  1. Apakah Menyetel Opsi Pemasangan Default Untuk Udisk Benar-Benar Tidak Mungkin?

  2. Cara Menambahkan Beberapa Rute di Linux Menggunakan Contoh Perintah ip

  3. ikat dengan INADDR_ANY

  1. Menyiapkan SonarQube di AWS menggunakan EC2

  2. Membuat penyimpanan default berfungsi dengan GRUB2 ...?

  3. Bagaimana cara membuat `ls` mewarnai keluarannya secara default, tanpa mengatur alias?