Ja ja – lange nichts mehr geschrieben. Aber ich lebe noch und habe gerade eine OpenVPN Odyssee mit MikroTik Routern hinter mich gebracht. Warum? Ihr kennt es: Man googelt hoch motiviert nach einem knackigen Howto und entdeckt lauter Blogs, die mit viel Halbwissen gefüllt sind. Man merkt das die meisten noch nie ein OpenVPN unter Linux konfiguriert haben, geschweige denn den Unterschied zwischen TUN und TAP kennen. Sei es drum. Du hast diese Doku gefunden und sollst nicht enttäuscht werden, denn sie funktioniert 🙂
Erst mal die Zertifikate und Schlüssel mit OpenSSL bauen. Zu kompliziert? Stimmt. Dafür gibt es ja auch Easy-RSA. Zuerst die Datei „vars“ editieren und die gewünschten Parameter anpassen:
# These are the default values for fields # which will be placed in the certificate. # Don't leave any of these fields blank. export KEY_COUNTRY="DE" export KEY_PROVINCE="Saarland" export KEY_CITY="Saarbruecken" export KEY_ORG="MikroTik Router" export KEY_EMAIL="noreply@mikrotik.local" export KEY_OU="IT"
Dann bosseln wir schnell die benötigten Certs und Keys mit den folgenden Befehlen zusammen:
cd /usr/share/easy-rsa/ source vars NOTE: If you run ./clean-all, I will be doing a rm -rf on /usr/share/easy-rsa/keys ./build-ca # CA erstellen ./build-key-server mikrotik # Server Zertifikat ./build-key client1 # Client Zertifikat (am besten mehrere erstellen) Inhalt von "Keys": /snip/ 538098 -rw-r--r-- 1 root root 1809 Jul 11 11:33 ca.crt 538097 -rw------- 1 root root 1704 Jul 11 11:33 ca.key 538108 -rw-r--r-- 1 root root 5591 Jul 11 11:34 client1.crt 538107 -rw-r--r-- 1 root root 1094 Jul 11 11:34 client1.csr 538106 -rw------- 1 root root 1704 Jul 11 11:34 client1.key 538113 -rw-r--r-- 1 root root 5591 Jul 11 11:34 client2.crt 538096 -rw-r--r-- 1 root root 1094 Jul 11 11:34 client2.csr 538094 -rw------- 1 root root 1708 Jul 11 11:34 client2.key 538101 -rw-r--r-- 1 root root 5715 Jul 11 11:33 mikrotik.crt 538100 -rw-r--r-- 1 root root 1094 Jul 11 11:33 mikrotik.csr 538099 -rw------- 1 root root 1704 Jul 11 11:33 mikrotik.key
Zuerst importieren wir die Zertifikate. Die Certs am besten mit WinSCP auf den MikroTik Router kopieren:
In der Winbox ins System importieren (System > Files > Import):
Der Buchstabe „K“ erscheint sobald der Key zum passenden Zertifikat gefunden wurde:
Jetzt legen wir ein Profil für OpenVPN Server an. Damit bestimmen wir die lokale Server-IP für den OpenVPN Adapter (TUN/TAP) und den IP-Pool der Remote Clients (PPP > Profiles):
IP Pool. Gute Sache. Bevor man diesen auswählen kann, muss er erzeugt werden (IP > Pool):
Jetzt kann der eigentliche OpenVPN Server aktiviert werden (PPP > OVPN Server):
Zum Einwählen fehlt noch ein Benutzer mit Passwort (PPP > Secrets):
Das war’s jetzt auf dem MikroTik Router. Nun geht’s auf dem WIndows Client weiter. Folgende Dateien und Config in den Programmordner von OpenVPN kopieren:
Hier meine Beispielkonfiguration:
remote 10.1.1.65 1194 proto tcp-client dev tun resolv-retry infinite nobind persist-key persist-tun tls-client ca ca.crt cert client1.crt key client1.key auth-user-pass ping 10 verb 3 cipher AES-256-CBC auth SHA1 pull # Hier die lokalen Routen eintragen die in den Tunnel gehen sollen route 10.8.111.0 255.255.255.0 10.8.10.1
Verbinden uns loslegen:
Kleiner Ping aufs Gateway und das war’s:
Mein Kollege sagt, das funktioniert so. Und wenn es auch bei mir morgen klappt, dann muss ich dir aus tiefstem Herzen für diese Doku danken! Musste mir bisher immer mit nem Raspi helfen.
Schön wenn die Dokus was bringen und genutzt werden. Ich arbeite schon lange mit OpenVPN und die Firma Mikrotik hat mit seiner „nur TCP bei OpenVPN“ Strategie echt keine Glanzleistung vollbracht, aber auch hier muss man es halt irgendwie zum Laufen bringen 🙂
Habs gestern eingerichtet. Works like a charm.
Bei der Stelle mit dem IP Pool („IP Pool. Gute Sache. Bevor man diesen auswählen kann, muss er erzeugt werden“) musste ich ja an die Schulzeit bei meinem Chemielehrer denken:
„Wir mischen Mehl, Milch und Zucker, schütten das ganze in eine Form, streichen glatt und ab in den Ofen damit. Ach ja: Vorher kamen noch Eier rein.“
Die Sache mit TCP hat mich ebenfalls gewundert, weil ich lieber UDP nutze. Aber wenn man sich einen kompletten Raspi am Standort spart, ist das für mich, für den Kunden und für die Infrastruktur sehr sinnvoll. Die meisten IT-Techniker sind ohnehin sowohl mit dem Raspi, als auch mit dem Mikrotik überfordert. Die können nur Profi-VPN-Appliance-Boxen für 500 Euro / Standort aufstellen 😉
Sehr interessant, ich spiele auch mit dem Gedanken OVPN einzuführen.
Zwei Dinge würde ich noch gerne wissen:
– wie kann man einen VPN-User wieder sperren (ich denke hier z. B. an Mitarbeiter, die nicht im guten gingen)
– auf welche Netze haben VPN-User Zugriff? Wir haben mehrere Dutzend VLANs veranlagt, um ein all-in-Zugriff wäre ein Sicherheits-Super-GAU!
Das User Zertifikat kannst du löschen und die CRL veröffentlichen. Viel einfacher: du kannst den entsprechenden User einfach deaktivieren, löschen oder das PW ändern. Fertig.
Zu den Netzen:
1: nur die Netze pushen die genötigt werden
2: den Rest über die Firewall regeln – dafür ist sie da 🙂
Echt merkwürdig diese Fragen. Ganz ehrlich. Bei solchen Anforderungen sind das für mich absolute Basics was das Design angeht. Du solltest dir helfen lassen 😉