, , ,

MikroTik SSTP VPN für Windows Clients

In dieser Anleitung soll das einrichten eines Mikrotik SSTP-Server und eine Verbindung am Beispiel eines Windows Client (Windows 10 Pro) erklärt werden.  Seit Windows Vista mit SP1, gibt es zu den herkömmlichen VPN Verbindungen, PPTP (sollte nicht mehr verwendet werden) und L2TP/IPsec die Möglichkeit eine SSTP-VPN Verbindung zu erstellen. SSTP ist ein proprietärer Standard der Firma Microsoft (MSDN). Das bedeutet u.a. dass der Quellcode nicht eingesehen werden kann. Um eine Verbindung von einem Linux oder Mac Client zu erstellen benötigt man zusätzliche Software.

Bei dieser Verbindung kommt ein Server Zertifikat sowie eine CA zum Einsatz. Das Zertifikat der CA muss auf dem Windows Rechner, zu den Vertrauenswürdigen Stammzertifizierungsstellen, hinzugefügt werden. Hat ein Client kein CA Zertifikat installiert, aber die erforderlichen Anmeldedaten, wird er sich trotzdem nicht mit dem SSTP-Server verbinden können.

Für diese Art von VPN-Verbindungen müssen im Normalfall keine zusätzlichen Firewall Regeln Client-seitig gemacht werden, es kommt zu keinem NAT Problemen. Der Port 443 wird standardmäßig für eine gesicherte Verbindung (HTTPS) zu einem Webserver verwendet. Diese VPN kann durch die meisten Unternehmens Firewalls eine Verbindung aufbauen.

 

Ablauf einer SSTP-Verbindung

  • der SSTP-Client öffnet eine TCP Verbindung zum SSTP-Server über den Port 443
  • der SSTP-Server sendet eine SSL Client-Hello Nachricht
  • der SSTP-Server sendet sein Serverzertifikat zum SSTP-Client
  • der SSTP-Client prüft das Computerzertifikat, entscheidet sich für ein Verschlüsselungsmethode und generiert einen SSL-Session Key und verschlüsselte ihn mit dem publik key (öffentlicher Schlüssel) des Servers
  • der SSTP-Client sendet den verschlüsselten SSL-Session Key zum SSTP-Server
  • der SSTP-Server entschlüsselt den Session Key mit dem privaten Schlüssel des Computerzertifikats. Ab jetzt ist die Kommunikation zwischen dem SSTP-Server und SSTP-Client verschlüsselt.
  • der SSTP-Client sendet eine HTTP über SSL request message zum SSTP-Server
  • der SSTP-Client handelt einen SSTP Tunnel mit dem SSTP-Server aus
  • der SSTP-Client handelt eine PPP Verbindung mit dem SSTP-Server aus. Diese Verhandlung beinhaltet die Authentifizierung der Benutzer-Credentials gegen ein PPP-Geheimnis sowie die Konfiguration der Einstellungen für den IPv4 oder IPv6 Datenverkehr
  • der SSTP-Client fängt an den IPv4 / IPv6 Datenverkehr über den PPP-Verbindung zu senden

 

Schritt 0

Bevor wir mit der Konfiguration des Mikrotik Routers beginnen, wird empfohlen einen dynamischen DNS zu erstellen (DynDNS), sofern man keine statische IP-Adresse zur Verfügung hat. Im Beispiel wird mit einer festen IP-Adresse gearbeitet. Daher wird dann auch eine IP-Adresse ins das Zertifikat eingetragen. Es ist wichtig, das der Common Name (CN) des Zertifikats der CA mit der IP-Adresse/DynDNS Eintrag identisch ist. Sonst erscheint auf dem Client eine Fehlermeldung, dass der Zertifkatsname nicht mit dem Verbindungsnamen übereinstimmt, es wird keine SSTP-Verbindung aufgebaut.

 

Zertifikate

Im Menü gelangen wir über System > Certificates zu den Zertifikaten. Hier erstellen wir die Zertifikate und die CA.

Certificates

 

 

Mit dem + Symbol öffnen wir den Dialog für ein neues Zertifikat. Jetzt müssen die einzelnen Felder für die CA befüllt werden.

CA Certificate

Da die CA nicht öffentlich zugänglich sein muss und diese dafür verwendet wird andere Zertifikate zu signieren, kann und sollte Sie auch eine lange Gültigkeit (Days Valid) besitzen (Im Beispiel sind das 10 Jahre). Der CN ist bei diesem Zertifikat nicht wichtig. Es ist außerdem gut wenn dem CA Schlüssel (export) ein Kennwort gegeben wird. Wenn die Schlüsselgröße so hoch gewählt wird wie im Beispiel, ist es beim unserem Routerboard (2011UiAS-2HnD) dazu gekommen dass das Signieren fehl geschlagen ist. Eine Lösung für das Problem ist es den Router neu zu starten und danach direkt das betroffene Zertifikat zu signieren.

 

Unter dem Reiter Key Usage müssen nur die beiden Felder crl sign und key cert. sign ausgewählt sein.

CA Certificate usage

 

 

Als nächstes wird das Serverzertifikat erstellt. Wir können beim soeben erstellten Zertifikat mit Copy ein neues Zertifikat, mit den selben Einstellungen als Default werte, generieren.

Copy Certificate

 

Die Einstellungen sind dann angepasst worden. Wichtig an dieser Stelle ist der Common Name (CN)! Wenn man keine Feste IP-Adresse besitzt sollte man dazu übergehen, eine Dynamischen DNS Eintrag zu verwenden. Dabei handelt es sich um einen Dienst der je nach eingestelltem Intervall (oder bei IP-Adresswechsel) die aktuelle IP-Adresse zum DNS Namen einträgt.

Server Certificate

 

 

Außerdem müssen beim Server-Zertifikat unter dem Reiter Key Usage alle Felder abgewählt werden.

Server Certificate usage

Nach dem das SSTP-Server Zertifikat erstellt wurde (der Dialog geschlossen), öffnen wir es erneut und wählen alle neu markierten Felder unter dem Reiter Key Usage ab.

 

 

Jetzt wird das self-signed Zertifikat der CA unterschrieben. Dazu wird das Zertifikat für die CA geöffnet und signiert.

sign CA Certificate

 

Nach dem das Certifikat signiert wurde sind die meisten, vorher definierten Felder, ausgegraut. Das Zertifikat kann dann nicht mehr verändert werden. Wenn alles geklappt hat, erscheint auf der Zertifikate Konsole, ein KAT (Private Key, Authority, Trusted) bei der CA.

Signed CA

 

 

Jetzt wo wir eine CA erstellt haben, können wir die Computerzertifikate (Server + Client) signieren. Wie wählen das beim Serverzertifikat die zuvor erstellte CA aus.

Nach dem das Serverzertifikat signiert wurde steht in der Zertifikate Konsole neben dem Serverzertifikat ein
KI (Private Key, Issued).

 

SSTP-Server

Alle erforderlichen Zertifikate wurden in diesem Szenario erstellt. Jetzt kann der SSTP-Server gestartet werden (PPP > Interface). Dabei kann der Port auch verändert werden, im besten Fall bleibt der Port aber auf 443 eingestellt. Bei Default Profile kann auch default-encrypthion gewählt werden, für eine klare Linie haben wir aber ein Profil für die SSTP Benutzer angelegt (Das erstellen eines Profiles wurde auch schon im Artikel L2TP/IPsec behandelt). Unter Certificate muss das SSTP-Server Zertifikat ausgwählt sein.

Enable SSTP-Server

Wie man sehen kann muss auch Verify Client Certificate abgewählt werden. Diese Funktion wird nur von MirkoTik an dieser Stelle unterstützt. Der Windows Client kommt damit, auch unter Windows 10, leider nicht zurecht.

 

 

Bevor ein neuer SSTP-Benutzer erstellt wird, richten wir noch ein Profil für SSTP-Benutzer ein, das wir wie folgt
konfigurieren können.

STP-Profile

 

Auf dem Reiter Protocols werden noch folgende Einstellungen ausgewählt. Dabei wird bei Encryption bewusst
required ausgewählt.

SSTP-Profile

 

Jetzt wird unter dem Reiter Secrets ein SSTP-Benutzer angelegt, der sich mit seinen Credentials gegen den
SSTP-Server authentifizieren kann.

 

 

Damit der SSTP-Server auch von außerhalb (Internet) erreichbar ist, muss noch eine Firewall Regel erstellt werden. Diese muss oberhalb der drop-Regel angeordnet werden (rote Linie).

Firewall

 

Im nächsten Schritt muss der Client-Computer (hier ein Windows 10 Pro Client) der CA vertrauen. Dafür wird das
Zertifikat der CA exportiert.

Zum Export geben wir ein sicheres Kennwort ein (Am besten im Passwort-Safe speichern, damit man es auch nach
Monaten noch weiß
).

 

 

Der Export Dialog wird mit Export abgeschlossen. Jetzt kann die Datei *CA.rt aus dem File-Explorer heraus, kopiert werden
(Es klappt die Datei mit der linken Maustaste zu markieren und dann auf den lokalen Desktop zu ziehen).

CA Certificate File

 

 

Mit einem Rechtsklick auf das Zertifikat, wird dann aus dem Kontextmenü, Zertifikat installieren gewählt.

Install CA Certificate

 

Das Zertifikat wird in den Zertifikatsspeicher für den lokalen Computer installiert.

 

Im nächsten Schritt wird das CA-Zertifikat, in den Speicher für die Vertrauenswürdige Stammzertifizierungsstellen (Trusted Root Certification Authorities), hinterlegt.

 

Mit dem letzten Schritt sollte der Client-Computer jetzt der CA vertrauen. Ob das Zertifikat der CA richtig hinterlegt wurde können wir uns, mit Windows + R und der Kommando certlm.msc, anzeigen lassen. Der Name für das Zertifikat ist der selbe, den wir beim erstellen der CA unter Common Name eingetragen haben.

Check CA Certificate

 

 

Windows 10 Client

Als letzten Schritt muss jetzt eine SSTP-VPN-Verbindung auf dem Client-Computer eingerichtet werden. Zu den Einstellungen gelangt man sehr schnell wenn man in der Windows Suche VPN eintippt und dann Virtuelle Private Netzwerke (VPNs) ändern auswählt. Fügt man jetzt eine neue VPN-Verbindung hinzu in der man die zuvor gemachten Einstellungen einträgt.

Windows VPN connection

 

 

VPN-Verbindung

Ist die VPN-Verbindung erfolgreich aufgebaut worden, kann man das auch unter dem Reiter Active Connections sehen (PPP > Active Connections).

Active Connections

 

Die häufigsten Verbindungsprobleme entstehen dadurch, dass der Common Name (CN) der CA nicht richtig eingetragen wurde.

 

 

Alle Angaben sind ohne Gewähr, die Veränderung Ihrer Systeme erfolgt auf eigene Gefahr.

0 Kommentare

Dein Kommentar

An Diskussion beteiligen?
Hinterlasse uns Deinen Kommentar!

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.