IPsec-VPN mit MikroTik-Router einrichten


    Tags: , ,

    VPN-TeaserDas lettische Unternehmen MikroTik liefert eine breite Palette leistungs­fähiger Netz­werk­geräte, die sich wegen der sehr günstigen Preise großer Beliebt­heit erfreuen. Diese An­leitung zeigt, wie kleine Unter­nehmen mit einem MikroTik-Router und über­schau­barem Aufwand eine profes­sionelle VPN-Lösung ein­richten können.

    Das eigentliche Hauptprodukt des Unternehmens ist RouterOS, ein angepasstes Linux mit Kernel 3.3.5. Es ist auf allen Hardware-Geräten vorinstalliert. Nutzer können RouterOS aber auch auf normalen x86-PCs installieren. Verwaltet wird das leistungsfähige, auf den Betrieb als Router optimierte Linux wahlweise über eine native Windows-App (Winbox) oder ein Web-Interface.

    MikroTik-Router als PPPoE-Client

    Wer eine professionelle, auf IPsec basierende Client-To-Site-VPN-Lösung betreiben möchte, braucht zumindest auf einer Seite ein VPN-Gateway mit öffentlicher IP-Adresse. Ein MikroTik-Router ist ein vollwertiges Layer-3-Gerät, das man auf jedem seiner Interfaces frei konfigurieren kann. Ein DSL-Modul ist aber nicht enthalten.

    Für unser Szenario verwenden wir einen UiAS in der Rackmount-Version, dessen Listenpreis bei 119 USD liegt. Das Gerät verfügt über 5 1Gb/s- und 5 100Mb/s-Ports. Einen der 100 Mb/s-Ports (Port 10) konfigurieren wir als PPPoE-Client, der sich seine öffentliche IP-Adresse per Einwahl von einem DSL-Modem holt.

    MikroTik RB2011UiAS-RM

    Man kann ein beliebiges Interface seines MikroTik-Routers zum Internet-Uplink machen, indem man dem Port ein Internet-Signal von einem DSL- oder Kabel-Modem zuführt. Dieses Interface wird dann zum WAN-Interface.

    Konfiguriert wird dieses im Menü PPP im Reiter Interface. Mit einem Klick auf das Plus-Symbol erzeugt man ein neues PPP-Interface und im Reiter General ordnet man es einem Ethernet-Interface bzw. Port zu.

    Allgemeine Einstellungen für das PPPoE-Interface

    Die Einwahldaten für DSL legt man dann im Reiter Dial Out fest.

    Einwählverbindung konfigurieren, wenn der Router an einem DSL-Modem hängt

    Als Client soll ein Windows-PC mit privater IP-Adresse dienen, der den VPN-Tunnel über eine Einwahlverbindung mittels  Layer-2-Tunneling-Protocol (LT2P) over IPsec anstelle von IKE aufbaut. Eine entsprechende Client-Konfiguration ist mit jedem modernen Windows-System mit Hausmitteln möglich.

    Alle hier beschriebenen Schritte können wahlweise in der Winbox-App oder im Web-Interface erledigt werden. Wir verwenden in den Bildschirmfotos Winbox.

    PPP-Profile einrichten

    Einstellungen für das neue PPP-ProfilZuerst erstellt man ein neues L2TP-Profil. Dieses verwenden wir anstelle des mitgelieferten Default-Profils. Hierzu klicken wir im Menü PPP auf den Reiter Profiles und dort auf das Plus-Symbol. Der Dialog PPP-Profile hat ebenfalls mehrere Reiter.

    Wir beginnen im Reiter General. Hier erhält das Profil zunächst einen aussagekräftigen Namen. Dann trägt man bei Local Address die IP-Adresse des MikroTik-Gerätes ein. Dies ist eine fixe private IP-Adresse eines Interfaces, auf denen das Gerät im lokalen Netz erreichbar ist.

    Bei Remote Address müssen wir dann einen DHCP-Pool für die potentiellen VPN-Clients festlegen. Den muss man vorher im Menü IP / Pool mit dem gewünschten IP-Bereich definiert haben. Bei DNS Server trägt man einen validen DNS-Server ein. So kann zum Beispiel auch der MikroTik-Router selbst DNS-Server sein. Schließlich setzt man noch den Wert bei Change CTP MSS auf yes.

    Im Reiter Protocols stellen wir zudem Use MPLS auf yes sowie Use Encryption auf required.

    Einstellungen für MPLS und Encryption im PPP-Profil konfigurieren

    L2TP-Server einrichten

    Einstellungen für den L2TP-ServerNun können wir uns dem Einrichten es L2TP-Servers widmen. Hierzu fügen wir im Tab L2tp Server einen neuen Eintrag hinzu. Dieser erhält die in der Abbildung sichtbaren Werte für Max MTU (1460) und Max MRU (1480). Den Status können wir gleich auf Enabled setzen. Bei Default Profile nimmt man dann das oben angelegte PPP-Profil. Bei Authentication muss lediglich mschap2 ausgewählt sein.

    Entscheidend ist, den L2TP-Server anzuweisen, dass er IPsec verwendet, wozu wir ein festes IPsec Secret vergeben. Das ist der später zu verwendende Pre-shared Key (PSK). Dazu legen wir im Menü PPP / Secrets mit einem Klick auf das Plus-Symbol einen neuen VPN-User an. Dieser bekommt einen Namen und ebenfalls ein Passwort, das L2TP-Passwort. Als Service kommt l2tp zum Einsatz und bei Profile wählt man ebenfalls das oben angegebene Profil aus.

    PPP-Secret für den L2TP-Server festlegen

    Der L2TP-Teil ist damit erledigt.

    IPsec konfigurieren

    Zum Einrichten von IPsec erstellen wir zuerst im Menü IP / IPsec im Reiter Profiles ein neues IPsec-Profil, nicht zu verwechseln mit dem L2TP-Profil weiter oben. Hier ist es wichtig, die in der Abbildung verwendeten Werte für den Hash-Algorithmus (sha1), Encryption-Algorithmus (aes 256) und die Deffie-Hellman-Group (DH Group), hier modp 1024, zu verwenden.

    Außerdem muss für ein Client-to-Site-Szenario zwingend NAT Traversal aktiviert sein. Der Profilname ist frei wählbar und wird dann im nächsten Schritt referenziert.

    Neues IPsec-Profil erstellen

    Danach muss man im Menü IP / IPsec im Reiter Peers mit einem Klick auf das Plus-Symbol einen neuen Peer anlegen. Wichtig für unser Client-to-Site-Szenario ist, bei Address den Wert 0.0.0.0/0 bzw. "::/0" einzutragen, womit alle möglichen IP-Adressen angesprochen werden. Bei Profil ist das oben angelegte auszuwählen.

    Neues IPsec-Peer anlegen

    Jetzt wechseln wir zum Reiter Mode Config. Hier erstellen wir eine neue Konfiguration mit einem beliebigen Namen, wobei wir bei Address Pool den oben erstellten DHCP-Pool auswählen. Bei Adress Prefix Length wählen wie die gewünschte Netzwerkgröße, in unserem Beispiel "24".

    DHCP für VPN-Clients konfigurieren

    Danach müssen wir im Reiter Proposals ein so genanntes IPsec-Proposal erstellen. Damit teilt bei MikroTik der Server dem Initiator (Client) mit, welche Authentisierungs- und Ver­schlüsselungs­algo­rithmen er anbietet. Windows unterstützt auch in Version 10 nur sha1, weshalb wir diesen Hash-Algorithmus bei Auth. Algorithms auswählen müssen.

    Authentisierungs- und Ver­schlüsselungs­algo­rithmen auswählen, die der Server den Clients anbieten soll

    Nun geht es an das Erstellen der IPsec-Policies, so die Bezeichnung der Security Policy Database (SPD) bei MikroTik. Da es sich bei Client-to-Site um ein dynamisches Szenario handelt, muss die händisch zu erstellende Policy zunächst so aussehen wie in folgender Abbildung.

    Im Reiter General wird sowohl bei Scr. Adress als auch bei Dst. Adress der Wert "0.0.0.0/0" eingetragen. Da diese Policy quasi nur als Vorlage dient, muss das Häkchen bei Template gesetzt sein.

    Security Policy Database für IPsec konfigurieren

    Im Reiter Action müssen wir nun folgende Einstellungen vornehmen: Bei Action wählen wir encrypt. Bei anderen IPsec-Lösungen heißt diese Variante meist apply IPsec. Die Policy muss also auf alle Pakete passen, die in den Tunnel sollen. Das IPsec-Protokoll ist ESP. Bei Proposal müssen wir den gerade zuvor erstellten auswählen.

    Action für IPsec-Policies definieren

    Beim späteren Zustandekommen eines Tunnels wird die tatsächlich verwendete, dynamisch erzeugte Policy dann zum Beispiel so aussehen wie auf diesem Screenshot:

    Nach Verbindungsaufbau dynamisch erzeugte Policy

    Hier ist neben den tatsächlichen verwendeten öffentlichen Peer-Adressen auch der von L2TP verwendete UDP-Port 1701 zu sehen.

    Firewall-Ports öffnen

    Es fehlt noch das Öffnen der benötigten Firewall-Ports. Zur Erinnerung: ESP benötigt als reines Layer-2-3-Protokoll keine Ports. Hier wird in iptables nur das Protokoll angegeben. Allerdings kommt ESP in Reinform nur zwischen VPN-Gateways mit öffentlichen Endpunkten, also im Transport­modus zum Einsatz.

    Im Client-to-Site-Szenario ist es aber auch möglich, ESP in UDP zu kapseln. Dazu wird der UDP-Port 4500 benötigt. Hinzu kommt dann noch das IKE-Protokoll, dieses benötigt UDP 500. Werden hingegen ESP und IKE in TCP gekapselt, ist noch der Port 10000 zu öffnen. Schließlich braucht das L2TP-Protokoll noch den UDP-Port 1701.

    Die Firewall-Einstellungen finden sich bei MikroTik im Menü IP / Firewall. Doch erstellen wir im ersten Schritt im Reiter Filter Rules eine neue L2TP-Regel für die INPUT-Chain, welche die Destination-Ports 500, 1701 und 4500 für UDP öffnet. Als In. Interface verwenden wir den WAN-Port, also dasjenige Interface, auf dem der MikroTik-Router als PPPoE-Client sein "Internet" bezieht.

    Neue Firewall-Regel für UDP erstellen

    Als Action wählen wir im gleichnamigen Reiter den Eintrag Accept. Fehlt noch die eigentliche IPsec-Regel. Hier müssen wir nur das Protocol 50 (ipsec-esp) wählen, und keinen Port, da ESP ein Layer-3-Protokoll ist.

    Firewall-Regel für Protocol 50 (ipsec-esp)

    Auch ist hier ist die Action wieder Accept.

    Auf der Seite des MikroTik-Geräts ist damit alles erledigt.

    Keine Kommentare