GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Openconnect:Standardrouten setzen?

Ich versuche, OpenConnect zu verwenden, um eine Verbindung zum Cisco VPN (AnyConnect) meines Unternehmens herzustellen

Die Verbindung scheint gut zu funktionieren, was ich nicht verstehe, ist, wie man das Routing einrichtet. Ich mache das über die Befehlszeile.

Ich verwende das Standard-VPN-Skript, um eine Verbindung wie folgt herzustellen:

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

Ich gebe mein Passwort ein und die Verbindung ist einwandfrei, aber meine Standardroute hat sich geändert, um den gesamten Datenverkehr über die VPN-Verbindung zu erzwingen, während ich nur den Datenverkehr des Unternehmens über die VPN-Verbindung haben möchte.

Gibt es einige Variablen, die ich in das vpnc-Skript einfügen muss? Es ist nicht ganz klar, wie das gemacht wird.

Akzeptierte Antwort:

Diese Antwort lautet wie folgt:

Verwenden Sie das folgende Bash-Wrapper-Skript, um das vpnc-Skript aufzurufen. Im Wrapper-Skript können die für die VPN-Verbindung zu verwendenden Routen über eine ROUTES-Variable angegeben werden.

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

Verbinden Sie dann wie folgt:

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

Linux
  1. Warum ist Nullglob kein Standard?

  2. Alsa-Standardgerät (hw:0,0) in Asoundrc konfigurieren?

  3. Einrichten eines 3-Monitor-Displays?

  4. Standardadresse

  5. So fügen Sie mehrere Routen in Linux mithilfe von ip-Befehlsbeispielen hinzu

RHEL-Standard-Gateway-Konfiguration

Standardpasswort für Kali Linux

Logrotate unter Linux einrichten

Einrichten eines Webservers zur Verwendung von HTTPS

Zeitzoneneinstellung in Linux

Festlegen von Dateiberechtigungen beim VSFTP-Upload