Installer un serveur L2TP/IPSec
Dans ce tutorial, nous allons voir comment mettre en place un VPN L2TP/IPSec.
J’ai choisi de faire un second tuto sur les VPNs pour la raison suivante : OpenVPN c’est beaucoup plus sécurisé, c’est vrai mais c’est la galère à installer sur un appareil mobile de type téléphone Android ou Apple. L’avantage du VPN IPSec, c’est que le protocole est géré nativement par beaucoup de systèmes d’exploitation : Windows, MacOS, Android, iOS… Il n’y a donc qu’à configurer le client et ça tourne.
Installation des packages sur le serveur
Nous avons besoin forcement d’un serveur qui supportera en réalité deux services : IPSec pour le montage du tunnel et L2TP pour le cryptage avancé des données.
On commence pour installer les services :
Configuration IPSEC
Pour la configuration IPsec, on va modifier dans un premier temps le fichier /etc/ipsec.conf
Détail de la config :
– leftid= correspond à l’IP de votre serveur
Ensuite on modifie la clé partagée IPSEC dans le fichier /etc/ipsec.secrets
Détail de la config :
– à nouveau, 123.456.123.456 est l’IP de votre serveur ;
– superclepsk : il s’agit de la clé de sécurité, attention à mettre quelque chose de solide.
Les tunnels IPSec purs utilisent les ports UDP 500 et UDP 4500 si vous voulez ajouter des règles de firewall sur votre serveur (ou votre client).
Configuration L2TP
Maintenant on passe à la configuration de xl2tpd, le service L2TP.
Pour cela on commence par modifier le fichier /etc/xl2tpd/xl2tpd.conf
Détail de la config :
– port = 1701, correspond au port L2TP. A débloquer dans le firewall ;
– ip range = 10.0.1.10-10.0.1.100, correspond à la plage des ip pour les clients du vpn ;
– local ip = 10.0.1.1, correspond à l’IP du serveur dans le vpn.
Pour le fonctionnement de L2TP, nous avons besoin du port UDP 1701.
Il reste deux fichiers à éditer :
- le fichier /etc/ppp/chap-secrets
Détail de la config :
– superutilisateur : c’est le login que vous allez utiliser en plus de la clé ipsec ;
– supermotdepasse : c’est le mot de passe associé au login ;
– VPN : c’est le nom du VPN, ce nom doit être strictement identique au paramètre name = dans le fichier /etc/xl2tpd/xl2tpd.conf ;
– l’IP : correspond à l’IP que vous attribuez à l’utilisateur dont vous venez de déclarer le login/mot de passe. Vous pouvez mettre une astérisque si vous ne voulez pas affecter d’IP.
Vous pouvez ajouter des utilisateurs supplémentaires en ajoutant des lignes en dessous.
- le fichier /etc/ppp/options.xl2tpd
Maintenance, notre serveur est configuré.
Routage du traffic et démarrage des services.
Pour que l’on puisse sortir sur internet une fois le tunnel connecté, il faut créer un règle de NAT :
On peut aller démarrer ou redémarrer les services :
Configuration du client : Exemple sous Android
Il ne nous reste plus qu’à configurer notre périphérique pour accéder au tunnel.
Vous avez besoin des éléments suivants :
- l’adresse ip de votre serveur, dans notre cas : 123.456.123.456
- la clé PSK(pre-shared key) de votre service IPSEC : superclepsk
- du couple login/mot de passe que vous avez choisi pour L2TP : superutilisateur & supermotdepasse
La configuration sous Android se passe en deux temps :
- On configure IPsec après avoir choisi le type de tunnel : L2TP/IPsec
- On renseigne les identifiants de connexion.
- On termine par : se connecter et le tour est joué.
Pour vérifier le fonctionnement, chercher des sites du type : DNS Leak, Show my Ip… pour voir si votre IP correspond bien à celle de votre serveur et non celle de votre fournisseur d’accès.
PS: Dans ce tuto, on parle de sécurisation de l’accès internet et de la protection de la vie privée. En aucun cas d’anonymat. Pourquoi ? Parceque si vous installez ce service sur votre propre serveur, c’est bien vous le propriétaire… Vous n’êtes donc pas anonyme. Les plaintes iront à votre fournisseur de serveur à la place de votre fournisseur internet, mais le résultat est le même, vous restez responsable.
Mon travail repose sur l’excellent script trouvé sur Github qui permet la mise en place d’un VPN identique basé sur Libreswan et xl2tpd. C’est par ici : https://github.com/hwdsl2/setup-ipsec-vpn
Bonjour. Merci pour cet article très utile.
Ce tutoriel sur la mise en place d’un VPN L2TP/IPSec est une solution intéressante pour ceux qui recherchent une alternative simple à OpenVPN, surtout pour une utilisation mobile. Le fait que ce protocole soit géré nativement par plusieurs systèmes d’exploitation, comme Windows, MacOS, Android et iOS, facilite grandement la configuration et l’accès, sans avoir à installer de logiciels tiers. La mise en place d’un tel vpn sur un serveur dédié ou vps un est une approche optimale, car cela permet d’héberger un service sécurisé tout en contrôlant entièrement les flux de données et les configurations. L’intégration de ce type de vpn est particulièrement utile pour les entreprises ou les particuliers qui cherchent à renforcer leur cybersécurité, que ce soit pour le télétravail univirtual ou la protection de leurs communications sur des réseaux publics. Cette configuration s’inscrit parfaitement dans une démarche de virtualisation univirtual des services, permettant de rendre accessible un environnement sécurisé sans nécessiter une infrastructure physique lourde.