Tags: Azure, VPN, Zertifikate
Ein virtuelles Netzwerk in Azure kann auf die Cloud beschränkt bleiben, muss also keine Route zum öffentlichen Internet haben. So können Sie Server in der Cloud platzieren, ohne dass diese aus dem Internet erreichbar sind. Um sich mit ihnen zu verbinden, bietet Azure den verwalteten Dienst Gateway für virtuelle Netzwerke.
Dieser Service erlaubt es, sehr komfortabel IPSec-basierende Site2Site- und Client2Site-VPNs zu realisieren. Die Standortvernetzung ist für Unternehmen 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.
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).
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 Stammzertifikats, 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 vertrauenswü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.
Jetzt müssen Sie nur noch den öffentlichen-Schlüssel des Stammzertifikats (hier "PSRootCert") exportieren. Dazu führen Sie aus dessen Kontextmenü Alle Aufgaben => Exportieren aus.
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.
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 Stammzertifikates 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.
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.
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.
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.
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
Seine Themenschwerpunkte sind Virtualisierung und Cloud Computing, speziell VMware, Amazon Web Services, Google Cloud und Microsoft Azure. Thomas ist zertifizierter VMware Professional, Advanced Professional und wurde von VMware in den Jahren 2016, 2017, 2018, 2019 und 2020 mit dem Blogger-Status vExpert ausgezeichnet.
Thomas ist außerdem zertifizierter AWS Solutions Architect, Sysops Engineer und Devops Engineer sowie Microsoft Certified Azure Administrator.
Thomas führt aktuell jeden zweiten Montag einen 4-tägigen Grundlagenkurs in Cloud Computing mit AWS via Zoom-Meeting durch. Weitere Informationen und Anmeldung über sein AWS-Blog.
Ähnliche Beiträge
- Mit Zertifikaten an Azure Active Directory authentifizieren
- Veeam PN: Kostenloses VPN-Gateway zu Microsoft Azure
- Azure Stack HCI Single-Node-Cluster installieren
- Mit der Authenticator App an M365 oder Azure AD ohne Kennwort anmelden
- Multifaktor-Authentifizierung (MFA) für Azure und Office 365 konfigurieren