Les versions d’opensuse 11 ne prennent pas en compte l’application de la route vers le serveur VPN lors de l’établissement du cannal VPN. De fait la liaison finit par s’interrompre au bout de quelques minutes (lié au timeout des connexions).
Il faut donc ajouter manuellement la route :
route add -host le_serveur_vpn gw votre_passerelle_actuelle
Problème Linux : Opensuse 11
janvier 20th, 2009Problème Linux : erreur d’authentification L2TP/XL2TP
janvier 12th, 2009Lors de l’établissement de la connexion L2TP, il est possible que le serveur indique dans les logs
sent [LCP TermReq id=0x3 "peer refused to authenticate"]
Cette ligne indique une erreur dans le fichier /etc/l2tp/l2tp.conf
ou /etc/xl2tp/xl2tp.conf
.
Il faut impérativement avoir :
require authentication = no
à la place de
refuse authentication = yes
puisque le premier n’impose pas d’authentification mais ne la refuse pas, tandis que la seconde refuse toute authentification.
problème serveur : les utilisateurs ont un problème de routage asymétrique
janvier 6th, 2009Si les utilisateurs ont un problème de route asymétrique entre l’envoie d’un paquet et sa réception ce qui entraîne une rupture de connexion de la part du FireWall, il faut commencer par regarder la configuration des interfaces car c’est à cet endroit que nous effectuons un routage.
Pour rappel, le FireWall divise en quatre grandes classes l’ensemble des classe IP de l’UFC (chacune à sa VRF).
Sur le FW, plusieurs de ces classes sont réunis et il faut faire extrêmement attention à ne pas créer sur la machine VPN un routage inter-classe qui entraînera pour le moins un dysfonctionnement pour l’utilisateur (au pire un dysfonctionnement d’une partie du réseau de l’UFC).
Avec le code suivant :
auto eth0.168
iface eth0.168 inet static
address 172.20.16.220
netmask 255.255.255.0
network 172.20.16.0
broadcast 172.20.16.255
up ip route add default via 172.20.16.254 dev eth0.168 table admin.pres
up ip rule add fwmark 18 table admin.pres
down ip rule del fwmark 18
down ip route del table admin.pres
Nous avons deux règles très importantes :
la première :
up ip route add default via 172.20.16.254 dev eth0.168 table admin.pres
qui implique une route par défaut pour tous les utilisateurs VPN du tag 18 (admin.pres).
la seconde :
up ip rule add fwmark 18 table admin.pres
car c’est par elle que l’on affecte au client le tag 18.
Si le code dans le fichier /etc/network/interfaces ressemble à
up ip route add default via 172.20.16.254 dev eth0.168 table admin.pres
ip up rule add fwmark 18 table admin.pres
Tous les clients de ce réseaux ne seront pas affecté au tag 18 et donc tout leur trafic transitera par l’interface de routage par défaut de la machine qui est sans aucun doute dans une VRF distincte et donc entraînera un dysfonctionnement des connexion de ces clients vers l’extérieur de leur réseau de connexion.
problème Linux : route par défaut surnuméraire
décembre 8th, 2008avant d’activer le VPN vous avez des routes du style :
172.21.7.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
0.0.0.0 172.21.7.254 0.0.0.0 UG 0 0 0 eth1
Une fois activé le VPN (sur l’interface WIFI) vous avez :
194.57.91.250 172.21.7.254 255.255.255.255 UGH 0 0 0 eth1
192.168.255.202 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
172.21.7.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
Mais il est possible qu’une fois activé ipsec vous ayez les routes suivantes en sus :
0.0.0.0 0.0.0.0 128.0.0.0 U 0 0 0 eth1
128.0.0.0 0.0.0.0 128.0.0.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1
Les deux premières routes sont complètement inutile et nuisible à votre connexion. Il faut donc s’en débarrasser avec les commandes suivantes :
route del -net 128.0.0.0 netmask 128.0.0.0
route del -net 0.0.0.0 netmask 128.0.0.0
Vous pouvez aussi aller modifier le fichier /etc/ipsec.conf en décommentant la ligne suivante :
include /etc/ipsec.d/examples/no_oe.conf
Problème Linux : Interface WIFI capricieuse
décembre 8th, 2008Si lors d’un test de connexion comme :
ping 194.57.89.208
vous obtenez la réponse :
connect: Resource temporarily unavailable
c’est que votre interface WIFI est momentanément inutilisable. En général cela ne dure que quelques secondes, mais si ce problème persiste il faut vérifier dans les logs que l’interface WIFI est bien présente.
Il est possible que votre portable demande une action manuelle pour démarrer le WIFI (bouton ON/OFF wifi/blutooth)
Vous pouvez aussi aller modifier le fichier /etc/ipsec.conf en décommentant la ligne suivante :
include /etc/ipsec.d/examples/no_oe.conf
Problème Linux : trop de route par défaut
décembre 8th, 2008Si vous avez plusieurs routes par défaut, cela viens sans aucun doute que vous avez activez (volontairement ou non) le WIFI plus l’interface filaire de votre portable.
Dans ce cas, vous voyez quelque chose du style :
0.0.0.0 194.57.89.254 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 172.21.7.254 0.0.0.0 UG 0 0 0 eth1
Le processus ipsec ne pourra pas démarrer, car il ne saura pas quel passerelle utiliser pour connecter le serveur VPN.
Dans ce cas, il faut donc fermer une connexion (filaire ou wifi au choix) et relancer ipsec.
Problème MacOS Léopard
novembre 12th, 2008Sous Léopard, si vous modifier la configuration du VPN après l’avoir valider une première fois, vous aurez sans doute un au lancement un fenêtre qui s’affiche avec le message “pppd wants to connect to vpn1.univ-fcomte.fr on udp port 1701
“. Si vous cliquez sur le bouton Allow
, une boîte apparaît avec le message “Connexion à Internet : le secret partagé IPsec est manquant
” alors que vous n’avez pas configuré le VPN avec une clef partagé mais bien avec un échange de certificat.
Ce problème est un bug de l’OS de Léopard.
Pour remettre en ordre le VPN, il faut
– détruire la configuration du VPN
– détruire la configuration du WIFI (Airport)
– recréer la configuration Airport
– recréer la configuration VPN
Attention, lors de cette dernière étape, il faut créer une nouvelle connexion VPN (ufc-vpn par exemple) et ne pas utiliser la connexion “defaut”. Prendre soin de configurer tous les éléments, y compris “route par défaut par le VPN
“.
Une fois fait, ne toucher plus à cette configuration, vous risquez de devoir tout recommencer dans le cas contraire.
Windows : script de modification de la base de registre
novembre 5th, 2008Comme nous le conseillons ici ou là, nous vous laissons en téléchargement le petit script qui modifie la base de registre pour VISTA : patch-vpn-ufc-vista.reg
Linux : script de connexion déconnexion
novembre 5th, 2008Avec la contribution de certains de nos collègues, nous publions quelques scripts pour Linux permettant de gérer la connexion et la déconnexion automatique au serveur VPN.
Jean-Michel Carricand nous à fait un script très simple de connexion :
#! /bin/bash function usage() { echo "Usage: $0 {start|stop|restart} connection_name password" exit 1 } CONN="$2" PASS="$3" DEFAULTROUTE=`route -n | grep '^0.0.0.0' | tr -s ' ' ' ' | cut -d' ' -f2` case "$1" in start) [ -z "$2" -o -z "$3" ] && usage $0 stop /etc/init.d/ipsec start; sleep 2 ipsec auto --up ufc-vpn; sleep 2 route add 194.57.91.250 gw $DEFAULTROUTE /etc/init.d/xl2tpd start; sleep 2 echo "c $CONN passwordfd $PASS" > /var/run/xl2tpd/l2tp-control ;; stop) echo "d $CONN" > /var/run/xl2tpd/l2tp-control; sleep 2 /etc/init.d/xl2tpd stop ipsec auto --down ufc-vpn /etc/init.d/ipsec stop route del 194.57.91.250 gw $DEFAULTROUTE ;; restart) $0 stop $0 start ;; *) usage ;; esac
Jérôme Rabouille (UFR-STGI) :
#!/bin/bash # Ecrit par Jérôme Rabouille / UFR STGI # Montage du VPN UFC sous linux avec IPSEC(openswan) / xl2tpd # Testé sous Ubuntu Hardy VPN_NAME="ufc-vpn" #nom du vpn dans /etc/ipsec/conf MACHINE_NAME_XL2TPD=ma_machine #nom de la machine dans /etc/xl2tpd/xl2tpd.conf L2TPD_SCRIPT=/etc/init.d/xl2tpd L2TPD_PIPE=/var/run/xl2tpd/l2tp-control IPSEC_SCRIPT=/etc/init.d/ipsec IPSEC_COMMAND=/usr/sbin/ipsec if [ "$UID" = "0" ]; then case "$1" in start) echo "Saisir le mot de passe(ENT): " read -s PASSWORD $IPSEC_SCRIPT start > /dev/null $L2TPD_SCRIPT start > /dev/null sleep 2 $IPSEC_COMMAND auto --up $VPN_NAME > /dev/null echo "c $MACHINE_NAME_XL2TPD passwordfd $PASSWORD" > $L2TPD_PIPE sleep 3 ppp_ip="`/sbin/ifconfig ppp0 | grep 'inet adr' | awk '{print $2}' | sed -e 's/.*://'`" echo "IP LOCAL UFC:" $ppp_ip ;; stop) echo "d $MACHINE_NAME_XL2TPD" > $L2TPD_PIPE $IPSEC_COMMAND auto --down $VPN_NAME > /dev/null sleep 2 $L2TPD_SCRIPT stop > /dev/null $IPSEC_SCRIPT stop > /dev/null ;; *) echo "usage: "$0 "[start|stop]" echo "Montage du VPN de l'UFC" ;; esac else echo "ERREUR: Vous devez être super utilisateur!" exit 1 fi exit 0
Cédric Clerget (FEMTO-ST) :
Alors j’ai noté quelques problèmes sur mon PC du boulot et mon PC perso. Les deux PC tournent avec une Debian ETCH 64 bits. La connexion se fait sans problème, petit hic, si je souhaite utiliser les DNS FEMTO-ST lorsque je me connecte au realm femto-st je dois éditer /etc/resolv.conf afin d’y ajouter :
search femto-st.fr
nameserver 172.20.208.80
C’est ce que fait le script une fois connecté (script intrusif, n’hésitez pas a sauvegarder /etc/l2tp et /etc/ipsec avant).
#! /bin/sh # A changer selon le lieu d'ou vous vous connectez PASSERELLE="192.168.1.254" # A changer selon votre localisation géographique SERVEUR_VPN="194.57.91.250" # chemin du certificat utilisateur USER_CERT="/etc/ipsec.d/certs/mycert.pem" # La connexion au VPN impose l'utilisation unique du réseau de l'UFC, # et par conséquent l'utilisation du proxy de l'UFC afin de pouvoir surfer. # Si vous souhaitez utiliser votre connexion pour le surf ou autres choses # tout en restant dans le réseau UFC, vous le pouvez en mettant la valeur # du champs suivant à 1 DUALROUTE_ACTIVE=1 DUALROUTE_SCRIPT="/etc/ppp/ip-up.d/dualroute" # Pour la restauration des DNS de votre connexion internet, car la restauration # ne fonctionne pas avec pppd (bug ? feature ?) RESOLV_BACKUP="/etc/resolv.conf.pppd-backup" # si vous désirez remplacer les DNS par défaut attribuer lors de la connexion, sinon commentez les 5 lignes suivantes RESOLV_CONF=` cat << RESOLV_CONF search femto-st.fr nameserver 172.20.208.80 RESOLV_CONF` initialisation () { # Demande de saisi de l'utilisateur et du mot de passe echo -n "Utilisateur (ex : identifiant@realm) : " read USER echo -n "Mot de passe : " read -s PASSWORD echo "" echo "Connexion en cours ..." # génération du fichier /etc/ppp/ip-up.d/dualroute DUALROUTE=` cat << DUALROUTE #!/bin/sh route add -net 172.20.0.0 netmask 255.255.0.0 dev \\$1 DUALROUTE` # génération du fichier /etc/ipsec.conf IPSEC_CONF=` cat << IPSEC_CONF version 2 config setup uniqueids=yes nhelpers=0 nat_traversal=yes conn %default authby=rsasig leftrsasigkey=%cert rightrsasigkey=%cert type=transport keyingtries=1 include /etc/ipsec.d/examples/no_oe.conf conn ufc-vpn rightprotoport=17/1701 leftprotoport=17/1701 keyexchange=ike pfs=no auto=add left=%defaultroute leftcert=$USER_CERT leftrsasigkey=%cert right=$SERVEUR_VPN rightrsasigkey=%cert rightca=%same leftnexthop=$PASSERELLE IPSEC_CONF` # génération du fichier /etc/xl2tpd/xl2tpd.conf XL2TP_CONF=` cat << XL2TP_CONF [global] port = 1701 access control = no [lac machine_lambda] lns = $SERVEUR_VPN redial = yes redial timeout = 10 max redials = 10 length bit = yes refuse authentication = yes refuse chap = yes require pap = yes name = perso ppp debug = yes pppoptfile = /etc/ppp/options.l2tpd.client XL2TP_CONF` # génération du fichier /etc/ppp/options.l2tpd.client if [ $DUALROUTE_ACTIVE == 0 ]; then REPLACEROUTE_OPTION="replacedefaultroute" else REPLACEROUTE_OPTION="noreplacedefaultroute" fi OPTIONS_L2TP=` cat << OPTIONS_L2TP defaultroute $REPLACEROUTE_OPTION debug lock user $USER noipdefault usepeerdns noauth lcp-echo-interval 20 lcp-echo-failure 10 noaccomp OPTIONS_L2TP` } case "$1" in start) initialisation echo -e "$IPSEC_CONF" > /etc/ipsec.conf echo -e "$XL2TP_CONF" > /etc/xl2tpd/xl2tpd.conf echo -e "$OPTIONS_L2TP" > /etc/ppp/options.l2tpd.client if [[ ! -e $DUALROUTE_SCRIPT && $DUALROUTE_ACTIVE == 1 ]]; then echo -e "$DUALROUTE" > $DUALROUTE_SCRIPT chmod +x $DUALROUTE_SCRIPT fi /etc/init.d/ipsec start > /dev/null && /etc/init.d/xl2tpd start > /dev/null sleep 3 if [ ! -z "$PASSWORD" ]; then ipsec auto --up ufc-vpn > /dev/null && echo "c machine_lambda passwordfd $PASSWORD" > /var/run/xl2tpd/l2tp-control fi if [ ! -z "$RESOLV_CONF" ]; then sleep 6 echo -e "$RESOLV_CONF" > /etc/resolv.conf fi ;; stop) echo -e "Déconnexion en cours ..." echo "d machine_lambda" > /var/run/xl2tpd/l2tp-control && ipsec auto --down ufc-vpn > /dev/null /etc/init.d/ipsec stop > /dev/null && /etc/init.d/xl2tpd stop > /dev/null # restauration du fichier /etc/resolv.conf écraser par la connexion VPN if [ -e "$RESOLV_BACKUP" ]; then mv $RESOLV_BACKUP /etc/resolv.conf fi # restauration de la route par défaut afin de pouvoir utiliser de nouveau sa connexion internet if [ $DUALROUTE_ACTIVE == 0 ]; then route add default gw $PASSERELLE fi rm -f $DUALROUTE_SCRIPT ;; *) echo "Usage: connexion-vpn {start|stop}" >&2 exit 3 ;; esac :
Windows : la table de routage
octobre 22nd, 2008Petite explication de la table de routage d’une machine Windows après une connexion VPN depuis une connexion WIFI.
Destination réseau Masque réseau Adr. passerelle Adr. interface Métrique
passerelle du réseau WIFI dans lequel vous vous trouvez
0.0.0.0 0.0.0.0 172.21.23.254 172.21.23.253 4250
passerelle du réseau du REALM VPN dans lequel vous vous trouvez => grosse flèche rouge
0.0.0.0 0.0.0.0 On-link 172.20.179.63 26
loopback
127.0.0.0 255.0.0.0 On-link 127.0.0.1 4531
127.0.0.1 255.255.255.255 On-link 127.0.0.1 4531
127.255.255.255 255.255.255.255 On-link 127.0.0.1 4531
votre adresse locale dans le REALM VPN =>
172.20.179.63 255.255.255.255 On-link 172.20.179.63 281
définition du réseau WIFI
172.21.23.128 255.255.255.128 On-link 172.21.23.253 4506
votre adresse locale dans le WIFI
172.21.23.253 255.255.255.255 On-link 172.21.23.253 4506
broadcast dans le WIFI
172.21.23.255 255.255.255.255 On-link 172.21.23.253 4506
Comment joindre le serveur VPN => route obligatoire => grosse flèche noire
194.57.89.105 255.255.255.255 172.21.23.254 172.21.23.253 4251
multicast
224.0.0.0 240.0.0.0 On-link 127.0.0.1 4531
224.0.0.0 240.0.0.0 On-link 172.21.23.253 4508
224.0.0.0 240.0.0.0 On-link 172.20.179.63 26
broadcast générique
255.255.255.255 255.255.255.255 On-link 127.0.0.1 4531
255.255.255.255 255.255.255.255 On-link 172.21.23.253 4506
255.255.255.255 255.255.255.255 On-link 172.20.179.63 281
===========================================================================
Le flèche verte indique le trajet de l’information pour aller sur un serveur dans l’UFC.