GNU/Linux >> Tutoriels Linux >  >> Linux

Openconnect :définir des itinéraires par défaut ?

J'essaie d'utiliser OpenConnect pour me connecter au VPN Cisco de mon entreprise (AnyConnect)

La connexion semble fonctionner très bien, ce que je ne comprends pas, c'est comment configurer le routage. Je le fais depuis la ligne de commande.

J'utilise le script VPN par défaut pour me connecter comme ceci :

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

Je tape mon mot de passe et je suis bien connecté, mais mon itinéraire par défaut a changé pour forcer tout le trafic sur le lien VPN, alors que je veux juste le trafic de l'entreprise sur le lien VPN.

Y a-t-il des variables que je dois mettre dans le script vpnc ? La manière dont cela se fait n'est pas très claire.

Réponse acceptée :

Cette réponse est la suivante :

Utilisez le script wrapper bash suivant pour appeler le script vpnc. Dans le script wrapper, les routes à utiliser pour la connexion VPN peuvent être spécifiées via une variable 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

Connectez-vous ensuite comme suit :

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

Linux
  1. Pourquoi Nullglob n'est-il pas par défaut ?

  2. Configuration du périphérique Alsa par défaut (hw:0,0) dans Asoundrc ?

  3. Définition du nom d'hôte dans Docker Compose

  4. lier avec INADDR_ANY

  5. Configuration de SonarQube sur AWS à l'aide d'EC2

Configuration de la passerelle par défaut RHEL

Mot de passe par défaut Kali Linux

Configuration de logrotate sous Linux

Configurer un serveur Web pour utiliser HTTPS

Réglage du fuseau horaire sous Linux

Définition des autorisations de fichier sur le téléchargement VSFTP