Contexte

La DSI INRA 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 INRA 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 INRA est opérationnelle.

  • Déconnexion

Utiliser la commande

sudo vpnc-disconnect

Exemples d’utilisation MIAT

Exemple 1 : Intranet

Il est possible de consulter l’intranet MIAT depuis l’extérieur via le VPN.

Exemple 2 : Accès SSH aux serveurs

Pour accéder depuis votre domicile au home directory, il faut utiliser le VPN.
Ensuite il est possible d’accéder directement à "Badet" en ssh.

  • Connexion au VPN

  • SSH :

ssh login@badet.toulouse.inra.fr
 [ ... ]
  • Déconnexion du VPN

De la même façon, vous pouvez accéder aux serveurs de calcul MIAT.

Exemple 3 : Accès SSH aux PC

Il aussi possible d’accéder aux ordinateurs MIAT en utilisant le VPN.
Vous devez utiliser l’adresse IP du PC, car il n’y a pas d’enregistrement DNS pour les PC.
(ici l’adresse IP est 123.123.123.123)

  • Connexion au VPN

  • SSH :

ssh login@123.123.123.123
 [ ... ]
  • Déconnexion du VPN

Environnement graphique - Network Manager

Nous constatons de nombreux dysfonctionnements du VPN via Network Manager, cette méthode n’est pas recommandée.
  • Ajout des paquets :

(ici l’environement graphique est GNOME Shell)

sudo apt update && sudo apt install network-manager-vpnc network-manager-vpnc-gnome
  • Utilitaire de configuration réseau (dans les applications du système)

1
  • Créer un nouveau réseau VPN de type "vpnc" - compatible Cisco

2
3
  • Paramétrer le réseau VPN avec la configuration suivante

4
  • Nom de la connexion : VPN_INRA

  • Passerelle : acces.intranet.inra.fr

  • Nom d’utilisateur : login_ldap_nationnal

  • Mot de passe utilisateur : laisser vide

    • Sélectionner "Toujours demander" (par mesure de sécurité)

  • Nom du groupe : vpn-linux

  • Mot de passe du groupe : xauthinra

    • Terminer par "Enregistrer"

Fermer la fenêtre.

  • Paramétrage du routage

Il est possible de paramétrer le routage via la fenêtre précédente, dans l’onglet "Paramètre IPv4" puis "Routes". Il y a 50 routes à paramétrer, une à une, et l’ajout via la fenêtre graphique est fastidieux . . . Je propose d’éditer directement le fichier de configuration de de copier / coller la configuration.

Fermer l’ensemble des fenêtres précédentes correspondances à la configuration du VPN.
Éditer (en root ou via sudo) le fichier /etc/NetworkManager/system-connections/VPN_INRA.
En fin de fichier compléter la partie suivante :

[ipv4]
method=auto
route1=138.102.0.0/17,0.0.0.0,0
route2=138.102.128.0/20,0.0.0.0,0
route3=138.102.144.0/21,0.0.0.0,0
route4=138.102.152.0/29,0.0.0.0,0
route5=138.102.152.16/28,0.0.0.0,0
route6=138.102.152.32/27,0.0.0.0,0
route7=138.102.152.64/26,0.0.0.0,0
route8=138.102.152.128/25,0.0.0.0,0
route9=138.102.153.0/24,0.0.0.0,0
route10=138.102.154.0/23,0.0.0.0,0
route11=138.102.156.0/22,0.0.0.0,0
route12=138.102.192.0/18,0.0.0.0,0
route13=139.124.42.0/24,0.0.0.0,0
route14=147.99.0.0/16,0.0.0.0,0
route15=147.100.0.0/17,0.0.0.0,0
route16=147.100.128.0/19,0.0.0.0,0
route17=147.100.160.0/21,0.0.0.0,0
route18=147.100.168.0/22,0.0.0.0,0
route19=147.100.172.0/26,0.0.0.0,0
route20=147.100.172.72/29,0.0.0.0,0
route21=147.100.172.80/28,0.0.0.0,0
route22=147.100.172.96/27,0.0.0.0,0
route23=147.100.172.128/25,0.0.0.0,0
route24=147.100.173.0/24,0.0.0.0,0
route25=147.100.174.0/23,0.0.0.0,0
route26=147.100.176.0/20,0.0.0.0,0
route27=147.100.192.0/18,0.0.0.0,0
route28=193.49.227.0/24,0.0.0.0,0
route29=193.50.8.0/24,0.0.0.0,0
route30=193.50.9.0/24,0.0.0.0,0
route31=193.50.17.0/24,0.0.0.0,0
route32=193.50.18.0/24,0.0.0.0,0
route33=193.50.19.0/24,0.0.0.0,0
route34=193.50.25.0/24,0.0.0.0,0
route35=193.50.35.0/24,0.0.0.0,0
route36=193.50.36.0/24,0.0.0.0,0
route37=193.50.37.0/24,0.0.0.0,0
route38=193.51.165.0/24,0.0.0.0,0
route39=193.51.170.0/24,0.0.0.0,0
route40=193.54.97.0/24,0.0.0.0,0
route41=193.54.99.0/24,0.0.0.0,0
route42=194.167.77.0/24,0.0.0.0,0
route43=194.167.78.0/24,0.0.0.0,0
route44=194.221.34.0/24,0.0.0.0,0
route45=194.254.140.0/24,0.0.0.0,0
route46=194.254.141.0/24,0.0.0.0,0
route47=195.50.16.0/24,0.0.0.0,0
route48=195.220.91.0/24,0.0.0.0,0
route49=195.221.30.0/24,0.0.0.0,0
route50=195.221.37.0/24,0.0.0.0,0
never-default=true

Enregistrer et fermer le fichier.

  • Connexion

Via le raccourci Gnome en haut à droite ou la fenêtre "Réseau".
Indiquer le mot de passe de votre compte LDAP national.
La connexion au VPN INRA est opérationnelle, quand vous avez terminé d’utiliser le VPN il faut se déconnecter.

6

ou

5