Mikrotik : Configurer un serveur VPN L2TP/IpSec

Dans le cadre de mon utilisation personnelle, j’utilise un routeur Mikrotik. Il y a quelques années, j’ai mis en place un serveur VPN L2TP/Ipsec sur celui ci et cela me permets de me connecter à mon réseau quand je suis en déplacement, que ce soit via mon téléphone, ma tablette, mon PC, etc.
Et puis, récemment, il a fallu que je refasses ce type d’installation pour un voisin. L’occasion de faire ce petit mémo.

Pré-requis :

  • Un Mikrotik déjà configuré au niveau des services réseaux (dhcp, dns, route, firewall, bridge, etc).
  • Une connexion Internet fonctionnel. Dans ce mémo, il s’agira d’une Livebox ayant une IP publique dynamique (WAN). La Livebox a une IP locale (LAN) : 192.168.1.1
  • Sur le Mikrotik, l’interface « ETH1 » est reliée à la Livebox avec pour IP 192.168.1.11
  • Et l’interface « ETH5 » est relié au switch (LAN) avec pour IP 192.168.2.2

Configuration du serveur VPN :

On commence par créer un POOL d’adresses qui seront attribuées lors des connexions en VPN.
Dans IP/Pool, on créé « pool_VPN » avec un range d’IP : 192.168.2.180-192.168.2.199 soit 19 IPs dédiées aux connexions VPN.

On active le serveur L2TP en allant dans PPP/Interfaces et on clique sur la case « L2TP Server ».
Dans la nouvelle fenêtre, on coche « enabled », on coche mschap2 et mschap1 et on met « yes » dans « Use IPsec ».
On saisit ensuite un mot de passe dans « IPsec Secret ». Ce mot de passe sera commun à tous les utilisateurs/clients VPN. Pour cet exemple, j’ai mis « icionmetunmotdepassecommun » :

On va ensuite créer des profils VPN en allant dans PPP/Profils et on clique sur « + » :

On donne un nom à ce profil en remplissant « Name ».
On saisit l’adresse IP du Mikrotik (côté LAN) dans « Local Address » : 192.168.2.2
On sélectionne notre pool d’IP précédemment sélectionne dans « Remote Address » : « pool_VPN »

Une fois réalisé, on passe à la création des comptes VPN en allant dans PPP/Secrets et on clique sur « + »

On donne un nom au compte dans « Name » : il s’agira de l’identifiant.
On saisit un mot de passe associé à ce compte dans « Password »
On filtre le « Service » en mettant que celui qui nous concerne : « l2tp »
On sélectionne le profil précédemment créé dans « Profile »

On refera cette manipulation autant de fois qu’il y a d’utilisateur à connecter en VPN.

Configuration du firewall :

On passe maintenant à la configuration du firewall du Mikrotik, pour qu’il laisse passer les ports nécessaires au VPN L2TP/Ipsec.
Dans IP/Firewall/Filter Rules, on va créer une règle avec le « + »

On créé la règle pour accepter les ports 500, 1701, 4500.
Dans l’onglet General :
– Chain : input
– Protocol : 17 (udp)
– Dest. Port : 500, 1701,4500
Dans l’onglet Action :
– Accept

En suivant la doc Mikrotik, il est indiqué qu’il faut aussi faire une règle pour accepter le trafic sur le protocole « 50 (ipsec-esp) » … mais je n’ai jamais vu d’activités dessus depuis sa mise en place (donc est-ce vraiment nécessaire?)

Voilà, c’est fait ! le serveur VPN L2TP/Ipsec est maintenant opérationnel sur notre Mikrotik.

Trucs et astuces :

1/ Dans votre configuration de Bridge, il faut que l’ARP soit positionnée en « proxy-arp » :

2/ Il faut évidemment que votre Box Internet soit configurée pour rediriger tout le trafic entrant vers le Mikrotik : il faut mettre en place la DMZ. Dans mon exemple, la Livebox redirige bien vers l’IP « wan » du Mikrotik :

3/ Notre Livebox ayant une IP publique dynamique, j’active une sorte de DynDNS made in Mikrotik (gratuit!). Dans IP/Cloud, on coche juste « DDNS Enabled », le routeur va ainsi récupérer son IP publique et vous créer une URL personnalisée sous la forme xxxxxxxx.sn.mynetname.net
C’est cette adresse qu’il faudra configurer dans le client VPN.

Par exemple, j’ai constaté qu’il fallait forcer la mise à jour de cette adresse dans le cloud Mikrotik, il faut donc faire un simple petit script en allant dans System/Scripts/Scripts et cliquer sur le « + » :

et créer un script avec simplement « /ip cloud force-update »

Ensuite on créé une planification pour le lancement à interval régulier de ce script. Dans System/Scheduler, on clique le « + » et on planifie (ce n’est pas l’objet de ce mémo donc je ne m’étends pas plus… la capture d’écran parle d’elle même).


Vous pouvez également lire le mémo suivant : comment configurer le client VPN Windows pour L2TP/Ipsec en cliquant ici.

Si vous souhaitez partager cet article...Share on Facebook
Facebook
Tweet about this on Twitter
Twitter