Von Windows 10 zu Azure-VMs über Point-2-Site-VPN verbinden


    Tags: , ,

    VPN-TeaserEin virtuelles Netzwerk in Azure kann auf die Cloud beschränkt bleiben, muss also keine Route zum öffent­lichen Internet haben. So können Sie Server in der Cloud platzieren, ohne dass diese aus dem Inter­net erreich­bar sind. Um sich mit ihnen zu ver­binden, bietet Azure den ver­walteten Dienst Gate­way für virtuelle Netzwerke.

    Dieser Service erlaubt es, sehr komfortabel IPSec-basierende Site2Site- und Client2Site-VPNs zu realisieren. Die Standort­vernetzung ist für Unter­nehmen interessant, die über ein öffentlich zugängliches Netzwerk und ein vom Site2Site-Dienst unterstütztes VPN-Gerät von Arista, Checkpoint, Cisco, Fortinet, Juniper, Sophos oder Zyxel verfügen.

    In kleineren Umgebungen können Sie mit dem VPN-Dienst von Microsoft aber sehr einfach ein SSL-basiertes P2S-VPN mit Hilfe von Zertifikaten und Microsofts SSTP-Protokoll herstellen.

    VNET in Azure

    Zunächst erstellen wir in Azure ein virtuelles Netzwerk mit beliebigen Namen (in diesem Beispiel "ditdevpnvnet") und einem frei wählbaren Adressbereich zwischen /16 und /28. Wir verwenden hier 10.3.0.0/16 für das VNET.

    Dieses unterteilen wir in drei Subnetze FrontEnd (für aus dem Internet erreichbare virtuelle Server), BackEnd (für die virtuellen Server, die nur via VPN erreichbar sein sollen) und GatewaySubnet für das virtuelle Gateway-Gerät, quasi unsere DMZ.

    Die beiden Erstgenannten können Sie entweder direkt beim Anlegen des VNET definieren oder später in der Konsole für den Dienst Virtuelle Netzwerke im Menü Subnetz mit +Subetz manuell anlegen.

    Subnetze lassen sich gleich mit dem VNET oder nachträglich über die Konsole erstellen.

    Dem Gatewaysubnetz kommt eine besondere Bedeutung zu. Es nimmt Routing-technisch das virtuelle Gateway von Azure auf, welches ja ein verwalteter Dienst ist. Nachdem die Routen des Default-Gateways für das betreffende (assoziierte) Subnetz angepasst werden müssten, hat Microsoft zu diesem Zweck die Funktion +Gatewaysubnetz in das Menü Subnetze eingebaut.

    Sie erzeugt automatisch ein passendes Subnetz einschließlich konfigurierter System-Routen, ohne dass Sie als Anwender dazu Routing-Tabellen oder Netzwerk Security Groups erstellen bzw. anfassen müssen. Fügen Sie einfach das Gateway-Subnetz mit einem entsprechend kleinen Host-Anteil (wir verwenden /27) hinzu. Das reicht immer noch für 32 IP-Adressen.

    Gateway für virtuelle Netzwerke erstellen

    Anschließend können wir im Azure Marketplace nach "Gateways für virtuelle Netzwerke" suchen und ein solches über den gleichnamigen Befehl hinzufügen. Im anschließenden Dialog bedarf es nicht vieler Angaben.

    Wie üblich wählt man zunächst das zu verwendende Abonnement und dann die gewünschte Ressource-Gruppe aus, die auch das oben erstellte Subnetz enthält bzw. die in der gleichen Region ist wie die Subnetze.

    Dies ergibt sich hier aber indirekt, wenn Sie die passende Region und dann weiter unten das gewünschte virtuelle Netzwerk festlegen. Dann weist man dem Gerät einen Namen zu, wählt als Gatewaytyp den Eintrag VPN und als VPN-Typ den Eintrag Routenbasiert (beide sind der Default).

    Der Dialog zum Erstellen von virtuellen Netzwerken fragt alle erforderlichen Informationen ab.

    Schließlich benötigen Sie noch eine SKU. Wir verwenden für diese Demo VpnGw1 mit Generation1 als preiswerteste Variante für Routen-basierende Typen. Diese schlägt in Deutschland (Frankfurt) mit 0,1603 Euro pro Stunde für den generellen Betrieb und 0,0009 Euro pro Stunde mit jedem aktiv genutzten VPN-Tunnel (Verbindung) zu Buche. Die maximal erzielbare Bandbreite ist dann 650 Mbit/s. Alle bisher erstellen Netzwerk-Ressourcen kosten dagegen nichts.

    Bei Virtuelles Netzwerk wählt man das oben erstellte Netzwerk aus. Bei Öffentliche IP-Adresse aktivieren Sie Neu erstellen, wählen einen passenden Namen (Alias) für die öffentliche IP-Adresse und belassen die übrigen Werte auf den Default-Werten.

    Stimmen alle Angaben, dann klicken Sie auf Überprüfen und Erstellen. Achtung: Der Vorgang kann durchaus bis zu 15 Minuten dauern. Bei Azure können Sie die Template-basierende Bereitstellung immer verfolgen, indem Sie im Portal rechts oben auf die Glocke klicken.

    Das Virtual Network Gateway ist damit wie fast jeder andere Dienst in Azure schnell bereitgestellt. Spannender wird es erst bei der Konfiguration. Bevor Sie dies allerdings tun können, müssen Sie die für ein Client-to-Site-VPN benötigten SSL-Zertifikate generieren.

    Erzeugen der Zertifikate

    Azure nutzt bei P2S-VPNs Zertifikate für die Authentifizierung der Clients, die eine Verbindung mit einem VNET über eine Point-to-Site-VPN-Verbindung herstellen möchten. Dazu müssen Sie allerdings den öffentlichen Schlüssel des Stamm­zertifikats, welches das Client-Zertifikat ausgestellt hat, in Form einer CER-Datei nach Azure hochladen.

    Dadurch wird das entsprechende Stammzertifikat von Azure als vertrauenswürdig für die P2S-Verbindung mit dem virtuellen Netzwerk eingestuft. Das Client-Zertifikat generieren Sie dann aus dem vertrauens­würdigen Stammzertifikat und installieren es auf dem betreffenden Client-PC.

    Wenn Sie wie im folgenden Beispiel ein selbstsigniertes Stammzertifikat auf einem Windows-10-PC erzeugen, dann wird das Client-Zertifikat auf diesem auch automatisch installiert. In diesem Fall müssen Sie es nicht erst exportieren, um es auf dem betreffenden Client zu importieren.

    Der folgende Befehl generiert ein selbstsigniertes Stammzertifikat mit dem Namen P2SRootCert. Dieses wird dabei automatisch in Cert:\CurrentUser\My installiert. Dazu geben Sie Folgendes ein:

    $cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature `
    -Subject "CN=P2SRootCert" -KeyExportPolicy Exportable -HashAlgorithm sha256 `
    -KeyLength 2048 -CertStoreLocation "Cert:\CurrentUser\My" `
    -KeyUsageProperty Sign -KeyUsage CertSign

    Danach können Sie wie folgt ein Client(Child)-Zertifikat erzeugen:

    New-SelfSignedCertificate -Type Custom -DnsName P2SChildCert -KeySpec Signature `
    -Subject "CN=P2SChildCert" -KeyExportPolicy Exportable -HashAlgorithm sha256 `
    -KeyLength 2048 -CertStoreLocation "Cert:\CurrentUser\My" -Signer $cert `
    -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2")

    Sehen können Sie dann beide Zertifikate im MMC-Snap-in für Zertifikate (certmgr.msc). Navigieren Sie dort zum Zweig Eigene Zertifikate => Zertifikate.

    Das Root- und Child-Zertifikat kann man nach erfolgreicher Ausstellung in certmgr.msc einsehen.

    Jetzt müssen Sie nur noch den öffentlichen-Schlüssel des Stamm­zertifikats (hier "PSRootCert") exportieren. Dazu führen Sie aus dessen Kontextmenü Alle Aufgaben => Exportieren aus.

    Öffentlichen Schlüssel des Stammzertifikats aus certmgr.msc in eine Datei exportieren

    Klicken Sie dort auf Weiter und dann unbedingt auf Nein, privaten Schlüssel nicht exportieren. Anschließend wählen Sie im Assistenten den Eintrag Base-64-codiert X.500.

    Stammzertifikat mit der Option Base-64-codiert X.509 exportieren

    Wählen Sie dann einen gewünschten Speicherort und legen den Schlüssel unter einem beliebigen Namen ab, zum Beispiel rootcertificate.cer.

    Virtual Network Gateway konfigurieren

    Wechseln Sie im Azure Portal im oben erstellten Gateway zum Abschnitt Einstellungen => Punkt-zu-Standort-Konfiguration und klicken auf Jetzt konfigurieren. Nun geben Sie bei Adresspool einen Bereich ein, aus dem die anfragenden Clients mit einer IP-Adresse versorgt werden. Dieser muss und sollte auch nichts mit dem IP-Adressbereich eines der Subnetze zu tun haben.

    Wir wählen 172.16.30.0/24. Jetzt müssen wir im unteren Abschnitt nur noch den Namen des Stamm­zertifikates angeben und dann den Inhalt des vorhin exportierten Zertifikats in das Feld Daten des öffentlichen Zertifikats kopieren. Im Menü Tunneltyp wählen Sie im Falle eines Windows-Clients am besten SSTP (SSL), weil das die Installation samt Konfiguration des VPN-Clients extrem vereinfacht.

    Exportierten öffentlichen Schlüssel des Stammzertifikats nach Azure hochladen

    Klicken Sie nun auf Speichern und danach rechts oben auf VPN-Client herunterladen.

    Je nach gewähltem Tunneltyp müssen Sie dann hier eine Client-Software, beispielsweise Open-VPN einschließlich Konfiguration, herunterladen oder nur die Konfiguration, wenn Sie eine eigene Client-Software verwenden. Bei SSTP genügt es, das heruntergeladene ZIP-Archiv mit dem Namen des Gateways (hier ditdevpngw1.zip) in einem beliebigen Ordner abzuspeichern und zu entpacken.

    Im Archiv findet sich ein Unterordner für jede Plattform. Hier wechseln Sie in der Regel nach WindowsAMD64. Darin findet sich eine Datei namens VpnClientSetupAmd64.exe, die Sie einfach nur doppelklicken müssen.

    Öffnet sich dabei der Dialog Der Computer wurde durch Windows geschützt, dann schließen Sie das Fenster wieder. Danach finden Sie bei Windows 10 in der App Einstellungen unter Netzwerk und Internet => VPN eine neue VPN-Verbindung mit dem von Ihnen gewählten Namen.

    Das Ausführen von VpnClientSetupAmd64.exe richtet eine neue VPN-Verbindung ein.

    Klicken Sie diese an und dann auf Verbinden, dann öffnet sich der Windows Azure Virtual Client. Wählen Sie auch hier wieder Verbinden, um eine SSL-gesicherte Verbindung via SSTP in Ihr Azure-VNET aufzubauen.

    Verbindung über den Windows Azure Virtual Client aufbauen

    Zur Kontrolle geben Sie in der CMD ipconfig ein. Sie werden dann feststellen, dass der Windows-PC einen PPP-Adapter mit einer IP-Adresse aus dem oben gewählten Adresspool erhalten hat.

    Erfolgreichen Aufbau der VPN-Verbindung mit ipconfig verifizieren

    Hätten Sie nun virtuelle Maschinen in ihrem Azure-FrontEnd- oder BackEnd-Subnetz, könnten Sie diese direkt über ihre jeweilige private IP-Adresse erreichen.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Thomas Drilling
    Thomas Drilling arbeitet seit mehr als 20 Jahren selb­ständig als Redakteur und Autor für viele ehe­malige und aktuelle IT-Magazine sowie Blogs. Thomas ist zudem Buch­autor und IT-Consultant. Seit 5 Jahren ist Thomas neben seiner journa­listischen Tätig­keit haupt­beruflicher, selb­ständiger IT-Trainer für VMware und Microsoft.

    Seine Themen­schwer­punkte sind Virtua­lisierung und Cloud Com­puting, speziell VMware, Amazon Web Services, Google Cloud und Microsoft Azure. Thomas ist zerti­fi­zierter VMware Professional, Advanced Professional und wurde von VMware in den Jahren 2016, 2017, 2018, 2019 und 2020 mit dem Blogger-Status vExpert ausge­zeichnet.

    Thomas ist außerdem zertifi­zierter AWS Solu­tions Archi­tect, Sysops Engineer und Devops Engineer sowie Microsoft Certified Azure Admini­strator.

    Thomas führt aktuell jeden zwei­ten Mon­tag einen 4-tägigen Grund­lagenkurs in Cloud Computing mit AWS via Zoom-Meeting durch. Weitere Infor­mationen und Anmel­dung über sein AWS-Blog.

    Ähnliche Beiträge

    Weitere Links