, , ,

MikroTik L2TP VPN mit IPsec

#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.

PPP Profiles

 

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.

Profile General

 

  • 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.

Profile Protocols

 

IP Pool

Einen IP Pool für den DHCP Server kann im Bereich IP > Pool angelegt werden.

IP Pool
  • 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.

L2TP Server

 

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.

Secret

 

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.

PPP Secret

 

  • 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.

IPsec Peers

 

Auf dem Reiter Peers wird mit dem plus Symbol ein neuer Peer erstellt.

IPsec Peers

 

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!

IPsec Peer

 

  • 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.

IPsec Proposals

 

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.

IPsec Proposal

 

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.

IPsec Policy General

 

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!

Firewall Rules

 

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“).

Windows 10 - 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.

Windows 10 VPN

 

 

– – – 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.

VPN NAT - General

 

Im Bereich Action muss accept ausgewählt werden.

VPN NAT - Action

 

Die neu erstellte Regel muss zwingend vor der Default NAT Regel an Position 0 stehen.

Fw NAT

 

 

Alle Angaben sind ohne Gewähr, die Veränderung Ihrer Systeme erfolgt auf eigene Gefahr.

21 Kommentare
  1. Clubby
    Clubby sagte:

    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 🙂

    Antworten
    • Clubby
      Clubby sagte:

      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! 🙂

      Antworten
  2. Andreas
    Andreas sagte:

    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

    Antworten
  3. Daniel
    Daniel sagte:

    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

    Antworten
    • Andreas
      Andreas sagte:

      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

      Antworten
      • Daniel
        Daniel sagte:

        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

        Antworten
        • Andreas
          Andreas sagte:

          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

          Antworten
          • Daniel
            Daniel sagte:

            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.

  4. Andreas
    Andreas sagte:

    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

    Antworten
    • Daniel
      Daniel sagte:

      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 😉

      Antworten
  5. Sven
    Sven sagte:

    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?

    Antworten
      • Sven
        Sven sagte:

        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

        Antworten
          • Sven
            Sven sagte:

            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.

Dein Kommentar

An Diskussion beteiligen?
Hinterlasse uns Deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.