#Update: Die fehlende Konfiguration für Mode Config wurde ergänzt.
In diesem Artikel wird beschrieben, wie man mit einem MikroTik Router (hier RouterOS v6.34.x), einen L2TP-Server einrichten kann. Die L2TP Verbindung ist mit IPsec abgesichert, alle Konfigurationen sind im Tool WinBox erstellt worden. Unter den Bildern auf denen Einstellungen gemacht werden steht jeweils der Konsolenbefehl um die selbe Konfiguration im Terminal zu machen.
Am ende des Artikels wird gezeigt wie man die VPN-Verbindung mit Windows 10 Professional einrichtet.
PPP > Profiles
Als erstes wird ein neues L2TP Profil erstellt. Man kann auch eines der bestehenden Default-Profile verwenden. Wir erstellen hier aber ein neues Profil mit treffendem Namen, indem wir auf das Plus-Symbol gehen.
General
Das PPP-Profil konfigurieren wir dann wie im Bild zu sehen. Dabei ist die Local Address: die IP-Adresse des MikroTik Geräts. Diese IP-Adresse ist eine feste Adresse aus dem lokalen LAN und sollte nicht mit einem DHCP Pool kollidieren. Bei Remote Adresse kann man einen DHCP-Pool für die VPN-Clients eintragen (wie in diesem Beispiel zu sehen). Dieser wurde vorher unter IP > Pool eingerichtet. Der MikroTik Router ist in diesem Beispiel auch der DNS Server. Als letztes muss noch Change CTP MSS auf yes gesetzt werden.
- Terminal: /ppp profile add name=L2TP-VPN local-address=192.168.1.1 remote-address=vpn-dhcp use-encryption=required change-tcp-mss=yes dns-server=192.168.1.1
Unter dem Reiter Protocols setzten wir Use MPLS auf yes und Use Encryption auf required.
IP Pool
Einen IP Pool für den DHCP Server kann im Bereich IP > Pool angelegt werden.
- Terminal: /ip pool add name=vpn-dhcp ranges=192.168.1.1-192.168.1.10
PPP > Interface – L2TP-Server
Die Einrichtung des L2TP-Server wird unter dem Reiter Interface gemacht.
Nach dem der L2TP Server aktiviert (Enabled) wurde, wird das zuvor erstelle (Default) Profile ausgewählt. Bei der Authentifizierung ist es wichtig nur mschap2 auszuwählen. Alle anderen Authentifizierungsmöglichkeiten sind als schwach einzustufen und sollten vermieden werden! Zum Schluss wird dem L2TP Server gesagt dass er IPsec verwenden soll, dafür wird auch eine festes IPsec Secret vergeben.
- Terminal: /interface l2tp-server server set authentication=mschap2 default-profile=L2TP-VPN enabled=yes ipsec-secret=myIPsecKey max-mru=1460 max-mtu=1460 use-ipsec=yes
PPP > Secret
Unter dem Reiter Secret wird mit dem Plus Symbol, ein neuer VPN – Benutzer erstellt.
Hier wird eine Name und ein möglichst starkes Password vergeben. Als Service wird l2tp verwendet und auch hier wird als Profil, das zuvor erstellte gewählt.
- Terminal: /ppp secret add name=User password=myPassword service=l2tp profile=L2TP-VPN
IP > IPsec
Unter den Einstellungen von IPsec wird ein neuer Peer hinzugefügt.
Auf dem Reiter Peers wird mit dem plus Symbol ein neuer Peer erstellt.
Einige Einstellungen sind schon vorkonfiguriert. Bei Address sollte die 0.0.0.0/0 eingetragen sein um alle IP-Adressen anzusprechen. WICHTIG: Unter Secret wird das IPsec Secret welches schon unter den L2TP Einstellungen vergeben wurde eingetragen!
- Terminal: /ip ipsec peer add address=0.0.0.0/0 port=500 auth-method=pre-shared-key secret=myIPsecKey generate-policy=port-override exchange-mode=main-l2tp send-initial-contact=yes nat-traversal=yes hash-algorithm=sha1 enc-algorithm=3des,aes-192,aes-256 dh-group=modp1024,modp2048,ec2n185 mode-config=vpndhcp
IPsec Mode Config
Unter dem Reiter Mode Configs wird jetzt eine Konfiguration erstellt, diese bekommt einen beliebigen Namen. Hier wird unter Address Pool der zuvor erstellte DHCP-Pool ausgewählt. Mit der Prefixlänge 24 und einem Harken bei Send DNS schließen wir diesen Bereich mit OK.
- Terminal: /ip ipsec mode-config add name=vpndhcp address-pool=vpn-dhcp address-prefix-length=24
IPsec Proposals
Als nächstes muss ein IPsec Proposal erstellt werden.
Hiermit sagt der Server dem Initiator welche Authentisierungs- und Verschlüsselungsalgorithmen er ihm anbietet. Da Windows auch in Version 10 nur sha1 unterstützt muss dieses bei Auth. Algoritms zwingend ausgewählt sein (andere Betriebssysteme können bessere Authentisierungsverfahren). Da auf den Bildern nur der default Proposal bearbeitet wurde ist im Script ein anderer Name für die Proposal ausgewählt, da das Script einen Fehler erzeugen würde, ein default ist schon vorhanden.
Laut MikroTik Wiki muss die PFS Group für Apple iOS (iPhone/iPad) als Client auf none stehen.
- Terminal: /ip ipsec proposal add name=l2tp-prop auth-algorithms=sha1 enc-algorithms=3des,aes-256-cbc pfs-group=none
IPsec Policies
Unter dem Reiter Policies wird jetzt eine neue IPsec Policy erstellt.
Auf dem Reiter General werden folgende Einstellungen gesetzt.
Unter Action sind noch die folgenden Einstellungen zu machen. Wichtig ist das unter Action encrypt ausgewählt ist und das Level require ist! Bei Proposal wird der eben erstellte Proposal ausgewählt.
- Terminal: /ip ipsec policy add src-address=::/0 dst-address=::/0 protocol=all template=yes group=default action=encrypt level=require ipsec-protocols=esp tunnel=no sa-src-address=0.0.0.0 sa-dst-address=0.0.0.0 proposal=l2tp-prop
Auch in diesem Scipt ist der Proposal-Name nicht default!
IP > Firewall
Im Menü unter IP gelangen wir zur Firewall. Hier werden zwei Filter-Regeln angelegt. WICHTIG: Es ist unbedingt darauf zu achten das die neuen Regeln oberhalb der drop Regel sind!
L2TP Regel
In der ersten Regel wird als Chain input ausgewählt und als Protokoll verwenden die Ports UDP. Hier ist es möglich alle drei notwendigen Ports über eine Regel zu steuern, daher stehen bei Dst. Port alle benötigten Ports: 500, 1701, 4500. Das In. Interface heißt in diesem Fall WAN-gateway. Es handelt sich um die Schnittstelle die ans Internet angeschlossen ist. Der Connection State einer L2TP Verbindung wird auf new gesetzt.
Unter dem Reiter Action muss accept ausgewählt sein.
- Terminal: /ip firewall filter add chain=input protocol=udp dst-port=500,1701,4500 in-interface=WAN-gateway connection-state=new action=accept
IPsec Regel
Die zweite Filter-Regel ist bezieht sich auf IPsec. Hier muss Protokoll 50 (esp) erlaubt werden, da in der IPsec Policy als Protokoll esp gewählt wurde. Das In. Interface ist auch in diesem Fall die Schnittstelle zum Internet.
Auch diese Regel hat als Action accept.
- Terminal: /ip firewall filter add chain=input protocol=ipsec-esp in-interface=WAN-gateway action=accept
VPN Verbindung in Windows 10 einrichten
In der Systemsteuerung unter Netzwerk und Internet können die Einstellungen für VPN konfiguriert werden
(Windows Suche: „VPN“).
Unter VPN-Verbindung hinzufügen muss man dann die zuvor getätigten Einstellungen eintragen.
Nach dem die Verbindung gespeichert wurde findet man diese unter VPN wieder. Jetzt sollte man mit Verbinden eine VPN-Verbindung zum MikroTik Router aufbauen können.
– – – Update 28.03.2016 – – –
Script
Ein Nachtrag zum Artikel. Sehr praktisch kann auch das Starten eines Scripts auf dem MikroTik Router beim Aufbau einer VPN-Verbindung sein. Im Beispiel hier wird ein WOL beim start oder beenden der VPN-Verbindung ausgeführt. So kann man beispielsweise ein NAS starten auf dem man dann arbeiten kann.
Im ersten Abschnitt „interface=“ kann das Netzwerkinterface definiert werden. Im zweiten Bereich „mac=“ muss dann die MAC-Adresse des Zielgerätes angegeben werden.
- Script: tool wol interface=bridge-local mac=00:11:22:33:A0:B1
NAT
Falls der IP-Adressbereich für die VPN-Verbindungen ein anderer als der des internen Netzwerks ist, müssen die VPN-Clients noch vom NAT ausgenommen werden. Sie sollen ja Zugriff auf das interne Netzwerk erhalten. Dazu wird eine Firewall NAT Regel erstellt.
Im Bereich Action muss accept ausgewählt werden.
Die neu erstellte Regel muss zwingend vor der Default NAT Regel an Position 0 stehen.
Alle Angaben sind ohne Gewähr, die Veränderung Ihrer Systeme erfolgt auf eigene Gefahr.
Hi Daniel
Thanks for your detailed guide
Could you explain to me why you have enabled the use of MPLS in your L2TP setup ?
regards
yann
Hi yann,
excuse the late reply, I was not in the office. With MPLS one can connect two networks much faster and without speed limitation.
In the microtiki Wiki it is also described: [..]
– VPLS tunnel is about 60% faster and less overhead than EoIP tunnel
– 802.11n speed is limited over WDS bridges, this method doesn’t have such limitations
[..]
https://wiki.mikrotik.com/wiki/Transparently_Bridge_two_Networks_using_MPLS
Thanks
Hallo Daniel, ich habe die Anleitung genau so umgesetzt.
Außer:
IP>IPsec> Mode Configuration hier könnte ich nur request-only auswählen habe ich dann leer gelassen
IP>IPsec>Peers Dort war schon ein Peer angegeben der Dynamisch erzeugt wurde. Diesen habe ich entfernt und einen neuen angelegt.
Wenn Ich jetzt über Windows 10 eine VPN anlegen möchte kommt bei der Verbindung nach einiger Wartezeit:
“ Verbindung mit VPN nicht möglich
Der L2TP-Verbindungsversuch ist fehlgeschlagen, da ein Verarbeitungsfehler während der ersten Sicherheitsaushandelung mit dem Remotecomputer aufgetreten ist.“
Kannst du mir sagen woran das liegen könnte?
Hallo Sven,
ich bin mir nicht sicher ob ich Dir folgen kann. Meinst Du diese Einstellung?
https://justit.eu/wp-content/uploads/2017/01/ModeConfig0.png
Habe ich in der Anleitung einen Punkt vergessen? In der MikroTik Konfiguration sollte es unter IPSec > Mode Configs so aussehen.
https://justit.eu/wp-content/uploads/2017/01/ModeConfig1.png
Du kannst beim Anmeldeversuch beim L2TP Server die Logs mitlesen. Evtl. sagt Dir das mehr!
Hallo
danke für die schnelle Antwort.
1. Genau die Einstellung meinte ich. Ich habe ModeConfig nun angelegt. Wenn ich diese nun beim Peer einstellen möchte kommt jedoch ein Fehler:
Couldn´t Change Change IPsec Peer – Initiator can´t provide config (6)
2. Da hätte ich auch alleine drauf kommen können. Ein Kennwort Fehler ist das Problem gewesen.
3. Ich habe die Verbindung nun herstellen können. Bin dann in die Einstellungen der VPN Verbindung beim Windows 10 gegangen und habe bei Sicherheit mal Automatisch gewählt und unter Erweiterte Einstellung habe ich Zertifikat für Authentifizierung verwenden ausgewählt.
Dennoch klappt es das ich mich verbinden kann. Das ist so ja nicht gewollt, weißt du woran das liegen kann?
Gruß Sven
Zu Punkt 3. kann ich sagen (kopie einer L2TP/IPSec Verbindung gemacht und Deine Einstellungen gewählt) würde bei mir diese Fehlermeldung kommen.
https://justit.eu/wp-content/uploads/2017/01/Auth0.png
Mit dem Vorinstalliertem Schlüssel klappt die Verbindung.
Bei mir winkt er das durch. Hat eine andere Router Einstellung darauf Einfluss? Ich habe es bis auf den Punkt ModeConfig ja genau so eingerichtet wie du es super beschrieben hast.
Und kannst du mir sagen warum dieser Fehler kommt wenn ich ModeConfig einstellen möchte? Das Anlegen hat ohne Probleme geklappt nur das einbinden in de Peer nicht.
Hallo Daniel,
habe mich jetzt in OpenVPN eingelesen und auch gleich installiert, was auf Anhieb funkte.
Bin sehr zufrieden mit der Lösung und habe das L2TP Projekt somit verworfen.
Trotzdem vielen Dank für Deinen Input und lg, Andreas
Hallo Andreas,
das ist freut mich zu hören das Du jetzt noch eine für Dich praktikable Lösung gefunden hast.
Für mich auch vllt. eine Idee, auch für OpenVPN eine Anleitung zu schreiben ;)
Hallo Andreas,
wenn Du mal einen genauen Aufbau Deines Netzwerkes erläutern könntest kann ich Dir evtl. mehr dazu sagen.
Du schreibst das es im LAN funktioniert. Heißt Du kannst per PPTP & L2TP jeweils eine Verbindung zum MikroTik aufbauen?
Wie ist Dein Netzwerk (LAN) an das Internet angebunden?
+ es ist kein Problem aus dem Mobilfunknetz sich per VPN ins LAN einzuwählen welches per (DSL/Kabel) angebunden ist
– jedoch ist es meines Wissens nicht möglich den VPN-Server von außen zu erreichen, wenn das LAN nur per Mobilfunknetz an das Internet angebunden ist
VG
Hallo Daniel,
ich habe auf den besagten Routern jeweils einen LTE USB Stick (Huawei E3372) angeschlossen und gehe über diese wahlweise ins Internet.
Funkt wirklich bestens, bis auf dieses eine Problem.
Der LTE Provider (Drei Österreich) ermöglicht, dass man die WAN IP direkt auf das LTE Modem bekommt und nicht über NAT zugreift.
Ich sehe auch die WAN IP am LTE Stick und wie gesagt, PPTP über WAN geht ja auch bestens.
Übers LAN & WLAN geht L2TP & PPTP auch ohne Probleme, also kann es nur mehr der WAN Zugang oder ein Firewall Problem sein.
Das Einzige was mir noch dazu einfällt ist, dass der Huawei Stick leider keinen Bridge Mode unterstützt und selbst als Router agiert, wodurch zwischen LTE Stick und Mikrotik Router ein NAT erfolgt!.
Ich habe zwar eine Mod. SW auf den LTE STick drauf gespielt und kann den dahinterliegenden Mikrotik Router ins DMZ vom LTE Stick geben, sodass eigentlich alles durchkommen sollte. Nur so war es mir ja auch möglich eine PPTP – WAN Verbindung aufzubauen.
Ich sehe auch bei der Firewall Regel für die UPD Ports 500, 1701 & 4500 Pakete reinkommen, aber es kann der Tunnel nicht aufgebaut werden.
Ich habe leider keine Idee mehr was es sein könnte, außer die Vermutung, dass es die LTE Anbindung ist.
Habe aber im Moment leider keine Möglichkeit es anders zu testen, weil ich meinen DSL Anschluss im Frühjahr ablmeldete.
Eigentlich war ich und bin ich mit PPTP völlig zufrieden und muss mich nur wegen der iOS 10 Umstellung jetzt mit L2TP & IPSec herumärgern! :o((
lg, Andreas
Hi Andreas,
also wenn Du schreibst sagst [..]“Ich sehe auch die WAN IP am LTE Stick und wie gesagt, PPTP über WAN geht ja auch bestens.“[..]. Dann sollte die L2TP-VPN wenn einmal richtig konfiguriert, auch problemlos funktionieren.
Dann könnte es tatsächlich an einer Firewall-Regel liegen.
Zusätzlich würde ich vllt. bei Deinem Mobilfunkanbieter (Foren) mal schauen ob es seitens des Anbieters beschränkungen gibt.
Hast Du es von unterschiedlichen Geräten ausprobiert. Heißt Laptop und Smartphone? Du kannst mir ggf. Deine Fw-Regeln mal schicken, dann gucke ich drüber. Ggf. sehen 4 Augen ja mehr ;-)
VG
Hi Daniel,
vom Provider gibt es keine Einschränkungen, aber ich habe in einem LTE Forum gefunden, dass es bei Doppel-NAT nicht gehen soll! Wieso dann PPTP geht weiß ich nicht, aber explizit L2TP / IPSec wird da erwähnt, dass es nicht geht.
D.h. ich werde mir ein anderes LTE Modem zulegen müssen, welches den Bridge-Mode sauber unterstützt, um dieses Problem zu lösen.
Nichts desto trotz würde ich Dir gerne meine FW Regeln schicken, man weiß ja nie!
Wohin kann ich das tun?
LG, Andreas
Hallo Andreas,
ich würde PPTP aus Sicherheitsgründen garnicht mehr einsetzen.
Du kannst doch einfach einen Onlinedienst wie z.B. Imgur verwenden bei dem Du den Screenshot hochladen kannst. Dann können auch andere Besucher die Fehlerbeschreibung nachvollziehen.
Hallo Daniel,
danke für Deine super Anleitung.
Jedoch scheitere ich seit Stunden daran, dass ich mich von außen auf meine Mikrotik Router verbinden kann!
Habe einen CRS109 und einen RB3011 (beide mit v6.37.1) und bei beiden das selbe Problem, dass ich mich nicht verbinden kann, egal mit welchen Device / OS!
Kann es sein, dass meine LTE Anbindung hier das Problem ist, weil im LAN funktioniert es, somit kann es kein Einstellungsproblem sein.
Ev. das auf der Firewall noch was blockiert? UDP 500, 1701 & 4500 habe ich eingerichtet, auch Protokoll 50 & 51!
Ich kann ansonsten alles machen, auch PPTP ist kein Problem, aber eben nicht L2TP mit IPSec.
Bekomme immer den Fehler, L2TP Server anwortet nicht oder es war ein Verarbeitungsfehler!
Vlt. hast Du noch eine zündende Idee.
LG, Andreas
des Rätsels Lösung :-)
http://forum.mikrotik.com/viewtopic.php?t=99263
nun funktioniert es :-)
Hallo Clubby,
das freut mich das die Einrichtung bei Dir so gut geklappt hat. Danke für die Info mit iOS 10. Auf einem iPhone habe ich es noch nie geteset.
Ein Problem hab ich noch, i kann nur meine PC pingen der auf Port 2 hängt.
Restlichen Geräte die auf Port 3-5 angeschlossen sind kann ich nicht erreichen.
Evtl eine Idee?
Danke! :-)
Die Anleitung ist wirklich perfekt, danke!!!
Bei Win 10 funktionierte die Konfiguration auf anhieb, nur mit iOS 10 an meinem iPhone konnte ich mich nicht verbinden.
Hier musste man unter IP –> IPsec –> Peer –> MY ID die Einstellung „auto“ belassen, dann klappts auch mit iOS 10 :-)
Tausend Dank für diese Bemerkung! Jetzt klappt es!