MikroTik als OpenVPN-Server

alex29
Goto Top
Hallo in die Runde,

kann mir bitte jemand sagen, ob es Sinn hat weiter zu probieren ob ein OpenVPN-Server auf RouterOS (MikroTik) mit Windows oder iOS noch funktioniert?

Ich habe einen MikroTik-Router als CA und OpenVPN-Server konfiguriert. Mit einem zweiten MikroTik als Client funktioniert die Verbindung wie gewünscht. Mit Windows oder einem iPad mit aktuellem OS habe ich keinen Erfolg. Beim Windows-Client erhalte ich beim Verbindungsversuch die Meldung:

WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.

MikroTik unterstützt als Authentifizierungsverfahren nur md5 oder sha1. Ich glaube gelesen zu haben, dass der OpenVPN-Client derzeit mindestens sha256 voraussetzt. Ich könnte mir vorstellen, dass es deshalb nicht funktioniert.

Kann mir daher jemand sagen, ob es derzeit mit dem MikroTik als Server überhaupt funktionieren kann.

Vielen Dank im Voraus und

viele Grüße
Alex

Content-Key: 567596

Url: https://administrator.de/contentid/567596

Ausgedruckt am: 07.07.2022 um 01:07 Uhr

Mitglied: aqui
aqui 25.04.2020 um 09:00:35 Uhr
Goto Top
Ja, natürlich ! Warum sollte er deiner Meinung nicht funktionieren ?
Du hast schlicht und einfach den Windows Client falsch konfiguriert, so einfach ist das.
Die komplette Lösung findest du wie immer hier:
https://administrator.de/content/detail.php?id=359367&token=695#comm ...
Halte dich daran, dann klappt das auch auf Anhieb !
Ich glaube gelesen zu haben,
Das ist natürlich Quatsch. Glauben heisst wie immer: nicht wissen ! Du kannst alles Keys importieren in den Mikrotik. Das Tutorial oben lesen und verstehen !

Grundlagen zu OpenVPN auch wie immer hier:
https://administrator.de/wissen/merkzettel-vpn-installation-openvpn-5610 ...
Mitglied: Alex29
Alex29 25.04.2020 aktualisiert um 09:26:43 Uhr
Goto Top
Danke für die Antwort!

Ja, natürlich ! Warum sollte er deiner Meinung nicht funktionieren ?

...weil hier steht, dass Zertifikate mit md5 nicht mehr unterstützt werden. MikroTik autentifiziert nur mit md5 oder sha1 - nun weis ich als Hobby-Admin nicht ob es mit sha1 funktionieren sollte.

https://openvpn.net/vpn-server-resources/#faq-763-md5-signature-algorith ...

Das ist natürlich Quatsch. Glauben heisst wie immer: nicht wissen ! Du kannst alles Keys importieren in den Mikrotik. Das Tutorial oben lesen und verstehen !

...ich will die Keys nicht in MikroTik importieren, weil ich sie hier erstellt habe!!

In den Tutorials wird immer von Linux und Easy-RSA gesprochen. Ich habe jedoch keinen Linux-Rechner und wollte es ausschließlich auf RouterOS machen. Ich habe also auch die CA auf RouterOS und vielleicht hier eingeschränktere Möglichkeiten als mit Easy-RSA. Wie gesagt MikroTik zu MikroTik läuft ja - nur auf Windows und iOS erhalte ich Fehlermeldungen.

Aber laut Deiner Info muss ich noch ein bisschen mit der OpenVPN.conf herumspielen.
Mitglied: aqui
aqui 25.04.2020 aktualisiert um 10:07:32 Uhr
Goto Top
In den Tutorials wird immer von Linux und Easy-RSA gesprochen. Ich habe jedoch keinen Linux-Rechner und wollte es ausschließlich auf RouterOS machen.
Zeigt das du leider mal wieder das o.a. OVPN_Tutorial nicht gelesen hast, denn in jeder OpenVPN Windows Version wird immer auch der EasyRSA Client mitinstalliert. Logischerweise rennt der auch unter Winblows. Alternative wäre dann das GUI basierte XCA. Einen Linx Rechner braucht man auch keineswegs. Lesen hilft also wirklich !! face-wink

Aber du hast Recht einfacher ist es dann die Zertifikate onboard auf dem Mikrotik zu erzeugen. Der supportet aber AES-256 und SHA1 mit denen du absolut safe bist. Eingeschränkt bist du da keineswegs !!
Das es bei dir auf Windows und iOS nicht rennt ist ein klassisches PEBKAC Problem.
Folge dem dir oben genannten Tutorial, dann klappt es natürlich auch mit dem Mikrotik völlig problemlos !
Mitglied: Alex29
Alex29 25.04.2020 aktualisiert um 13:38:05 Uhr
Goto Top
Ich habe die Zertifikate im RouterOS erstellt und exportiert. Das Zertifikat für CA und Client liegt dann im PEM-Format vor. Den Key vom Client habe ich auch mit folgendem Befehl exportiert:

/certificate export-certificate OpenVPN_Client1 export-passphrase=CLIENT1.PASSWORD

dieser liegt dann im key-Format vor.

Unter Windows habe ich dann "OpenVPN GUI" installiert und ins config-Verzeichnis die 3 Datei (2x PEM + 1x KEY) gelegt. Weiterhin habe ich folgende .OVPN Datei abgelegt:

dev tun
proto tcp-client
remote meine_dyn_dns.de 443
ca CA.crt
cert Client1.crt
key Client1.key
cipher AES-256-CBC
auth SHA1
auth-nocache
tls-client
remote-cert-tls server
persist-tun
persist-key
mute-replay-warnings
pull

gelegt.

Beim verbinden bekomme ich folgende Fehlermeldung:

Sat Apr 25 13:19:50 2020 OpenVPN 2.4.9 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [LZ4] [PKCS11] [AEAD] built on Apr 16 2020
Sat Apr 25 13:19:50 2020 Windows version 6.1 (Windows 7) 64bit
Sat Apr 25 13:19:50 2020 library versions: OpenSSL 1.1.1f 31 Mar 2020, LZO 2.10
Enter Management Password:
Sat Apr 25 13:20:03 2020 TCP/UDP: Preserving recently used remote address: [AF_INET]xxxxxxx:443
Sat Apr 25 13:20:03 2020 Attempting to establish TCP connection with [AF_INET]xxxxxxxxxx:443 [nonblock]
Sat Apr 25 13:20:04 2020 TCP connection established with [AF_INET]xxxxxxxxxx:443
Sat Apr 25 13:20:04 2020 TCP_CLIENT link local: (not bound)
Sat Apr 25 13:20:04 2020 TCP_CLIENT link remote: [AF_INET]xxxxxxxxxxx:443
Sat Apr 25 13:21:04 2020 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Sat Apr 25 13:21:04 2020 TLS Error: TLS handshake failed
Sat Apr 25 13:21:04 2020 Fatal TLS error (check_tls_errors_co), restarting
Sat Apr 25 13:21:04 2020 SIGUSR1[soft,tls-error] received, process restarting
Sat Apr 25 13:21:09 2020 TCP/UDP: Preserving recently used remote address: [AF_INET]xxxxxxxxxx:443
Sat Apr 25 13:21:09 2020 Attempting to establish TCP connection with [AF_INET]xxxxxxxx:443 [nonblock]
Sat Apr 25 13:21:10 2020 TCP connection established with [AF_INET]xxxxxxxxxx:443
Sat Apr 25 13:21:10 2020 TCP_CLIENT link local: (not bound)
Sat Apr 25 13:21:10 2020 TCP_CLIENT link remote: [AF_INET]xxxxxxxxxxx:443

Weis Du wo das Problem liegen könnte??
Mitglied: aqui
Lösung aqui 25.04.2020 aktualisiert um 15:38:49 Uhr
Goto Top
Weis Du wo das Problem liegen könnte??
Ja und das solltest du auch selber schon anhand der Fehlermeldungen sehen !
Du hast ein Problem mit mit der Verbindung an sich !
Die Meldung: TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
bedeutet das der OpenVPN Server sich 60 Sekunden lang nicht gemeldet hat auf den Connect Request des Clients und damit ausgetimed ist. Sprich der OVPN Server antwortet nicht auf den Verbindungsversuch des Clients.
Dafür gibt es mehrere Gründe:
  • 1.) Die im Client angegebene Server IP Ziel Adresse stimmt nicht
  • 2.) Wenn du mit einem kaskadiertem Router VOR dem Mikrotik arbeitest stimmt dort das Port Forwarding nicht !
  • 3.) Wenn der Mikrotik in seiner Default Konfig arbeitet (NAT am Internet Koppelport) fehlt die Firewall Regel für den OVPN Port.
Option 2.) dürfte das Wahrscheinlichste sein wenn du in einer Kaskade arbeitest.
Leider wird das aus deiner recht oberflächlichen Schilderung deines Setups oben nicht ganz klar ob der Mikrotik direkt im Internet hängt oder ob du mit einer Kaskade arbeitest !
Ist das der Fall mit einer Kaskade kommt erschwerend dazu das du TCP 443 nutzt was das Default Protokoll für HTTPS ist. Hat der davor kaskadierte Router ein WebGUI wird er vermutlich denken die eingehende OpenVPN TCP 443 Session ist für ihn selber bzw. sein GUI. Stark dafür spricht die TLS Error Meldungen die das Log zeigt.
Dadurch blockiert der davorliegende Router die TCP 443 Pakete und leitet sie NICHT weiter an den dahinter kaskadierten Mikrotik.
Hängt der Mikrotik direkt am Internet dann fehlt dort vermutlich ein Firewall Eintrag der eingehende TCP 443 Sessions erlaubt.
Hier am Beispiel mit dem klasssischen UDP Port 1194 (bei dir dann TCP 443):
ovpnat1

Möglich auch das du eine Kaskade betreibst und zugleich auch den Mikrotik mit aktiviertem NAT (Default Konfig). Dann hast du eine Kombination der Gründe 2.) und 3.) von oben.
Wie gesagt da kann man nur raten weil man deine genaue Mikrotik Konfig nicht kennt ob du hier mit NAT und Firewall am Internet Port arbeitest oder ohne NAT und Firewall und transparentes Routing ??
Hier wäre also etwas nähere Infos für eine zielführende Hilfe nötig !

Wenn du nicht zwingend TCP 443 benötigst, dann solltest du den OpenVPN Port auf TCP und einen der von der IANA empfohlenen Ephemeral Ports (49152 bis 65535) legen, also z.B. TCP 51194.
Damit kann es dann keine Kollisionen mit dem Web Interface eines davor kaskadierten Routers geben.
Willst du TCP 443 unbedingt beibehalten und hast du einen kaskadierten Router davor musst du sicherstellen das dessen WebGUI auf dem WAN Interface deaktiviert ist ansonsten reicht der Router inbound eingehende TCP 443 Pakete NICHT an den dahinterliegenden Router weiter.

Desweiteren hast du einen zusätzlichen gravierenden Fehler in deine Konfig die zeigt das du das dir oben gepostete [ Mikrotik_OVPN_Tutorial] scheinbar nicht gelesen hast ! face-sad
Der MT supportet kein push Kommando um die Route des lokalen IP Netzes auf den Client zu pushen. Deshalb muss zwingend ein statisches Routing Kommando in die Client Konfig !
Richtig sähe die als so aus:
dev tun
proto tcp-client
remote meine.ovpnserver.adresse 443
ca CA.crt
cert Client1.crt
key Client1.key
auth-nocache
tls-client
remote-cert-tls server
persist-tun
persist-key
mute-replay-warnings
cipher AES-256-CBC
auth SHA1
pull
route 192.168.188.0 255.255.255.0


Wobei hier im Beispiel das IP Netz 192.168.188.0 /24 das des lokalen LANs am Mikrotik OpenVPN Server ist. Diese fehlt bei dir oben in der Konfig !
Mitglied: Alex29
Alex29 25.04.2020 aktualisiert um 18:02:58 Uhr
Goto Top
@aqui
Wieder einmal vielen vielen Dank für Deine Mühe!!

Hier noch ein paar Infos - ich bin mir sicher, dass es am Client liegen muss!!

Am Internet hängt bei mir eine Fritzbox mit NAT und Portweiterleitung auf den MikroTik. Der MikroTik ist ausschließlich als VPN-Server konfiguriert. Er läuft als L2TP/IPSec-Server und Clients können sich mit ihm verbinden - das funktioniert!! Zusätzlich läuft auf dem MikroTik der OpenVPN-Server und ein weiterer MikroTik der sich von extern per OpenVPN einwählt funktioniert auch.

Nun wollte ich auf einem iPad und auf einem Windows-Client auch einen OpenVPN-Client einrichten, weil in manchen WLANs die Verbindung per L2TP/IPSec nicht funktioniert. Ich nehme an, dass in diesen fremden WLAN's einer von den L2TP-Ports blockiert ist und daher keine Verbindung zu stande kommt.

Deswegen habe ich für OpenVPN den Port 443 genommen, weil der doch nie blockiert sein sollte - wie gesagt, mit dem zweiten MikroTik als Client funktioniert ja auch diese Verbindung.

Ich werde morgen Früh Deine Config auf dem Windows Client testen und berichten.

Noch einen schönen Samstag und viele Grüße
Alex

PS: Ich habe das Tutorial und vieles mehr gelesen (auch die Youtube-Videos von Pascom) aber wegen dem "Learning by doing" muss ich einzelne Sachen übernehmen auch wenn sich manches erst hinterher erschliesst. face-wink
Mitglied: Alex29
Alex29 26.04.2020 um 10:42:45 Uhr
Goto Top
Mit dem iPad habe ich es nun hin bekommen.

Wie gesagt auf dem MikroTik der OpenVPN-Server funktionierte und die Zertifikate wurden auch im RouterOS erstellt. Zusätzlich wurde noch ein Benutzer für den iPad-Client angelegt.

Nun muss das Zertifikat der RouterOS CA im PEM-Format exportiert werden. Dann muss das Zertifikat des Clients im PKCS12-Format mit Passwort exportiert werden. Hier war bei mir wichtig, dass ich nur die Endung der Clientdatei von .p12 in .ovpn12 umbenne! Nun habe ich eine Textdatei mit dem Namen OVPN-iPad.ovpn und folgendem Inhalt erstellt:

dev tun
proto tcp-client
remote meineipadresse.de 443
auth-nocache
tls-client
remote-cert-tls server
persist-tun
persist-key
mute-replay-warnings
cipher AES-256-CBC
auth SHA1
auth-user-pass
pull
route 192.168.1.0 255.255.255.0
<ca>
-----BEGIN CERTIFICATE
QWERRTZT...........
............ASDFG
-----END CERTIFICATE
</ca>

"meineipadresse.de 443" in der Datei muss natürlich durch die extrene Adresse und den Port des OpenVPN-Servers ersetzt werden. Weiterhin muss zwischen dem "<ca>" und "</ca>" der Inhalt der CA.pem Datei kopiert werden. Zum Schluss muss noch die Route angepasst werden, für die Netze die durch den Tunnel erreichbar sind.

Dann wurden beide Dateien auf das iPad übertragen (bei mir über die Software meiner Synology; funktioniert aber sicher auch per iTunes oder wenn nicht anders möglich per Mail) und in der OpenVPN-App installiert.

Funktioniert!!!
Mitglied: aqui
aqui 26.04.2020 um 12:14:25 Uhr
Goto Top
👍
Case closed ! face-wink
https://administrator.de/faq/32
Mitglied: Alex29
Alex29 26.04.2020 um 12:58:52 Uhr
Goto Top
...mache ich.

Mit dem iPad funktioniert es mit dem Notebook noch nicht. Hier vermute ich es liegt an der OpenVPN-Client Installation. Wahrscheinlich ist der TAP-Treiber nicht richtig installiert - ich muss es an einem anderen Gerät noch mal testen, da eine Neuinstallation auch keine Besserung brachte.
Mitglied: aqui
aqui 26.04.2020 um 13:14:31 Uhr
Goto Top
Mit dem iPad funktioniert es mit dem Notebook noch nicht.
OK, zeigt dann klar das du noch einen Fehler in der OVPN Konfig Datei auf dem Notebook hast !
Wahrscheinlich ist der TAP-Treiber nicht richtig installiert
Ungewöhnlich, kann aber in seltenen Fällen mal passieren. Normalerweise installiert der OVPN Treiber diesen immer mit.
Der Geräte Manager sollte da Klarheit schaffen. Sonste einfach mal damit deinstallieren und rebooten, dann installiert der sich neu.
Kann aber auch ein falsches Firewall Profil am TAP Adapter sein. Das soltest du mit der Firewall mit erweiterten Eigenschaften auf ein Privates Profil setzen.