Tags: Router, VPN, Netzwerk
Das lettische Unternehmen MikroTik liefert eine breite Palette leistungsfähiger Netzwerkgeräte, die sich wegen der sehr günstigen Preise großer Beliebtheit erfreuen. Diese Anleitung zeigt, wie kleine Unternehmen mit einem MikroTik-Router und überschaubarem Aufwand eine professionelle VPN-Lösung einrichten 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.
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.
Die Einwahldaten für DSL legt man dann im Reiter Dial Out fest.
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
Zuerst 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.
L2TP-Server einrichten
Nun 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.
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.
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.
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".
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 Verschlüsselungsalgorithmen er anbietet. Windows unterstützt auch in Version 10 nur sha1, weshalb wir diesen Hash-Algorithmus bei Auth. Algorithms auswählen müssen.
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.
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.
Beim späteren Zustandekommen eines Tunnels wird die tatsächlich verwendete, dynamisch erzeugte Policy dann zum Beispiel so aussehen wie auf diesem Screenshot:
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 Transportmodus 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.
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.
Auch ist hier ist die Action wieder Accept.
Auf der Seite des MikroTik-Geräts ist damit alles erledigt.
Täglich Know-how für IT-Pros mit unserem Newsletter
Seine Themenschwerpunkte sind Virtualisierung und Cloud Computing, speziell VMware, Amazon Web Services, Google Cloud und Microsoft Azure. Thomas ist zertifizierter VMware Professional, Advanced Professional und wurde von VMware in den Jahren 2016, 2017, 2018, 2019 und 2020 mit dem Blogger-Status vExpert ausgezeichnet.
Thomas ist außerdem zertifizierter AWS Solutions Architect, Sysops Engineer und Devops Engineer sowie Microsoft Certified Azure Administrator.
Thomas führt aktuell jeden zweiten Montag einen 4-tägigen Grundlagenkurs in Cloud Computing mit AWS via Zoom-Meeting durch. Weitere Informationen und Anmeldung über sein AWS-Blog.
Ähnliche Beiträge
Weitere Links
3 Kommentare
Schöne Anleitung. Wenn man als VPN Client auf das Routerboard von außen zugreifen will, dann muss noch ein Eintrag in der Firewall hinzugefügt werden. Als Ergänzung wäre hier noch das einschalten des dyn. DNS Dienstes von Mikrofontaste für den ein oder anderen hilfreich. Und aus Erfahrung mindestens das RB 3011 für kleine Business-Zwecke nutzen.
Hinweis für unstabile VPN-Verbindung:. Auf Paketgrößen (MTU) bei pppoe achten und individuell anpassen.
Hallo,
tolle und ausführliche Anleitung - vielen Dank!
Ich suche derzeit eine Lösung, um Telefone im Homeoffice an die TK-Anlage im Büro anzubinden.
Wenn ich das richtig sehe, ist dies ein reines UDP-VPN, und sollte somit für VoIP geeignet sein, ja?
Weil bei OpenVPN kann Mikrotik ja glaube ich nur TCP und ist somit für VoIP ungeeignet.
Ich verstehe nicht ganz das Anwendungszenario. In der Regel kann man doch einfach ein VOIP Telefon mit nach Hause nehmen und dort betreiben. Oder nutzt ihr in der Firma ein Callmanager oder eine eigene VOIP-Anlage?
Für so etwas bitte mal genauere Details.