Konfigurieren von Point-to-Site-VPN-Clients: Zertifikatauthentifizierung – Linux

In diesem Artikel erfahren Sie, wie Sie auf einem Linux-Client mithilfe von VPN Gateway P2S (Point-to-Site) und Zertifikatauthentifizierung eine Verbindung mit Ihrem virtuellen Azure-Netzwerk (VNet) herstellen. Dieser Artikel enthält mehrere Schritte abhängig vom für Ihre P2S-Konfiguration ausgewählten Tunneltyp, vom Betriebssystem und vom VPN-Client, der für die Verbindungsherstellung verwendet wird.

Vorbereitung

Stellen Sie vor Beginn sicher, dass Sie sich im richtigen Artikel befinden. In der folgenden Tabelle sind die Konfigurationsartikel aufgeführt, die für Azure VPN Gateway P2S-VPN-Clients verfügbar sind. Die Schritte unterscheiden sich je nach Authentifizierungstyp, Tunneltyp und Clientbetriebssystem.

Authentifizierung Tunneltyp Erstellen von Konfigurationsdateien Konfigurieren des VPN-Clients
Azure-Zertifikat IKEv2, SSTP Windows Nativer VPN-Client
Azure-Zertifikat OpenVPN Windows - OpenVPN-Client
- Azure VPN Client
Azure-Zertifikat IKEv2, OpenVPN macOS-iOS macOS-iOS
Azure-Zertifikat IKEv2, OpenVPN Linux Linux
Microsoft Entra ID OpenVPN (SSL) Windows Windows
Microsoft Entra ID OpenVPN (SSL) macOS macOS
RADIUS – Zertifikat - Artikel Artikel
RADIUS – Kennwort - Artikel Artikel
RADIUS – andere Methoden - Artikel Artikel

Wichtig

Ab dem 1. Juli 2018 wird die Unterstützung für TLS 1.0 und 1.1 vom Azure-VPN-Gateway entfernt. Das VPN-Gateway unterstützt dann nur noch TLS 1.2. Nur Point-to-Site-Verbindungen sind betroffen, Site-to-Site-Verbindungen sind nicht betroffen. Wenn Sie TLS für Point-to-Site-VPNs auf Clients unter Windows 10 oder höher verwenden, müssen Sie keine Maßnahmen ergreifen. Bei Verwendung von TLS für Point-to-Site-Verbindungen auf Windows 7- und Windows 8-Clients finden Sie die Updateanweisungen unter VPN-Gateway – häufig gestellte Fragen.

Generieren von Zertifikaten

Zur Zertifikatauthentifizierung muss auf jedem Clientcomputer ein Clientzertifikat installiert sein. Das zu verwendende Clientzertifikat muss mit dem privaten Schlüssel exportiert werden und alle Zertifikate im Zertifizierungspfad enthalten. Darüber hinaus müssen Sie für einige Konfigurationen auch Stammzertifikatinformationen installieren.

Informationen zur Verwendung von Zertifikaten finden Sie unter Generieren und Exportieren von Zertifikaten für Point-to-Site-Verbindungen mithilfe von PowerShell.

Generieren der VPN-Clientkonfigurationsdateien

Alle erforderlichen Konfigurationseinstellungen für die VPN-Clients sind in einer ZIP-Datei für die VPN-Clientprofilkonfiguration enthalten. Die von Ihnen generierten Konfigurationsdateien für VPN-Clientprofile gelten speziell für die P2S-VPN-Gatewaykonfiguration für das virtuelle Netzwerk. Wenn nach dem Generieren der Dateien Änderungen an der P2S-VPN-Konfiguration vorgenommen werden, z. B. Änderungen am VPN-Protokolltyp oder am Authentifizierungstyp, müssen Sie neue Konfigurationsdateien für die VPN-Clientprofile generieren und die neue Konfiguration auf alle VPN-Clients anwenden, mit denen Sie eine Verbindung herstellen möchten. Weitere Informationen zu P2S-Verbindungen finden Sie unter Informationen zu Point-to-Site-VPN.

So generieren Sie Konfigurationsdateien im Azure-Portal

  1. Navigieren Sie im Azure-Portal zum VNET-Gateway für das virtuelle Netzwerk, mit dem Sie eine Verbindung herstellen möchten.

  2. Wählen Sie auf der Seite des Gateways für virtuelle Netzwerke die Option Point-to-Site-Konfiguration aus, um die Seite „Point-to-Site-Konfiguration“ zu öffnen.

  3. Wählen Sie oben auf der Seite Point-to-Site-Konfiguration die Option VPN-Client herunterladen aus. Dadurch wird keine VPN-Clientsoftware heruntergeladen, sondern das Konfigurationspaket generiert, das zum Konfigurieren von VPN-Clients verwendet wird. Es dauert einige Minuten, bis das Clientkonfigurationspaket generiert wird. Während dieser Zeit sehen Sie möglicherweise keine Anzeichen, bis das Paket generiert ist.

    Screenshot: Seite „Point-to-Site-Konfiguration“

  4. Sobald das Konfigurationspaket generiert ist, zeigt Ihr Browser an, dass eine ZIP-Datei für die Clientkonfiguration verfügbar ist. Sie hat denselben Namen wie Ihr Gateway.

  5. Entzippen Sie die Datei, um die Ordner anzuzeigen. Sie verwenden einige oder alle dieser Dateien, um Ihren VPN-Client zu konfigurieren. Die generierten Dateien entsprechen den Authentifizierungs- und Tunneltypeinstellungen, die Sie auf dem P2S-Server konfiguriert haben.

Konfigurieren Sie als Nächstes den VPN-Client. Wählen Sie dazu eine der folgenden Anleitungen aus:

IKEv2 – strongSwan-Schritte

Installieren von strongSwan

Die folgende Konfiguration wurde beim Angeben von Befehlen verwendet:

  • Computer: Ubuntu Server 18.04
  • Abhängigkeiten: strongSwan

Verwenden Sie die folgenden Befehle, um die erforderliche strongSwan-Konfiguration zu installieren:

sudo apt-get update
sudo apt-get upgrade
sudo apt install strongswan
sudo apt install strongswan-pki
sudo apt install libstrongswan-extra-plugins
sudo apt install libtss2-tcti-tabrmd0

Installieren von Zertifikaten

Ein Clientzertifikat ist für die Authentifizierung erforderlich, wenn Sie die Azure-Zertifikatauthentifizierung verwenden. Auf jedem Clientcomputer muss ein Clientzertifikat installiert werden. Das exportierte Clientzertifikat muss mit dem privaten Schlüssel exportiert werden und alle Zertifikate im Zertifizierungspfad enthalten. Vergewissern Sie sich, dass das entsprechende Clientzertifikat auf dem Clientcomputer installiert ist, bevor Sie mit dem nächsten Abschnitt fortfahren.

Informationen zu Clientzertifikaten finden Sie unter Generieren von Zertifikaten – Linux.

Anzeigen von VPN-Clientprofildateien

Navigieren Sie zu den heruntergeladenen VPN-Clientprofilkonfigurationsdateien. Alle Informationen, die Sie für die Konfiguration benötigen, finden Sie im Ordner Allgemein. Azure stellt keine mobileconfig-Datei für diese Konfiguration bereit.

Wenn der Ordner „Generic“ nicht angezeigt wird, überprüfen Sie die folgenden Elemente, und generieren Sie die ZIP-Datei anschließend erneut.

  • Überprüfen Sie den Tunneltyp für Ihre Konfiguration. Wahrscheinlich wurde IKEv2 nicht als Tunneltyp ausgewählt.
  • Vergewissern Sie sich auf dem VPN-Gateway, dass die SKU nicht „Basic“ lautet. Die Basic-SKU für VPN Gateway unterstützt IKEv2 nicht. Wählen Sie dann IKEv2 aus, und generieren Sie die ZIP-Datei erneut, um den Ordner „Allgemein“ zu erhalten.

Der Ordner „Allgemein“ enthält die folgenden Dateien:

  • VpnSettings.xml. Diese Datei enthält wichtige Einstellungen wie Serveradresse und Tunneltyp.
  • VpnServerRoot.cer: Diese Datei enthält das Stammzertifikat, das zum Überprüfen des Azure-VPN-Gateways während der P2S-Verbindungseinrichtung erforderlich ist.

Fahren Sie nach dem Anzeigen der Dateien mit den Schritten fort, die Sie verwenden möchten:

Schritte auf der Benutzeroberfläche für strongSwan

In diesem Abschnitt wird die Konfiguration über die grafische Benutzeroberfläche von strongSwan beschrieben. Die folgenden Anweisungen wurden für Ubuntu 18.0.4 erstellt. Ubuntu 16.0.10 unterstützt die strongSwan-GUI nicht. Wenn Sie Ubuntu 16.0.10 nutzen möchten, müssen Sie die Befehlszeile verwenden. Die folgenden Beispiele entsprechen abhängig von Ihrer Version von Linux und strongSwan möglicherweise nicht den Bildschirmen, die Ihnen angezeigt werden.

  1. Öffnen Sie das Terminal, und installieren Sie strongSwan und den Netzwerk-Manager, indem Sie den Befehl im Beispiel ausführen.

    sudo apt install network-manager-strongswan
    
  2. Wählen Sie Einstellungen aus, und wählen Sie dann Netzwerk aus. Erstellen Sie über die Schaltfläche + eine neue Verbindung.

    Screenshot der Seite mit Netzwerkverbindungen

  3. Wählen Sie im Dropdownmenü IPsec/IKEv2 (strongSwan) aus, und doppelklicken Sie darauf.

    Screenshot der Seite zum Hinzufügen eines VPN

  4. Fügen Sie auf der Seite VPN hinzufügen einen Namen für die VPN-Verbindung hinzu.

    Screenshot der Auswahl eines Verbindungstyps

  5. Öffnen Sie die Datei VpnSettings.xml, die sich im Ordner Generic der heruntergeladenen VPN-Clientprofilkonfigurationsdateien befindet. Suchen Sie das Tag VpnServer, und kopieren Sie den Namen, der mit „azuregateway“ beginnt und mit „cloudapp.net“ endet.

    Screenshot des Datenkopiervorgangs

  6. Fügen Sie den Namen im Feld Adresse Ihrer neuen VPN-Verbindung im Abschnitt Gateway ein. Wählen Sie anschließend das Ordnersymbol am Ende des Felds Zertifikat, navigieren Sie zum Ordner Allgemein, und wählen Sie dort die Datei VpnServerRoot.

  7. Wählen Sie im Abschnitt Client der Verbindung für Authentifizierung die Option Certificate/private key aus. Wählen Sie für Zertifikat und Privater Schlüssel das Zertifikat und den privaten Schlüssel aus, die zuvor erstellt wurden. Wählen Sie in Optionen die Option Innere IP-Adresse anfordern aus. Klicken Sie anschließend auf Hinzufügen.

    Screenshot der Option „Innere IP-Adresse anfordern“

  8. Aktivieren Sie die Verbindung (Ein).

    Screenshot des Kopiervorgangs

CLI-Schritte für strongSwan

In diesem Abschnitt wird die Konfiguration mit der strongSwan-Befehlszeilenschnittstelle beschrieben.

  1. Kopieren oder verschieben Sie die Datei VpnServerRoot.cer aus dem Ordner Generic in der VPN-Clientprofilkonfigurationsdatei nach /etc/ipsec.d/cacerts.

  2. Kopieren oder verschieben Sie die von Ihnen generierten Dateien entsprechend in /etc/ipsec.d/certs und /etc/ipsec.d/private/. Diese Dateien sind das Clientzertifikat und der private Schlüssel, sie müssen sich in ihren entsprechenden Verzeichnissen befinden. Verwenden Sie die folgenden Befehle:

    sudo cp ${USERNAME}Cert.pem /etc/ipsec.d/certs/
    sudo cp ${USERNAME}Key.pem /etc/ipsec.d/private/
    sudo chmod -R go-rwx /etc/ipsec.d/private /etc/ipsec.d/certs
    
  3. Führen Sie den folgenden Befehl aus, um Ihren Hostnamen zu ermitteln. Dieser Wert wird im nächsten Schritt verwendet.

    hostnamectl --static
    
  4. Öffnen Sie Datei VpnSettings.xml, und kopieren Sie den Wert <VpnServer>. Dieser Wert wird im nächsten Schritt verwendet.

  5. Passen Sie die Werte im folgenden Beispiel an, und fügen Sie das Beispiel dann in die Konfiguration /etc/ipsec.conf ein.

    conn azure
          keyexchange=ikev2
          type=tunnel
          leftfirewall=yes
          left=%any
          # Replace ${USERNAME}Cert.pem with the key filename inside /etc/ipsec.d/certs  directory. 
          leftcert=${USERNAME}Cert.pem
          leftauth=pubkey
          leftid=%client # use the hostname of your machine with % character prepended. Example: %client
          right= #Azure VPN gateway address. Example: azuregateway-xxx-xxx.vpn.azure.com
          rightid=% #Azure VPN gateway FQDN with % character prepended. Example: %azuregateway-xxx-xxx.vpn.azure.com
          rightsubnet=0.0.0.0/0
          leftsourceip=%config
          auto=add
          esp=aes256gcm16
    
  6. Fügen Sie /etc/ipsec.secrets die Geheimniswerte hinzu.

    Der Name der PEM-Datei muss mit dem übereinstimmen, den Sie zuvor als Clientschlüsseldatei verwendet haben.

    : RSA ${USERNAME}Key.pem  # Replace ${USERNAME}Key.pem with the key filename inside /etc/ipsec.d/private directory. 
    
  7. Führen Sie abschließend die folgenden Befehle aus:

    sudo ipsec restart
    sudo ipsec up azure
    

Schritte für OpenVPN

Dieser Abschnitt unterstützt Sie beim Konfigurieren von Linux-Clients für die Zertifikatauthentifizierung, die einen OpenVPN-Tunnel verwendet. Für die Verbindung mit Azure laden Sie den OpenVPN-Client herunter und konfigurieren das Verbindungsprofil.

Hinweis

OpenVPN-Client Version 2.6 wird noch nicht unterstützt.

  1. Starten Sie eine neue Terminalsitzung. Sie können eine neue Sitzung öffnen, indem Sie STRG+ALT+T gleichzeitig drücken.

  2. Geben Sie für die Installation der benötigten Komponenten den folgenden Befehl ein:

    sudo apt-get install openvpn
    sudo apt-get -y install network-manager-openvpn
    sudo service network-manager restart
    
  3. Wechseln Sie als Nächstes zum VPN-Clientprofilordner, und entzippen Sie die Dateien.

  4. Exportieren Sie das P2S-Clientzertifikat, das Sie erstellt und in Ihre P2S-Konfiguration auf dem Gateway hochgeladen haben. Informationen zu den Schritten finden Sie im Abschnitt zu VPN-Gateways für Point-to-Site-Verbindungen.

  5. Extrahieren Sie den privaten Schlüssel und den Base64-Fingerabdruck aus der PFX-Datei. Hierfür gibt es mehrere Möglichkeiten. Die Verwendung von OpenSSL auf Ihrem Computer ist eine Möglichkeit.

    openssl pkcs12 -in "filename.pfx" -nodes -out "profileinfo.txt"
    

    Die Datei profileinfo.txt enthält den privaten Schlüssel und den Fingerabdruck für die Zertifizierungsstelle sowie das Clientzertifikat. Verwenden Sie unbedingt den Fingerabdruck des Clientzertifikats.

  6. Öffnen Sie die Datei profileinfo.txt in einem Text-Editor. Um den Fingerabdruck des Clientzertifikats (untergeordnetes Zertifikat) zu erhalten, markieren Sie den Text einschließlich und zwischen „-----BEGIN CERTIFICATE-----“ und „-----END CERTIFICATE-----“ für das untergeordnete Zertifikat, und kopieren Sie ihn. Das untergeordnete Zertifikat finden Sie in der Zeile „subject=/“.

  7. Öffnen Sie die Datei vpnconfig.ovpn, und suchen Sie nach dem unten gezeigten Abschnitt. Ersetzen Sie den gesamten Text zwischen „cert“ und „/cert“.

    # P2S client certificate
    # please fill this field with a PEM formatted cert
    <cert>
    $CLIENTCERTIFICATE
    </cert>
    
  8. Öffnen Sie die Datei „profileinfo.txt“ in einem Text-Editor. Um den privaten Schlüssel zu erhalten, markieren Sie den Text einschließlich und zwischen „-----BEGIN PRIVATE KEY-----“ und „-----END PRIVATE KEY-----“, und kopieren Sie ihn.

  9. Öffnen Sie die Datei „vpnconfig.ovpn“ in einem Text-Editor, und suchen Sie nach diesem Abschnitt. Fügen Sie den privaten Schlüssel ein, indem Sie den gesamten Text zwischen „key“ und „/key“ ersetzen.

    # P2S client root certificate private key
    # please fill this field with a PEM formatted key
    <key>
    $PRIVATEKEY
    </key>
    
  10. Ändern Sie keine anderen Felder. Verwenden Sie die ausgefüllte Konfiguration in der Clienteingabe, um eine Verbindung mit dem VPN herzustellen.

    • Um über die Befehlszeile eine Verbindung herzustellen, geben Sie den folgenden Befehl ein:

      sudo openvpn --config <name and path of your VPN profile file>&
      
    • Um eine Verbindung über die Befehlszeile zu trennen, geben Sie den folgenden Befehl ein:

      sudo pkill openvpn
      
    • Um über die grafische Benutzeroberfläche eine Verbindung herzustellen, wechseln Sie zu „Systemeinstellungen“.

  11. Wählen Sie + aus, um eine neue VPN-Verbindung hinzuzufügen.

  12. Wählen Sie unter VPN hinzufügen den Befehl Aus Datei importieren... aus.

  13. Navigieren Sie zur Profildatei, und doppelklicken Sie darauf, oder wählen Sie Öffnen aus.

  14. Wählen Sie im Fenster VPN hinzufügen die Option Hinzufügen aus.

    Screenshot: „Aus Datei importieren“ auf der Seite „VPN hinzufügen“.

  15. Sie können eine Verbindung herstellen, indem Sie auf der Seite Netzwerkeinstellungen oder unter dem Netzwerksymbol auf der Taskleiste das VPN auf EIN festlegen.

Nächste Schritte

Kehren Sie für weitere Schritte zum ursprünglichen Point-to-Site-Artikel zurück, den Sie verwendet haben.