Mikaël Grialou <mikael.grialou@inrae.fr> v2.2, 09-2022

Contexte

La DSI INRAE met à disposition un service d’accès aux données et applications depuis l’extérieur en utilisant un système de VPN.
Les documentations de configuration des clients VPN sous Windows, Mac et Linux sont directement disponible dans Ariane.
La documentation personnelle ci-dessous explique plus spécifiquement la configuration pour une machine Linux utilisant une distribution Debian ou dérivés (ex : Ubuntu).

Pré-requis

  • Demander le service (Ariane)

Pour en bénéficier, chaque agent INRAE doit faire la demande via Ariane : https://ariane.inra.fr

Demander un service > Informatique d’appui et de proximité > Services Réseau-Sécurité et Téléphonie > Accès aux données et applications depuis l’extérieur.

Compléter le formulaire et attendre l’approbation de cette demande.

  • Compte administrateur

Dans cette documentation les commandes sont à effectuer avec le compte root ou en utilisant la commande sudo

  • Installation des paquets

sudo apt update; sudo apt install vpnc vpnc-scripts

Pour la configuration et l’utilisation du VPN, deux solutions possibles expliquées ci-dessous :

  1. En ligne de commande via la commande vpnc - (recommandée)

  2. Via le NetworkManager de l’environnement graphique

En ligne de commande

Ne pas oublier d’utiliser sudo !

Créer le fichier /etc/vpnc/vpnc-split

#!/bin/sh
# This script is called from the vpnc.conf
# ...
# ...
# Script /etc/vpnc/vpnc_split
# Add one IP to the list of split tunnel
add_ip ()
{
	export CISCO_SPLIT_INC_${CISCO_SPLIT_INC}_ADDR=$1
	export CISCO_SPLIT_INC_${CISCO_SPLIT_INC}_MASK=$2
	export CISCO_SPLIT_INC_${CISCO_SPLIT_INC}_MASKLEN=$3
	export CISCO_SPLIT_INC=$(($CISCO_SPLIT_INC + 1))
}

# Initialize empty split tunnel list
export CISCO_SPLIT_INC=0

# Delete DNS info provided by VPN server to use internet DNS
# Comment following line to use DNS beyond VPN tunnel
unset INTERNAL_IP4_DNS

# List of IPs or Nets beyond VPN tunnel

add_ip 138.102.0.0 255.255.128.0 17
add_ip 138.102.128.0 255.255.240.0 20
add_ip 138.102.144.0 255.255.248.0 21
add_ip 138.102.152.0 255.255.255.248 29
add_ip 138.102.152.16 255.255.255.240 28
add_ip 138.102.152.32 255.255.255.224 27
add_ip 138.102.152.64 255.255.255.192 26
add_ip 138.102.152.128 255.255.255.128 25
add_ip 138.102.153.0 255.255.255.0 24
add_ip 138.102.154.0 255.255.254.0 23
add_ip 138.102.156.0 255.255.252.0 22
add_ip 138.102.192.0 255.255.192.0 18
add_ip 139.124.42.0 255.255.255.0 24
add_ip 147.99.0.0 255.255.0.0 16
add_ip 147.100.0.0 255.255.128.0 17
add_ip 147.100.128.0 255.255.224.0 19
add_ip 147.100.160.0 255.255.248.0 21
add_ip 147.100.168.0 255.255.252.0 22
add_ip 147.100.172.0 255.255.255.192 26
add_ip 147.100.172.72 255.255.255.248 29
add_ip 147.100.172.80 255.255.255.240 28
add_ip 147.100.172.96 255.255.255.224 27
add_ip 147.100.172.128 255.255.255.128 25
add_ip 147.100.173.0 255.255.255.0 24
add_ip 147.100.174.0 255.255.254.0 23
add_ip 147.100.176.0 255.255.240.0 20
add_ip 147.100.192.0 255.255.192.0 18
add_ip 193.49.227.0 255.255.255.0 24
add_ip 193.50.8.0 255.255.255.0 24
add_ip 193.50.9.0 255.255.255.0 24
add_ip 195.50.16.0 255.255.255.0 24
add_ip 193.50.17.0 255.255.255.0 24
add_ip 193.50.18.0 255.255.255.0 24
add_ip 193.50.19.0 255.255.255.0 24
add_ip 193.50.25.0 255.255.255.0 24
add_ip 193.50.35.0 255.255.255.0 24
add_ip 193.50.36.0 255.255.255.0 24
add_ip 193.50.37.0 255.255.255.0 24
add_ip 193.51.165.0 255.255.255.0 24
add_ip 193.51.170.0 255.255.255.0 24
add_ip 193.54.97.0 255.255.255.0 24
add_ip 193.54.99.0 255.255.255.0 24
add_ip 194.167.77.0 255.255.255.0 24
add_ip 194.167.78.0 255.255.255.0 24
add_ip 194.221.34.0 255.255.255.0 24
add_ip 194.254.140.0 255.255.255.0 24
add_ip 194.254.141.0 255.255.255.0 24
add_ip 195.220.91.0 255.255.255.0 24
add_ip 195.221.30.0 255.255.255.0 24
add_ip 195.221.37.0 255.255.255.0 24
# Execute (i.e source) default script
# Modification pour "vpnc-scripts"
# Habituellement c'est "/etc/vpnc/vpnc-script" ou "/usr/share/vpnc-scripts/vpnc-script"
vpncscripts=`man -P cat vpnc 2> /dev/null | grep vpnc-script | grep Default | cut -d ':' -f 2 | sed -e 's/^[[:blank:]]*//' || true`
if [ -n "$vpncscripts" -a -f $vpncscripts ]; then
	. $vpncscripts
else
	echo "Erreur : aucun fichier vpnc-script trouvé"
fi
unset vpncscripts
# End of script
Ce script doit exécuter le fichier vpnc-script selon les distributions il est à un emplacement différent. En cas de doutes consulter le man de vpnc.

Le rendre exécutable :

sudo chmod +x /etc/vpnc/vpnc-split
  • Modifier le fichier /etc/vpnc/default.conf

IPSec gateway acces.intranet.inra.fr
IPSec ID vpn-linux
IPSec secret xauthinra
# Entrez ci-dessous votre login LDAP (national) :
Xauth username XXXXXXXXXXXXX
script /etc/vpnc/vpnc-split
  • Connexion au VPN

Utiliser la commande

sudo vpnc

Indiquer le mot de passe de votre compte LDAP national.
La connexion au VPN INRAE est opérationnelle.

  • Déconnexion

Utiliser la commande

sudo vpnc-disconnect