OpenVPN: Mikrotik Router als OpenVPN Client – Routing des gesamten Datenverkehrs in den OpenVPN Tunnel

 

Idee: Ein Mikrotik Router ist OpenVPN Client. Der Datenverkehr der am Mikrotik befindlichen Clients soll komplett durch den Tunnel geroutet werden. Alternativ kann man dieses über die Mangle-Regel auf ein bestimmtes IP Netz der Clients oder auch ein Interface einschränken. Damit lässt sich regeln, dass ein angeschlossener Rechner in den OpenVPN Tunnel geroutet wird während alle anderen normal über das default-Gateway gehen.

Diese Anleitung bezieht sich auf RouterOS 6.27 (funktioniert aber auch mit alten Versionen).

OpenVPN Client einrichten
1. Step: Zertifikate des OpenVPN Servers importieren

(Voraussetzung: Passende Zertifikate wurden auf dem OpenVPN Server erstellt und per scp auf den Mikrotik transferiert. )

    /certificate import file-name=zertifikat_ca.crt
    /certificate import file-name=client.crt
    /certificate import file-name=client.key

2. Step: Client konfigurieren

    /interface ovpn-client add name=blahfasel connect-to=1.2.3.4 user=usernameXYZ cipher=aes256 certificate=client_cert port=1194 mode=ip auth=sha1

Der Tunnel sollte nun aufgebaut werden, kann man u.a. über /ip address print prüfen.

Nun kann man vom Mikrotik schon mal das OpenVPN Gateway/ OpenVPN Server erreichen.

3. Das Client-Netz mit masquerade NAT’ten

    /ip firewall nat chain=srcnat action=masquerade out-interface=ovpn-name log=yes log-prefix=“outgoing vpn traffic“
    (das Logging ist erstmal f. Debug, kann man natürlich auch deaktiviert lassen bzw. nach fertiger Einrichtung deaktivieren)

Von einem Client hat man nun ebenfalls Zugriff auf das OpenVPN Netz und kann z.B. den Server pingen.

 

4. Routingregel und Mangle-Regeln anlegen

Nun kommt der Teil, der den Mikrotik veranlasst, den gesamten Datenverkehr vom Client-Netz statt zum default-Gateway zum OpenVPN Server als Gateway zu schicken. Alle Pakete nehmen nun den Weg durch den Tunnel. Vorteil: Wird der Router an einem unsicheren Netz angeschlossen baut er automatisch einen Tunnel zum OpenVPN Server auf und

Damit der Mikrotik eine entsprechende Routingregel hat wird eine default-Route mit dem „routing-mark“ gesetzt

    /ip route add dst-address=0.0.0.0/0 routing-mark=redirect-to-openvpn gateway=IP_OpenVPN_Network
    (Die IP „IP_OpenVPN_Network“ kann man fest setzen oder auf den Interface-Namen setzen, z.B. blahfasel)

Nun veranlassen wir, dass alle Pakete mit einer mangle Regel in den Tunnel geworfen werden und markieren diese mit dem routing-mark:

    /ip firewall mangle add chain=prerouting in-interface=ether2 action=mark-routing new-routing-mark=redirect-to-openvpn

Soll ein Subnetz oder nur eine IP Adresse in den Tunnel ändert man die mangle-Regel

    /ip firewall mangle add chain=prerouting src-address=192.168.88.20 action=mark-routing new-routing-mark=redirect-to-openvpn
    /ip firewall mangle add chain=prerouting src-address=192.168.2.0/24 action=mark-routing new-routing-mark=redirect-to-openvpn
 

Nun kann man den über den VPN Tunnel gerouteten Verkehr vom Client mit mtr, traceroute usw. prüfen. Läuft alles, kann das Logging unter /ip firewall nat f. das OpenVPN-Interface wieder deaktiviert werden.

Fertig 😉

 

Links
http://forum.mikrotik.com/viewtopic.php?f=2&t=73775

Dieser Beitrag wurde unter Dokus und Tipps, Linux/ UNIX, Mikrotik, Technikspielkram abgelegt und mit , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

3 Antworten auf OpenVPN: Mikrotik Router als OpenVPN Client – Routing des gesamten Datenverkehrs in den OpenVPN Tunnel

  1. davedeluxe sagt:

    Hi,
    vielen Dank für den detailierten Post!
    Ich möchte bei mir folgendes tun, ich möchte jeden Traffic über einen VPN-Tunnel leiten z.B. über HideMyAss Pro VPN – Hierfür kann ich diese anleitung nutzen.

    Allerdings habe ich einen FireTV welcher NICHT durch den Tunnel soll da ich sonst keine Inhalte mehr streamen kann.

    Ist es möglich die IP des FireTV nicht zu tunneln?

    Des Weieren würde mich interessieren ob man das Gerät als VPN-Client (wie oben beschrieben) und gleichzeitig als VPN-Server nutzen kann da ich mit diversen Endgeräten (Handy, Backupserver, etc.) per OpenVPN in mein Heimnetz kommen muss.

    Vielen Dank
    davedeluxe

    • rotzoll sagt:

      Hej,
      passe die mangle Regeln einfach auf die entsprechenden Interfaces an. Also alle, die in den Tunnel geroutet werden als Mangle Regel definieren. Das Interface f. d. FireTV lässt du aus.
      Fertig.

  2. Johannes sagt:

    Moin,

    der Teil auf dem Route ist mir einleuchtend …

    Wie richte ich denn auf der Serverseite (Ubuntu Server) den Username ein, den ich in dem Miktorik Router mitgeben muss welcher bei dir auf der Seite den Platzhalter „usernameXYZ“
    Danke für deine Hilfe

    • Jörg sagt:

      Hallo Johannes,

      hast Du fuer deine Anfrage schon enderseitig eine Lösung gefunden?
      Genau an diesem Punkt hänge ich auch 🙁
      Die certs usw. habe ich mit easy-rsa kreiert.
      In der cert erstellung habe ich keinen Punkt an welchem die user:pass kombination erstellt wird.
      Oder sollte als user openvpn genommen werden, unter dieser user:group läuft mein openvpn server, und ich muss dem user openvpn noch ein password verpassen?

      Gruss Joerg

Schreibe einen Kommentar

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

*