Freigeben über


Konfigurieren von strongSwan VPN für P2S-Zertifikatauthentifizierung IKEv2-Verbindungen – Linux

Dieser Artikel hilft Ihnen bei der Verbindung mit Ihrem virtuellen Azure-Netzwerk (VNet) mithilfe von VPN Gateway-Point-to-Site-VPN (P2S) und Zertifikatauthentifizierung von einem Ubuntu Linux-Client mit strongSwan.

Voraussetzungen

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 Clientbetriebssystem VPN-Client
Zertifikat
IKEv2, SSTP Windows Nativer VPN-Client
IKEv2 macOS Nativer VPN-Client
IKEv2 Linux strongSwan
OpenVPN Windows Azure VPN Client
OpenVPN-Clientversion 2.x
OpenVPN-Clientversion 3.x
OpenVPN macOS OpenVPN-Client
OpenVPN iOS OpenVPN-Client
OpenVPN Linux Azure VPN Client
OpenVPN-Client
Microsoft Entra ID
OpenVPN Windows Azure VPN Client
OpenVPN macOS Azure VPN Client
OpenVPN Linux Azure VPN Client

Voraussetzungen

In diesem Artikel wird davon ausgegangen, dass Sie bereits die folgenden Voraussetzungen erfüllt haben:

Verbindungsanforderungen

Zum Herstellen einer Verbindung mit Azure mithilfe des strongSwan-Clients und der Zertifikatauthentifizierung über den IKEv2-Tunneltyp erfordert jeder verbindungsbasierte Client die folgenden Elemente:

  • Jeder Client muss für die Verwendung von strongSwan konfiguriert werden.
  • Der Client muss die richtigen Zertifikate lokal installiert haben.

Workflow

Der Workflow für diesen Artikel lautet:

  1. Installieren von strongSwan.
  2. Zeigen Sie die Konfigurationsdateien des VPN-Clientprofils an, die im von Ihnen generierten VPN-Clientprofilkonfigurationspaket enthalten sind.
  3. Suchen Sie alle erforderlichen Clientzertifikate.
  4. Konfigurieren Sie strongSwan.
  5. Herstellen einer Verbindung zu Azure.

Informationen zu Zertifikaten

Für die 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.

Weitere Informationen zu Zertifikaten für Linux finden Sie in den folgenden Artikeln:

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

Anzeigen von Profilkonfigurationsdateien für den VPN-Client

Wenn Sie ein VPN-Clientprofilkonfigurationspaket generieren, sind alle erforderlichen Konfigurationseinstellungen für VPN-Clients in einer ZIP-Datei für die VPN-Clientprofilkonfiguration enthalten. Die 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, die Sie verbinden möchten.

Suchen und entzippen Sie das VPN-Clientprofilkonfigurationspaket, das Sie generiert und heruntergeladen haben. 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.

Konfigurieren des VPN-Clients

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

GUI-Schritte

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

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 die folgenden Befehle aus:

    sudo ipsec restart
    sudo ipsec up azure
    

Nächste Schritte

Weitere Schritte finden Sie im Artikel zum P2S Azure-Portal.