Mise en place d’un VPN L2tp/IPSec avec SoftEther

By | May 9, 2018

SoftEther est l’un des plus puissants VPNs au monde. C’est un VPN multiprotocole qui fonctionne sous les systèmes Windows, Linux, Mac, FreeSBD, Solaris.
Cette application VPN est dotée de riches fonctionnalités. Grâce au VPN L2tp/IPSec de SoftEther, vous pourrez créer aisément une politique BYOD (Bring Your Own Device) qui vous permettra de connecter vos appareils (smartphone, laptops, etc.) depuis un réseau externe (domicile) à votre lieu de travail.

Dans cet article, nous verrons comment mettre en place un serveur VPN L2tp/IPSec de SoftEther sur une machine Ubuntu 16.04.

Ci-dessous quelques caractéristiques de SoftEther:

_ Gratuit et Open Source,
_ VPN Révolutionnaire à travers les procotoles ICMP et DNS,
_ Chiffrement AES 256-bit RSA 4096-bit,
_ Supporte des fonctionnalités de sécurité telles que le logging, le pare-feu,
_ Compatible avec Windows, Linux, Mac, Android, iPhone, iPad, Windows Mobile,
_ Supporte les types de VPN client-to-site et site-to-site,
_ Supporte les fonctions d’authentification RADIUS/NT DOMAIN, utilisateurs et mot de passe, authentification avec certificats RSA,
_ Configurable à la fois à partir d’une interface d’utilisateur et d’un outil en ligne de commande,
_ Les protocoles de VPN disponibles avec SoftEther: OpenVPN, L2tp/IPSec, SSL VPN, MS-SSTP, L2TPv3, EtherIP,
_ Fonction de transfer syslog.

I-Installation des pré-requis

Installons dans un premier temps les pré-requis pour l’installation de SoftEther.

# apt-get update && apt-get upgrade -y
# apt-get install -y gcc make wget tzdata git libreadline-dev libncurses-dev libssl-dev cmake

II- Installation de SoftEtherVPN

Passons à présent au téléchargement puis à la compilation des fichiers binaires de SoftEther:

# cd /opt
# git clone https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.git
# cd SoftEtherVPN
#./configure
# make

Suite à la compilation de SoftEther, un dossier bin est généré. Ce dossier contient des dossiers comprenant les fichiers binaires utilisés par SoftEther.

Copiez le contenu du dossier bin dans le dossier /opt.


Le projet github de SoftEther vient avec un dossier systemd comprenant des fichiers qui serviront à créer des services systemd pour l’exécution de chacune des applications de SoftEther.

Il vous suffira donc de copier le contenu du dossier systemd dans le dossier /lib/systemd/system:


Ci dessous le contenu du fichier softether-vpnserver.service.


Démarrez le service softether et activez le au démarrage de votre machine:

# systemctl start softether-vpnserver.service
# systemctl enable softether-vpnserver.service

vpncmd est l’outil d’administration du VPN SoftEther en ligne de commande. Il est situé dans le dossier /opt/vpncmd/vpncmd.
Pour accéder plus facilement à cet exécutable, vous avez plusieurs options dont la configuration d’un alias.
Ouvrez le fichier .bashrc de votre profil,

# nano ~/.bashrc

Puis ajoutez la ligne suivante:

alias vpncmd=/opt/vpncmd/vpncmd

L’outil sera désormais disponible à travers la commande vpncmd dans vos nouveaux shells.

III- Administration du serveur VPN

Passons à présent à la création d’un mot de passe du compte administrateur à l’aide de vpncmd. Cette opération n’est seulement possible que dans le mode admin du serveur. Pour y accéder, lancez vpncmd dans votre terminal, choisissez l’option 1, puis tapez deux fois sur votre touche entrée.
Saisissez l’option ServerPasswordSet pour créer votre mot de passe.

 

Pour utiliser SoftEther, il faut dans un premier temps créer un hub virtuel.
Toujours dans le mode admin, lancez la commande HubCreate suivie du nom de votre hub.
Vous aurez à créer un mot de passe pour le hub.

NB: Par défaut, le protocole propre à SoftEther est activé sur tous les hubs. Ce protocole fonctionne sur les ports 443, 992, 5555.

Passons à présent à la création du VPN L2tp/IPSec.
Sélectionnez votre hub à l’aide de l’option Hub, puis lancez la commande SecureNatEnable qui permet d’activer les fonctionnalités de NAT virtuel et de serveur DHCP.
Ensuite, lancez IPSecEnable pour l’activation du VPN, et répondez yes uniquement à Enable or Disbale IPSec/L2tp Function. 
Créons également par la même occasion une clé PSK pour l’IPSEC .

Créeons un utilisateur pour accéder à notre VPN. La commande UserCreate permet de créer un utilisateur, UserPasswordSet sert à définir un mot de passe pour le nouvel utilisateur.

IV-Configuration des clients

Votre VPN est désormais fonctionnel, la prochaine étape consistera à configurer les clients.
L’un des avantages des VPN L2tp/IPSec, c’est que les clients viennent en natif sur les systèmes Windows, Android, MacOS, iOS.

Windows

Sur Windows, ouvrez vos Paramètres Windows, choisissez le menu Réseau et Internet, puis l’option VPN. Choisissez l’option Ajoutez une connexion VPN et saisissez les informations de votre serveur VPN comme dans l’image ci-dessous.

Android

Dans vos Paramètres Android, choisissez l’option Plus de paramètres de connexion , puis VPN. Cliquez sur PLUS et Ajouter VPN puis insérez les informations liées à votre VPN.

Linux (Ubunutu)

Sur Ubuntu, le client IPSec ne vient pas en natif. Il vous faudra l’ installer dans un premier temps. Cliquez l’icône du Gestionnaire de réseau, puis Modifier les connexions et Ajouter, choisissez l’option L2TP, et insérez les informations du serveur comme dans l’image suivante.

IV-Quelques commandes de SoftEther utiles

Ci-dessous quelques commandes utiles à administration de votre serveur VPN.

IPSecGet

IPSecGet retourne les configurations de base de votre serveur VPN


SessionList

Cette commande retourne une liste de sessions actives sur le VPN.


DhcpTable

DhcpTable retourne la table des baux DHCP.

LogFileList  et LogFileGet

LogFileList sert à lister tous les logs du serveur et LogFileGet permet de consulter un log.

Ainsi prend fin ce guide d’installation d’un serveur L2tp/IPSec avec SoftEther sur une machine Ubuntu 16.04.
Ce billet est le premier d’une série d’articles sur SoftEther.

A bientôt ! 🙂

mdestroy

4 thoughts on “Mise en place d’un VPN L2tp/IPSec avec SoftEther

  1. Gerard

    Bonjour,

    En lisant ton article, j’ai trois questions qui me viennent en tête:
    1) c’est compatible avec les raspberry pi?
    2) C’est un logiciel opensource ou un freeware? http://www.softether-download.com/en.aspx?product=softether annonce que c’est un freeware, et https://github.com/SoftEtherVPN/SoftEtherVPN/ annonce que c’est open source …
    3) Est ce que si le serveur est derrière une box qui a une ip dynamique, il faut obligatoirement passer par un service comme no-ip?
    En tout cas, je te remercie de m’avoir fait découvrir ce logiciel

    Reply
    1. mdestroy Post author

      Hello Gerard !
      1- Oui je confirme. SoftEther est bien compatible avec les raspberry pi.
      2- SoftEther est bien Open Source. Avant 2014, le programme était un freeware. Alors j’imagine que c’est peut-être un oubli de leur part…
      3- Le programme inclut un service Dynamic DNS qui crée un nom d’hôte à partir du nom de domaine softether.net

      Reply
      1. Gerard

        Merci pour ta réponse!
        C’est nickel tout ça, je sais ce que je vais faire ce week end 🙂

        Reply
  2. Hugues max

    Salut
    il faut préciser pour éviter les galères, que le NAT/Brigde qui est une fonction super importante ne marche pas dans certain type de VM ( Vmware, quemu, kvm ) mais fonctionne avec LXC et OpenVZ
    C’est une limitation des Hyperviseurs.
    Si vous êtes dans ce cas, il faut désactiver ces fonctions – installer un serveur dhcp et faire du routage entre l’interface client vpn et la sortie du serveur – et faire le nat sur un autre serveur.

    Reply

Leave a Reply

Your email address will not be published.