GNU/Linux >> Linux Esercitazione >  >> Linux

Openconnect:impostazione dei percorsi predefiniti?

Sto cercando di utilizzare OpenConnect per connettermi alla VPN Cisco (AnyConnect) della mia azienda

La connessione sembra funzionare bene, quello che non capisco è come impostare il routing. Lo sto facendo dalla riga di comando.

Uso lo script VPN predefinito per connettermi in questo modo:

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

Digito la mia password e sono connesso correttamente, ma il mio percorso predefinito è cambiato per forzare tutto il traffico verso il basso il collegamento VPN, mentre voglio solo il traffico aziendale verso il basso il collegamento VPN.

Ci sono alcune variabili che devo inserire nello script vpnc? Non è molto chiaro come ciò avvenga.

Risposta accettata:

Questa risposta è la seguente:

Utilizzare il seguente script wrapper bash per chiamare lo script vpnc. Nello script wrapper, i percorsi da utilizzare per la connessione VPN possono essere specificati tramite una variabile 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

Quindi connettiti come segue:

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

Linux
  1. Perché Nullglob non è predefinito?

  2. Configurazione del dispositivo Alsa predefinito (hw:0,0) in Asoundrc?

  3. Configurazione di un display a 3 monitor?

  4. Indirizzo predefinito

  5. Impostazione del nome host in Docker Compose

Configurazione del gateway predefinito RHEL

Password predefinita di Kali Linux

Configurazione di logrotate in Linux

Configurazione di un server web per l'utilizzo di HTTPS

Come impostare due route predefinite in Linux

Impostazione del fuso orario in Linux