Informations :
Dates
- Publish : : Thursday 18 september 2014
- Modification : Wednesday 19 march 2025
- 3137 views
Share :
Note of Me 2025/03/20 : Cette documentation est obsolète → je vous redirige vers cette solution : My StrongSwan 6.0.1 Configuration files n°7 (How to configure strongSwan v6 Post-Quantum Cryptography NIST compliant #2731) - strongSwan - GitHub - Docs - WiKi - Open Quantum Safe OQS
Je vais décrire comment configurer un serveur VPN par les protocoles IPSec et XL2TP.
Installation des paquets IPSec
Il faut installer un xSecureWAN ;) il y quelques temps çà s'appellait FreeSWAN puis OpenSWAN ;)
De nôs jours c'est :strongSWAN !
Script avec 1 ligne
001aptitude install strongswan xl2tpd
Configuration d'IPSec
Nous allons configurer IPSec : vim /etc/ipsec.conf.
Script avec 82 lignes
001version 2.0002config setup003charondebug=all004uniqueids=no005006conn %default007rekeymargin=3m008keyingtries=3009keyexchange=ikev2010mobike=no011forceencaps=yes012fragmentation=yes013# eap_identity=%any014# phase 1015# ike=aes128-sha1-modp2048016ike=aes256gcm16-sha512-modp2048,aes256gcm16-sha512-modp3072,aes256gcm16-sha512-modp4096,aes256gcm16-sha512-modp8192,aes128-sha1-modp1024,aes128-sha1-modp2048,aes128-sha1-modp3072,aes128-sha1-modp4096,aes128-sha1-modp8192017ikelifetime=36000018# phase 2019# esp=aes256gcm16-sha512-modp8192020# esp=aes128-sha1-modp2048021# esp=aes256gcm16-sha512-modp2048022esp=aes128-sha1-modp2048023lifetime=10800024keylife=10800025authby=psk026installpolicy=yes027# ike=aes-aes256-sha-modp1024,aes256-sha512-modp4096!028# esp=aes-aes256-sha-modp1024,aes256-sha512-modp4096!029030# Pour les connexions de client IPSec sur ce server031conn L2TP-PSK-NAT032rightsubnet=vhost:%priv033also=L2TP-PSK-noNAT034035conn L2TP-PSK-noNAT036authby=secret037pfs=no038auto=add039keyingtries=3040rekey=no041keylife=24h042ikelifetime=6h043type=transport044left=%defaultroute045leftid=@sovh.lab3w.fr046leftprotoport=17/1701047right=%any048rightprotoport=17/%any049forceencaps=yes050dpddelay=40051dpdtimeout=130052dpdaction=clear053054# Pour une connexion du client IPSec nice sur ce server055conn nice-vpn056authby=secret057type=transport058left=%default059leftid=@sovh.lab3w.fr060# site 1061right=IP_DU_SERVER_CLIENT062rightid=@snice.lab3w.fr063auto=add064dpdaction=restart065mark=30066067# Pour la connexion cliente sur le serveur GCLOUD ;)068conn gcloud-vpn1069authby=secret070type=tunnel071left=158.69.126.137072leftid=158.69.126.137073leftauth=psk074leftsubnet=10.101.0.0/24,10.101.150.0/24075# google cloud076right=34.95.21.246077rightid=34.95.21.246078rightauth=psk079rightsubnet=10.162.0.0/20080auto=add081dpdaction=restart082mark=30
Vous vous apercevez que l'on utilise une passphrase authby=secret, on pourait utiliser des certificats.
Puis on ajoute la passphrase dans /etc/ipsec.secrets - par exemple :
Script avec 4 lignes
001@sovh.lab3w.fr %any : PSK "ma clef a pre-partager"002@sovh.lab3w.fr @snice.lab3w.fr : PSK "a clef a pre-partager-nice"00334.95.21.246 : PSK "ma_super_clef_gcloud"004
Infos : Pour la connexion au serveur GCLOUD (pour mémoire) - j'arrive bien à me connecter et à rester connecté dessus (visible depuis l'interface gcloud) ... mais sans trouver/comprendre comment faire pour accéder à ma machine elle-même ou à des services / IP - Ma période d'essai gratuit est terminée :/
Configuration de XL2TP
Nous allons configurer XL2TP : vim /etc/xl2tpd/xl2tpd.conf.
Script avec 33 lignes
001[global]002;auth file = /etc/xl2tpd/xl2tpd-secrets003ipsec saref = yes004;saref refinfo = 30005;listen-addr = 0.0.0.0006;port = 1701007; utilse pour la conf par default(a sup si radius)008access control = no009rand source = dev010;011;debug avp = yes012;debug network = yes013;debug packet = no014;debug state = yes015;debug tunnel = yes016;017[lns default]018;exclusive = no019ip range = 172.16.5.101-172.16.5.154020;assign ip = yes021local ip = 172.16.5.254022name = sovh023hostname = sovh.lab3w.fr024; Regles d'authentification025require chap = yes026refuse pap = yes027require authentication = yes028unix authentication = no029ppp debug = yes030; Fichier de configuration de PPP031pppoptfile = /etc/ppp/options.net.l2tpd032length bit = yes033;challenge = yes
Configuration de PPP
Nous allons configurer PPP : vim /etc/ppp/options.net.l2tpd.
Script avec 47 lignes
001# Do not support BSD compression.002nobsdcomp003passive004lock005 006# Allow all usernames to connect.007name *008#name net009proxyarp010#ipcp-accept-local011#ipcp-accept-remote012#lcp-echo-failure 10013lcp-echo-interval 30014nodeflate015noccp016 017# Do not authenticate incoming connections. This is handled by IPsec.018#noauth019#refuse-chap020#refuse-mschap021#refuse-mschap-v2022 023# Authentification024auth025#noipdefault026require-chap027#require-mppe-128028+mschap-v2029+mschap030require-mschap031require-mschap-v2032hide-password033modem034asyncmap 0035crtscts036#silent037 038# DNS servers the PPP clients will use.039#ms-dns 172.16.5.252040ms-dns 8.4.8.4041 042mtu 1400043mru 1400044 045# Options046#defaultroute047#nodefaultroute
Configuration du fichier des comptes clients (machines et utilisateurs)
On édite : vim /etc/ppp/chap-secrets.
Script avec 11 lignes
001# machine avec IP fixe002pc_1.zw3b.vpn * mot2passe4pc_1 172.16.5.10003172.16.5.10 pc_1.zw3b.vpn mot2passe4pc_1 *004 005# user avec IP fixe006user_1.domaine.tld * mot2passe4user_1 172.16.5.20007172.16.5.20 user_1.domaine.tld mot2passe4user_1 *008 009# user avec IP aléatoire (comprise dans le ip range)010user_2.domaine.tld * mot2passe4user_2 *011* user_2.domaine.tld mot2passe4user_2 *
Puis vérifier bien que le fichier est lisible que pour l'utilisateur root par la commande ls -l /etc/ppp/chap-secrets qui doit vous retourner les droits -rw-------
Script de lancement du serveur VPN : IPSEC+XL2TP
Ici simplement on démarre /etc/init.d/ipsec start et /etc/init.d/xl2tpd start et on attend les connexions VPN des clients.
Script avec 47 lignes
001#!/bin/bash002003#####---------------------------- INFORMATIONS --------------------------------#####004#005# Name : vpn-net-server.sh006# Desc : Script de lancement du serveur VPN : IPSEC+XL2TP007# Auteur : Olivier Romain JAILLET-RAMEY alias Kss*008# Mail : orj AT lab3w DOT fr009# Date : 2014-05-05010#011#####---------------------------- INFORMATIONS --------------------------------#####012013#####-----------------------------------------######014015function ipsec_l2tp()016{017/etc/init.d/ipsec018/etc/init.d/xl2tpd019}020021#####-----------------------------------------######022023024#####-----------------------------------------######025case "$1" in026027start|restart)028$0 stop029echo "$0 Starting"030ipsec_l2tp start031echo "VPN ZW3B CONNECTION UP"032;;033034stop)035echo "$0 Stop"036037ipsec_l2tp stop038echo "VPN ZW3B CONNECTION DOWN"039;;040041*)042echo "usage : $0 (start|stop|restart)"043;;044045esac046#####-----------------------------------------######047
Votre serveur VPN IPSec par XL2TP est configuré.
Il faut que vous configurez un client VPN pour essayer si la connexion fonctionne - pourquoi pas ajouter aussi le script de re-connexion automatique au serveur

