• Serveurs
  • [Discussion] Installer / configurer un VPN via le protocole L2TP/IPSEC

Merci pour ta contribution. J'ai bien aimé la petite introduction, même si j'ai pas tout saisie ^^
Merci, je vais essayer de mieux m'exprimer
Merci pour ce tuto, c'est très intéressant et l'introduction est top, c'est rare sur le forum. C'est bien d'introduire correctement une techno comme tu l'as fait.

Petite suggestion concernant le script init.d du firewall. Je pense qu'il serait plus judicieux de partir sur un script correctement formaté, surtout qu'il s'agit là de règles iptables :
#!/bin/sh
#
# Fichier de configuration du pare-feu
#
### BEGIN INIT INFO
# Provides:          firewall.sh
# Required-Start:    $syslog $network
# Required-Stop:     $syslog $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start firewall daemon at boot time
# Description:       Custom Firewall script
### END INIT INFO
 
fw_start () {

  iptables -t filter -P INPUT DROP
  iptables -t filter -P FORWARD DROP
  iptables -t filter -P OUTPUT DROP
  iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
  iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
  iptables -t filter -A INPUT -i lo -j ACCEPT
  iptables -t filter -A OUTPUT -o lo -j ACCEPT
  iptables -t filter -A INPUT -p tcp --dport <port ssh> -j ACCEPT
  iptables -t filter -A OUTPUT -p tcp --dport <port ssh> -j ACCEPT
  iptables -t nat -A POSTROUTING -s 10.42.42.0/27 -j MASQUERADE
  iptables -A INPUT -p tcp --dport 500 -j ACCEPT
  iptables -A INPUT -p tcp --dport 4500 -j ACCEPT

}
 
fw_stop () {

  iptables -F
  iptables -X
  iptables -t nat -F
  iptables -t nat -X
  iptables -t mangle -F
  iptables -t mangle -X
  iptables -P INPUT ACCEPT
  iptables -P FORWARD ACCEPT
  iptables -P OUTPUT ACCEPT

}
 
fw_clear () {

  iptables -F
  iptables -t nat -F
  iptables -t mangle -F
  iptables -P INPUT ACCEPT
  iptables -P FORWARD ACCEPT
  iptables -P OUTPUT ACCEPT

}
 
case "$1" in
start|restart)
  echo -n "Démarrage du pare-feu..."
  fw_stop 
  fw_start
  echo "done."
  ;;
stop)
  echo -n "Arrêt du pare-feu..."
  fw_stop
  echo "done."
  ;;
clear)
  echo -n "RAZ des règles..."
  fw_clear
  echo "done."
  ;;
*)
  echo "Usage: $0 {start|stop|restart|clear}"
  exit 1
  ;;
esac
exit 0
Ensuite démarrage du service :
service firewall start
Et un petit trick dans le cas où on est pas sûr des règles pour ne pas rester bloqué comme une buse :3
Cette commande efface les règles iptables si elle n'a pas de réponse pendant 20 secondes, faut la lancer juste avant de démarrer le pare-feu :
while true; do test=""; read  -t 20 -p "OK? " test ; \ [ -z "$test" ] && /etc/init.d/firewall clear && exit ; done
un mois plus tard
Bonjour
Quand tu dis que "Nous allons mettre les règles iptables en place pour sécuriser notre serveur VPN. Nous allons supposer que le serveur sert seulement pour le VPN, donc tous les autres flux seront bloqués !"
donc cela bloque Rutorrent ?
Mon serveur il me serveur pour Rutorrent/Vpn/kodi ou Cakebox il faudrait modifier quoi pour que cela fonctionne ?
un mois plus tard
Salut,

pour mon premier message, je vais faire mon emmerdeur de service.
Libreswan pour utilisation sur un système Debian ou dérivé est un bien mauvais choix, en effet ce paquet a été éjecté de Debian (pour une sombre histoire de non-respect de la DFSG il me semble) et n'est pas disponible pour Jessie ou même Ubuntu 14.04.

Il convient d'utiliser Strongswan en lieu et place de Libreswan pour éviter de se trimbaler un logiciel qui n'est plus maintenu à jour en passant à Jessie.

La configuration sera un peu différente.
/etc/ipsec.conf :
version 2.0
config setup
	nat_traversal=yes
conn L2TP-PSK-NAT
	rightsubnet=vhost:%priv
	also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
	authby=secret
	pfs=no
	auto=add
	keyingtries=3
	rekey=no
	ikelifetime=8h
	keylife=1h
	type=transport
	left=<ip_server>
	leftprotoport=17/1701
	right=%any
	rightprotoport=17/%any
	dpddelay=15
	dpdtimeout=30
	dpdaction=clear
Pour une version de Strongswan > 5.0, les options nat_traversal / pfs = no(/yes) sont dépréciées et peuvent être supprimées

optionnel ? Les options de xl2tpd sont aussi à modifier en conséquence (suppression de ipsec saref qui me semblait poser parfois problème, à vérifier) pour Jessie.
/etc/xl2tpd/xl2tpd.conf :
[global]
listen-addr = <ip>
[lns default]
ip range = <ip_range_start>-<ip_range_end>
local ip = <ip_locale>
length bit = yes
require chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
name = <name>
pppoptfile = /etc/ppp/options.xl2tpd
un mois plus tard
6 jours plus tard
Merci beaucoup CocaCola pour ton tuto il est super et niveau configuration c'est plutot simple mais j'ai eu deux petit pépins:
root@xxxxxxxx:/# ipsec verify
Checking your system to see if IPsec got installed and started correctly:
Version check and ipsec on-path                                 [OK]
Linux Openswan U2.6.37/K3.14.32-xxxx-grs-ipv6-64 (netkey)
Checking for IPsec support in kernel                            [OK]
 SAref kernel support                                           [N/A]
 NETKEY:  Testing XFRM related proc values                      [OK]
        [OK]
        [OK]
Checking that pluto is running                                  [OK]
 Pluto listening for IKE on udp 500                             [OK]
 Pluto listening for NAT-T on udp 4500                          [OK]
Two or more interfaces found, checking IP forwarding            [OK]
Checking NAT and MASQUERADEing                                  [OK]
Checking for 'ip' command                                       [OK]
Checking /bin/sh is not /bin/dash                               [WARNING]
Checking for 'iptables' command                                 [OK]
Opportunistic Encryption Support                                [DISABLED]
Checking /bin/sh is not /bin/dash                               [WARNING]
Ne me plait pas beaucoup.

De plus, au risque d'être prit pour un inculte. J'arrive pas à me connecter sous windows...


Merci d'avance pour ta réponse!
sous windows j'avais répondu a un post que j'avais fais.
Dans l'onglet sécurité :
L2TP Dans paramètres avancés, coche utiliser une clé prépartagée
- Niveau de chiffrement maximal
- Autoriser ces protocoles
- Protocole Microsoft CHAP version 2 ; les trois autres cases devant doivent être décochées.
- Dans l'onglet Gestion de réseau : Tout doit être décoché sauf "Protocole Internet Version 4
Je te remercie de ton aide,

J'ai décidé de faire comme toi, une remise à zéro et je vais commencer par le vpn comme ça je serais tranquille avec les règles de pare feu. De plus j'ai eu pas mal d'erreurs au niveau de la connexion Windows malgré que tu m'aie beaucoup aidé.

Cordialement,
2 mois plus tard
Bonjour à tous,

je tiens a remercier CocaCola pour son tuto!!!

Ceci dit, j'ai tout de même un problème pour me connecter au vpn en l2tp depuis une vm windows dans le lan (dans un premier temps)
 xl2tpd.service - LSB: layer 2 tunelling protocol daemon
   Loaded: loaded (/etc/init.d/xl2tpd)
   Active: active (running) since Sat 2015-06-27 16:36:05 CEST; 35s ago
  Process: 1414 ExecStart=/etc/init.d/xl2tpd start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/xl2tpd.service
           └─1417 /usr/sbin/xl2tpd

Jun 27 16:36:05 l2tp-ipsec xl2tpd[1416]: setsockopt recvref[30]: Protocol not available
Jun 27 16:36:05 l2tp-ipsec xl2tpd[1416]: This binary does not support kernel L2TP.
Jun 27 16:36:05 l2tp-ipsec xl2tpd[1414]: Starting xl2tpd: xl2tpd.
Jun 27 16:36:05 l2tp-ipsec xl2tpd[1417]: xl2tpd version xl2tpd-1.3.6 started on l2tp-ipsec PID:1417
Jun 27 16:36:05 l2tp-ipsec xl2tpd[1417]: Written by Mark Spencer, Copyright (C) 1998, Adtran, Inc.
Jun 27 16:36:05 l2tp-ipsec xl2tpd[1417]: Forked by Scott Balmos and David Stipp, (C) 2001
Jun 27 16:36:05 l2tp-ipsec xl2tpd[1417]: Inherited by Jeff McAdams, (C) 2002
Jun 27 16:36:05 l2tp-ipsec xl2tpd[1417]: Forked again by Xelerance (www.xelerance.com) (C) 2006
Jun 27 16:36:05 l2tp-ipsec xl2tpd[1417]: Listening on IP address 10.10.1.5, port 1701

J'ai pourtant bien vérifié tout les fichiers de conf.

Auriez-vous déjà eu ce problème, et, si oui, comment l'avez-vous résolu?

merci d'avance pour vos retours.

cordialement
Re bonjour,

Bien que les services Ipsec et L2tp sont bien démarré, je n'arrive pas à initier une connexion au serveur l2tp/ipsec
..

sur windows, j'ai le message erreur 789
Personne n'a eu le même problème que ce que je rencontre?

Cdlt
14 jours plus tard
Bonjour,

Avez vous eu des problèmes de connexion pour le VPn en L2tp / IPsec?

morsque depuis un client du lan, j'essaie de me connecter au serveur l2tp/ipsec,

dans les logs du serveurs j'ai ce message:

no IKE config found for, sending NO_PROPOSAL_CHOSEN

Avez vous une idée du problème, svp?

Je galère grave sur ce coup....

Merci beaucoup pour votre retour
3 mois plus tard
J'ai essayé de suivre ce tuto pour installer un VPN sur mon dédié, mais dès le début, j'ai ce message d'erreur:
Package openswan is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'openswan' has no installation candidate
Je suis allé sur le site, j'ai téléchargé le zip d'opensawn, j'ai essayé d'ajouter la source selon:
OpwnsawnWiki wrote:To rebuild an openswan Debian package add a file openswan-srv.list containing the line:
deb-src http://ftp.debian.org/debian/ sid main
to your /etc/apt/sources.list.d directory, then call “apt-get update” and finally use “apt-get source openswan” to download the Debian source.
et honnêtement, installer: "Building and installing Debian / Ubuntu packages from source" j'ai pas compris grand chose.

EDIT: Je suis sur Debian 8, j'ai essayé sur un VPS en debian 7 et ça fonctionne...
Merci à mon sauveur.
3 mois plus tard
Bonjour à tous !

Tout d'abord merci à CocaCola pour son tuto.
Je l'ai bien suivi mais je rencontre cependant un petit problème, et j'espère trouver une réponse ici.
J'essaye de monter le serveur VPN l2tp sur l'OS kali linux.
Je n'arrive jamais à établir de connexion que cela soit avec un cient android, iOS ou windows et donc je suis allé regarder de plus près dans le fichier var/log/auth.log en temps réel lorsque je me connecte.

Lorsque j'essaye de me connecter, à partir de mon portable android, cela se stop sur la ligne suivante : " "L2TP-PSK-noNAT"[1] X.X.X.X #4: STATE_QUICK_R2: IPsec SA established transport mode {ESP=>0x1b221782 <0x5fe083ef xfrm=AES_256-HMAC_SHA1 NATOA=none NATD=none DPD=none}" puis plus rien...
Sur mon portable la connexion est en cours jusqu’à se terminer par le message "échec". J'ai cherché à plusieurs reprise sur google et ai essayé de modifier le fichier ipsec.conf dans tous les sens mais rien à faire.

Est-ce que quelqu'un à rencontré le même genre de problème ?

Merci par avance,

Cordialement,

fireice
Répondre…