Configuration Linux avec ou sans NAT

avril 9th, 2008

Le fichier /etc/ipsec.conf permet de déterminer si on utilise le NAT ou non.

Que l’on soit naté (chez soit avec sa ligne ADSL par exemple) ou non, vous pouvez utiliser dans la rubrique config setup
nat_traversal=yes

Très important dans la rubrique conn ufc-vpn
leftnexthop=192.168.1.254

Attention à mettre l’adresse de son routeur à la place du 192.168.1.254

Le client ipsec.conf configuré ici avec le serveur VPN 194.57.91.251
version 2
config setup
uniqueids=yes
nhelpers=0
nat_traversal=yes

conn vpn-ufc
authby=rsasig
keyingtries=1
rightprotoport=17/1701
leftprotoport=17/1701
keyexchange=ike
pfs=no
auto=add
left=%defaultroute
leftnexthop=192.168.1.254
leftcert="/etc/ipsec.d/certs/vpn-cri-29-cert.ufc.pem"
leftrsasigkey=%cert
leftsendcert=always
right=194.57.91.251
rightrsasigkey=%cert
rightca=%same

le fichier /etc/ipsec.secrets :
: RSA /etc/ipsec.d/private/vpn-cri-29-cert.key "testvpncri29"

le fichier xl2tpd.conf ou l2tpd.conf :
[global]
port = 1701

[lac user2]
lns = 194.57.91.251
redial = yes
redial timeout = 5
max redials = 3
length bit = yes
require authentication = no
refuse chap = yes
require pap = yes
name = user2
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd.client

le fichier /etc/ppp/options.l2tpd.client :

defaultroute
replacedefaultroute
debug
lock
user user2@lifc-edu
noipdefault
usepeerdns
noauth
lcp-echo-interval 20
lcp-echo-failure 10
noaccomp

le fichier /etc/ppp/pap-secrets :
user2@lifc-edu * ''user2''
ou

Cela peut être évité en utilisant l’astuce décrite dans cet article

Le montage du lien s’effectue en deux temps. IPSEC puis XL2TP
ipsec auto --up ufc-vpn
echo ''c user2'' > /var/run/xl2tpd/l2tp-control

L’arrêt du lien s’effectue par :
echo ''d user2'' > /var/run/xl2tpd/l2tp-control
ipsec auto --down ufc-vpn

Si vous utilisez L2TP les fichiers de configuration auront les mêmes contenu, mais le lancement s’effectue par :
ipsec auto --up ufc-vpn
echo ''c user2'' > /var/run/l2tp-control

L’arrêt du lien s’effectue par :
echo ''d user2'' > /var/run/l2tp-control
ipsec auto --down ufc-vpn

Installer xl2tpd sous debian etch

avril 9th, 2008

mettre le repository du LIFC dans le fichier /etc/apt/sources.list :
# deb LIFC
deb http://lifc.univ-fcomte.fr/debian/ etch-lifc main

Ensuite effectuer :
apt-get update
apt-remove xl2tpd
apt-get install xl2tpd

Authentification PPP

avril 9th, 2008

L’authentification entre le serveur PPP et le client PPP via (X)L2TP n’est pas nécessaire. Dans le fichier /etc/l2tpd/l2tpd.conf ou /etc/xl2tpd/xl2tpd.conf l’option doit être configurée comme suit :
refuse authentication = yes
ou par :
require authentication = no
Le serveur VPN est configuré ainsi.

Utilité des options rightprotoport/leftprotoport

avril 9th, 2008

Une cohérence doit exister entre la configuration du serveur VPN et celle du client : si le fichier de configuration d’IPsec du serveur VPN comporte la ligne protoport, le fichier de configuration du client doit également la comporter.

Dans le fichier ipsec.conf, au niveau du paramètrage des connexions (conn <blabla>), nous devons trouver les options :
rightprotoport=17/1701
leftprotoport=17/1701

sinon le lancement de la connexion :
ipsec auto --up blabla
ne fonctionnera pas.

A l’inverse, si cette option protoport n’est pas présente dans le fichier de configuration du serveur, elle devient inutile dans le fichier de configuration du client VPN.

PPPD + password

avril 9th, 2008

en utilisant l’une des dernières versions de XL2TPD, il n’est plus nécessaire de placer le mot de passe dans le fichier /etc/ppp/pap-secrets :
#user2@lifc-edu 194.57.88.62 user2

il suffit de faire appel au module passwordfd.so dans /etc/ppp/options.l2tpd.client :
plugin passwordfd.so
user user2@lifc-edu
...

et de créer la connexion L2TP avec :
echo "c amande passwordfd user2" > /var/run/xl2tpd/l2tp-control