So richten Sie einen IKEv2-VPN-Server mit StrongSwan unter Ubuntu 22.04 ein

Einführung

A virtual private network, or VPN, allows you to securely encrypt traffic as it travels through untrusted networks, such as those at the coffee shop, a conference, or an airport.

Internet Key Exchange Version 2, oder IKEv2, ist ein Protokoll, das direktes IPSec-Tunneling zwischen dem Server und dem Client ermöglicht. In IKEv2-VPN-Implementierungen bietet IPSec die Verschlüsselung für den Netzwerkverkehr. IKEv2 wird nativ auf einigen Plattformen unterstützt (OS X 10.11+, iOS 9.1+ und Windows 10) ohne zusätzliche Anwendungen erforderlich, und es behandelt Client-Aussetzer recht reibungslos.

In diesem Tutorial werden Sie einen IKEv2-VPN-Server mit StrongSwan auf einem Ubuntu 22.04-Server einrichten. Sie erfahren dann, wie Sie sich damit mit Windows-, macOS-, Ubuntu-, iOS- und Android-Clients verbinden können.

Voraussetzungen

Um dieses Tutorial abzuschließen, benötigen Sie:

Schritt 1 — Installation von StrongSwan

Zuerst installieren Sie StrongSwan, einen Open-Source-IPSec-Daemon, den Sie als Ihren VPN-Server konfigurieren werden. Sie werden auch die öffentliche Schlüsselinfrastruktur (PKI) installieren, damit Sie eine Zertifizierungsstelle (CA) erstellen können, um Anmeldeinformationen für Ihre Infrastruktur bereitzustellen.

Beginnen Sie mit dem Aktualisieren des lokalen Paketcaches:

  1. sudo apt update

Dann installieren Sie die Software, indem Sie Folgendes eingeben:

  1. sudo apt install strongswan strongswan-pki libcharon-extra-plugins libcharon-extauth-plugins libstrongswan-extra-plugins

Das zusätzliche Paket libcharon-extauth-plugins wird verwendet, um sicherzustellen, dass verschiedene Clients sich an Ihren Server mit einem gemeinsamen Benutzernamen und Passwort authentifizieren können. Das Paket libstrongswan-extra-plugins ist enthalten, damit StrongSwan elliptische Kurvenchiffersuiten unterstützt, die das Kryptosystem Curve25519 verwenden.

Jetzt, da alles installiert ist, fahren Sie mit der Erstellung Ihrer Zertifikate fort.

Schritt 2 — Erstellung einer Zertifizierungsstelle

Ein IKEv2-Server benötigt ein Zertifikat, um sich gegenüber den Clients zu identifizieren. Um bei der Erstellung des erforderlichen Zertifikats zu helfen, wird das Paket strongswan-pki mit einem Dienstprogramm namens pki geliefert, um eine Zertifizierungsstelle und Serverzertifikate zu generieren.

Um zu beginnen, erstellen Sie ein paar Verzeichnisse, um alle Assets zu speichern, an denen Sie arbeiten werden. Die Verzeichnisstruktur entspricht einigen der Verzeichnisse in /etc/ipsec.d, in die Sie schließlich alle Elemente verschieben werden, die Sie erstellen:

  1. mkdir -p ~/pki/{cacerts,certs,private}

Dann sperren Sie die Berechtigungen, damit unsere privaten Dateien von anderen Benutzern nicht eingesehen werden können:

  1. chmod 700 ~/pki

Jetzt, da Sie eine Verzeichnisstruktur haben, um alles zu speichern, können Sie einen Root-Schlüssel generieren. Dies wird ein 4096-Bit-RSA-Schlüssel sein, der verwendet wird, um Ihr Root-Zertifizierungsstellenzertifikat zu signieren.

Führen Sie diese Befehle aus, um den Schlüssel zu generieren:

  1. pki --gen --type rsa --size 4096 --outform pem > ~/pki/private/ca-key.pem

Anschließend können Sie mit der Erstellung Ihrer Root-Zertifizierungsstelle fortfahren, wobei Sie den gerade generierten Schlüssel verwenden, um das Root-Zertifikat zu signieren:

  1. pki --self --ca --lifetime 3650 --in ~/pki/private/ca-key.pem \
  2. --type rsa --dn "CN=VPN root CA" --outform pem > ~/pki/cacerts/ca-cert.pem

Die --lifetime 3650 Flagge wird verwendet, um sicherzustellen, dass das Stammzertifikat der Zertifizierungsstelle 10 Jahre lang gültig ist. Das Stammzertifikat einer Autorität ändert sich normalerweise nicht, da es an jeden Server und Client verteilt werden müsste, der darauf angewiesen ist, daher ist eine Ablaufzeit von 10 Jahren ein sicherer Standardwert.

Sie können den distinguished name (DN) Wert auf etwas anderes ändern, wenn Sie möchten. Der gemeinsame Name (CN-Feld) hier ist nur ein Indikator, daher muss er nicht mit irgendetwas in Ihrer Infrastruktur übereinstimmen.

Jetzt, da Ihre Root-Zertifizierungsstelle läuft, können Sie ein Zertifikat erstellen, das der VPN-Server verwenden wird.

Schritt 3 — Generieren eines Zertifikats für den VPN-Server

Sie werden nun ein Zertifikat und einen Schlüssel für den VPN-Server erstellen. Dieses Zertifikat ermöglicht es dem Client, die Authentizität des Servers mithilfe des gerade generierten CA-Zertifikats zu überprüfen.

Zuerst erstellen Sie einen privaten Schlüssel für den VPN-Server mit dem folgenden Befehl:

  1. pki --gen --type rsa --size 4096 --outform pem > ~/pki/private/server-key.pem

Erstellen Sie nun das Zertifikat für den VPN-Server und signieren Sie es mit dem Schlüssel der Zertifizierungsstelle, den Sie im vorherigen Schritt erstellt haben. Führen Sie den folgenden Befehl aus, ändern Sie jedoch den Common Name (CN) und das Subject Alternate Name (SAN)-Feld auf den DNS-Namen oder die IP-Adresse Ihres VPN-Servers:

  1. pki --pub --in ~/pki/private/server-key.pem --type rsa \
  2. | pki --issue --lifetime 1825 \
  3. --cacert ~/pki/cacerts/ca-cert.pem \
  4. --cakey ~/pki/private/ca-key.pem \
  5. --dn "CN=server_domain_or_IP" --san server_domain_or_IP \
  6. --flag serverAuth --flag ikeIntermediate --outform pem \
  7. > ~/pki/certs/server-cert.pem

Hinweis: Wenn Sie anstelle eines DNS-Namens eine IP-Adresse verwenden, müssen Sie mehrere --san-Einträge angeben. Die Zeile im vorherigen Befehlsblock, in der Sie den Distinguished Name (--dn ...) angeben (

--dn "CN=IP-Adresse" --san @IP-Adresse --san IP-Adresse \ 

Der Grund für diesen zusätzlichen --san @IP-Adresse-Eintrag ist, dass einige Clients überprüfen, ob das TLS-Zertifikat sowohl einen DNS-Eintrag als auch einen IP-Adresseneintrag für einen Server hat, wenn sie dessen Identität überprüfen.

Die Option --flag serverAuth wird verwendet, um anzuzeigen, dass das Zertifikat explizit für die Serverauthentifizierung verwendet wird, bevor der verschlüsselte Tunnel aufgebaut wird. Die Option --flag ikeIntermediate wird verwendet, um ältere macOS-Clients zu unterstützen.

Jetzt, da Sie alle von StrongSwan benötigten TLS/SSL-Dateien generiert haben, können Sie die Dateien an ihren Platz im Verzeichnis /etc/ipsec.d verschieben, indem Sie Folgendes eingeben:

  1. sudo cp -r ~/pki/* /etc/ipsec.d/

In diesem Schritt haben Sie ein Zertifikatspaar erstellt, das zur Sicherung der Kommunikation zwischen Client und Server verwendet wird. Sie haben die Zertifikate auch mit dem CA-Schlüssel signiert, sodass der Client die Authentizität des VPN-Servers mithilfe des CA-Zertifikats überprüfen kann. Mit all diesen Zertifikaten bereit können Sie mit der Konfiguration von StrongSwan fortfahren.

Schritt 4 — Konfigurieren von StrongSwan

StrongSwan hat eine Standardkonfigurationsdatei mit einigen Beispielen, aber wir müssen die meiste Konfiguration selbst durchführen. Erstellen Sie zunächst eine Sicherungskopie der Datei für Referenzzwecke, bevor Sie von Grund auf neu beginnen:

  1. sudo mv /etc/ipsec.conf{,.original}

Erstellen und öffnen Sie eine neue leere Konfigurationsdatei mit Ihrem bevorzugten Texteditor. Hier verwenden Sie nano:

  1. sudo nano /etc/ipsec.conf

Hinweis: Während Sie diesen Abschnitt durchgehen, um den Serverteil Ihres VPN zu konfigurieren, werden Sie auf Einstellungen stoßen, die sich auf die linke und rechte Seite einer Verbindung beziehen. Bei der Arbeit mit IPSec-VPNs bezieht sich die linke Seite konventionell auf das lokale System, das Sie konfigurieren, in diesem Fall der Server. Die Direktiven für die rechte Seite in diesen Einstellungen beziehen sich auf entfernte Clients, wie Telefone und andere Computer.

Wenn Sie später in diesem Tutorial damit beginnen, Clients zu konfigurieren, werden sich die Client-Konfigurationsdateien selbst mit verschiedenen linken Direktiven bezeichnen, und der Server wird mit rechter Seiten-Terminologie bezeichnet.

Zuerst sagen wir StrongSwan, Statusmeldungen des Dienstes für die Fehlerbehebung zu protokollieren und doppelte Verbindungen zuzulassen. Fügen Sie diese Zeilen zur Datei hinzu:

/etc/ipsec.conf
config setup
    charondebug="ike 1, knl 1, cfg 0"
    uniqueids=no

Dann werden wir einen Konfigurationsabschnitt für unser VPN erstellen. Außerdem sagen wir StrongSwan, IKEv2-VPN-Tunnel zu erstellen und diesen Konfigurationsabschnitt automatisch zu laden, wenn es startet. Hängen Sie die folgenden Zeilen an die Datei an:

/etc/ipsec.conf
. . .
conn ikev2-vpn
    auto=add
    compress=no
    type=tunnel
    keyexchange=ikev2
    fragmentation=yes
    forceencaps=yes

Wir werden auch die Dead-Peer-Erkennung konfigurieren, um „hängende“ Verbindungen zu bereinigen, falls der Client unerwartet getrennt wird. Fügen Sie diese Zeilen hinzu:

/etc/ipsec.conf
. . .
conn ikev2-vpn
    . . .
    dpdaction=clear
    dpddelay=300s
    rekey=no

Dann werden wir die IPSec-Parameter auf der „linken“ Seite des Servers konfigurieren. Jeder der folgenden Parameter stellt sicher, dass der Server so konfiguriert ist, dass er Verbindungen von Clients akzeptiert und sich korrekt identifiziert. Sie fügen jede dieser Einstellungen zur Datei /etc/ipsec.conf hinzu, sobald Sie wissen, was sie sind und warum sie verwendet werden:

  • left=%any Der Wert %any stellt sicher, dass der Server das Netzwerkinterface verwendet, über das er eingehende Verbindungen empfängt, für die anschließende Kommunikation mit den Clients. Wenn Sie beispielsweise einen Client über ein privates Netzwerk verbinden, verwendet der Server die private IP-Adresse, über die er den Datenverkehr für den Rest der Verbindung empfängt.
  • leftid=@server_domain_or_IP Diese Option steuert den Namen, den der Server den Clients präsentiert. In Kombination mit der nächsten Option leftcert stellt die Option leftid sicher, dass der konfigurierte Name des Servers und der Distinguished Name (DN), der im öffentlichen Zertifikat enthalten ist, übereinstimmen.
  • leftcert=server-cert.pem Diese Option ist der Pfad zum öffentlichen Zertifikat für den Server, das Sie in Schritt 3 konfiguriert haben. Ohne dies kann sich der Server nicht bei den Clients authentifizieren oder die IKEv2-Einrichtung abschließen.
  • leftsendcert=always Der Wert always stellt sicher, dass jeder Client, der sich mit dem Server verbindet, immer eine Kopie des öffentlichen Zertifikats des Servers als Teil des initialen Verbindungsaufbaus erhält.
  • leftsubnet=0.0.0.0/0 Die letzte „left“-Seitenoption, die Sie hinzufügen, informiert die Clients über die Subnetze, die hinter dem Server erreichbar sind. In diesem Fall wird 0.0.0.0/0 verwendet, um die gesamte Menge an IPv4-Adressen darzustellen, was bedeutet, dass der Server den Clients standardmäßig sagt, ihren gesamten Datenverkehr über das VPN zu senden.

Jetzt, da Sie mit allen relevanten „left“-Seitenoptionen vertraut sind, fügen Sie sie alle wie folgt in die Datei ein:

/etc/ipsec.conf
. . .
conn ikev2-vpn
    . . .
    left=%any
    leftid=@server_domain_or_IP
    leftcert=server-cert.pem
    leftsendcert=always
    leftsubnet=0.0.0.0/0

Hinweis: Beim Konfigurieren der Server-ID (leftid) den @-Zeichen nur angeben, wenn Ihr VPN-Server durch einen Domainnamen identifiziert wird:

/etc/ipsec.conf
    . . .    leftid=@vpn.example.com
    . . .

Wenn der Server durch seine IP-Adresse identifiziert wird, geben Sie einfach die IP-Adresse ein:

/etc/ipsec.conf
    . . .
    leftid=your_server_ip
    . . .

Als Nächstes können wir die IPSec-Parameter auf der „rechten“ Seite des Clients konfigurieren. Jeder der folgenden Parameter gibt an, wie der Server Verbindungen von Clients akzeptieren soll, wie sich Clients beim Server authentifizieren sollen und welche privaten IP-Adressbereiche und DNS-Server von den Clients verwendet werden. Fügen Sie jede dieser Einstellungen der Datei /etc/ipsec.conf hinzu, sobald Sie wissen, was sie bedeuten und warum sie verwendet werden:

  • right=%any Die Option %any für die right-Seite der Verbindung weist den Server an, eingehende Verbindungen von beliebigen entfernten Clients zu akzeptieren.
  • rightid=%any Diese Option stellt sicher, dass der Server Verbindungen von Clients nicht ablehnt, die eine Identität angeben, bevor der verschlüsselte Tunnel hergestellt ist.
  • rightauth=eap-mschapv2 Diese Option konfiguriert die Authentifizierungsmethode, die von Clients verwendet wird, um sich beim Server zu authentifizieren. eap-mschapv2 wird hier für eine breite Kompatibilität verwendet, um Clients wie Windows-, macOS- und Android-Geräte zu unterstützen.
  • rightsourceip=10.10.10.0/24 Diese Option weist den Server an, privaten IP-Adressen für Clients aus dem angegebenen IP-Adresspool 10.10.10.0/24 zuzuweisen.
  • rightdns=8.8.8.8,8.8.4.4 Diese IP-Adressen sind die öffentlichen DNS-Resolver von Google. Sie können geändert werden, um andere öffentliche Resolver, die Resolver des VPN-Servers oder jeden anderen Resolver zu verwenden, den die Clients erreichen können.
  • rightsendcert=never Diese Option weist den Server an, dass die Clients keinen Zertifikat senden müssen, um sich zu authentifizieren.

Jetzt, da Sie mit den erforderlichen „right“ -Optionen für das VPN vertraut sind, fügen Sie die folgenden Zeilen zu /etc/ipsec.conf hinzu:

/etc/ipsec.conf
. . .
conn ikev2-vpn
    . . .
    right=%any
    rightid=%any
    rightauth=eap-mschapv2
    rightsourceip=10.10.10.0/24
    rightdns=8.8.8.8,8.8.4.4
    rightsendcert=never

Jetzt werden wir StrongSwan auffordern, den Client bei der Verbindung nach Benutzeranmeldeinformationen zu fragen:

/etc/ipsec.conf
. . .
conn ikev2-vpn
    . . .
    eap_identity=%identity

Zum Schluss fügen Sie die folgenden Zeilen hinzu, um Linux-, Windows-, macOS-, iOS- und Android-Clients zu unterstützen. Diese Zeilen geben die verschiedenen Schlüsselaustausch-, Hashing-, Authentifizierungs- und Verschlüsselungsalgorithmen (im Volksmund als Verschlüsselungssuites bezeichnet) an, die StrongSwan verschiedenen Clients erlauben wird, zu verwenden:

/etc/ipsec.conf
. . .
conn ikev2-vpn
    . . .
    ike=chacha20poly1305-sha512-curve25519-prfsha512,aes256gcm16-sha384-prfsha384-ecp384,aes256-sha1-modp1024,aes128-sha1-modp1024,3des-sha1-modp1024!
    esp=chacha20poly1305-sha512,aes256gcm16-ecp384,aes256-sha256,aes256-sha1,3des-sha1!

Jede unterstützte Verschlüsselungssuite wird von den anderen durch ein Komma abgegrenzt. Zum Beispiel ist chacha20poly1305-sha512-curve25519-prfsha512 eine Suite und aes256gcm16-sha384-prfsha384-ecp384 eine andere. Die hier aufgeführten Verschlüsselungssuites sind ausgewählt, um die größtmögliche Kompatibilität mit Windows-, macOS-, iOS-, Android- und Linux-Clients sicherzustellen.

Die vollständige Konfigurationsdatei sollte so aussehen:

/etc/ipsec.conf
config setup
    charondebug="ike 1, knl 1, cfg 0"
    uniqueids=no

conn ikev2-vpn
    auto=add
    compress=no
    type=tunnel
    keyexchange=ikev2
    fragmentation=yes
    forceencaps=yes
    dpdaction=clear
    dpddelay=300s
    rekey=no
    left=%any
    leftid=@server_domain_or_IP
    leftcert=server-cert.pem
    leftsendcert=always
    leftsubnet=0.0.0.0/0
    right=%any
    rightid=%any
    rightauth=eap-mschapv2
    rightsourceip=10.10.10.0/24
    rightdns=8.8.8.8,8.8.4.4
    rightsendcert=never
    eap_identity=%identity
    ike=chacha20poly1305-sha512-curve25519-prfsha512,aes256gcm16-sha384-prfsha384-ecp384,aes256-sha1-modp1024,aes128-sha1-modp1024,3des-sha1-modp1024!
    esp=chacha20poly1305-sha512,aes256gcm16-ecp384,aes256-sha256,aes256-sha1,3des-sha1!

Speichern und schließen Sie die Datei, sobald Sie überprüft haben, dass Sie jede Zeile korrekt hinzugefügt haben. Wenn Sie nano verwendet haben, tun Sie dies, indem Sie CTRL + X, Y und dann ENTER drücken.

Jetzt, da Sie die VPN-Parameter konfiguriert haben, können Sie damit fortfahren, ein Konto zu erstellen, damit Benutzer eine Verbindung zum Server herstellen können.

Schritt 5 — Konfiguration der VPN-Authentifizierung

Ihr VPN-Server ist jetzt so konfiguriert, dass er Clientverbindungen akzeptiert, aber es sind noch keine Anmeldeinformationen konfiguriert. Sie müssen ein paar Dinge in einer speziellen Konfigurationsdatei namens ipsec.secrets konfigurieren:

  • Sie müssen StrongSwan mitteilen, wo der private Schlüssel für unser Serverzertifikat zu finden ist, damit der Server sich bei den Clients authentifizieren kann.
  • Sie müssen auch eine Liste von Benutzern einrichten, die sich mit dem VPN verbinden dürfen.

Öffnen wir die Geheimnisse-Datei zum Bearbeiten:

  1. sudo nano /etc/ipsec.secrets

Zuerst geben Sie StrongSwan an, wo der private Schlüssel zu finden ist und wie er geparst werden soll.

/etc/ipsec.secrets
: RSA "server-key.pem"

Stellen Sie sicher, dass die Zeile mit dem Zeichen : beginnt und dass ein Leerzeichen danach steht, damit die gesamte Zeile : RSA "server-key.pem" lautet.

Dann definieren Sie die Benutzeranmeldeinformationen. Sie können eine beliebige Benutzername- oder Passwortkombination verwenden, die Ihnen gefällt:

/etc/ipsec.secrets
your_username : EAP "your_password"

Speichern und schließen Sie die Datei. Jetzt, da Sie mit den VPN-Parametern fertig sind, starten Sie den VPN-Dienst neu, damit unsere Konfiguration angewendet wird:

  1. sudo systemctl restart strongswan-starter

Nun, da der VPN-Server vollständig mit beiden Serveroptionen und Benutzeranmeldeinformationen konfiguriert wurde, ist es an der Zeit, zum wichtigsten Teil überzugehen: der Firewall-Konfiguration.

Schritt 6 — Konfiguration der Firewall & Kernel-IP-Weiterleitung

Mit der StrongSwan-Konfiguration abgeschlossen, müssen Sie die Firewall konfigurieren, um den VPN-Verkehr durchzulassen und weiterzuleiten.

Wenn Sie dem vorherigen Tutorial zur Einrichtung des Servers gefolgt sind, sollte eine UFW-Firewall aktiviert sein. Wenn Sie UFW noch nicht konfiguriert haben, sollten Sie damit beginnen, eine Regel hinzuzufügen, um SSH-Verbindungen durch die Firewall zuzulassen, damit Ihre aktuelle Sitzung nicht geschlossen wird, wenn Sie UFW aktivieren:

  1. sudo ufw allow OpenSSH

Aktivieren Sie dann die Firewall, indem Sie Folgendes eingeben:

  1. sudo ufw enable

Dann fügen Sie eine Regel hinzu, um UDP-Verkehr zu den Standard-IPSec-Ports 500 und 4500 zuzulassen:

  1. sudo ufw allow 500,4500/udp

Anschließend öffnen Sie eine der Konfigurationsdateien von UFW, um ein paar Richtlinien auf niedriger Ebene für die Weiterleitung und den Routing von IPSec-Paketen hinzuzufügen. Bevor Sie dies jedoch tun, müssen Sie herausfinden, welches Netzwerkinterface auf unserem Server für den Internetzugriff verwendet wird. Ermitteln Sie dieses Interface, indem Sie nach dem Gerät suchen, das mit der Standardroute verknüpft ist:

  1. ip route show default

Ihr öffentliches Interface sollte dem Wort „dev“ folgen. Zum Beispiel zeigt dieses Ergebnis das Interface mit dem Namen eth0, das im folgenden Beispiel hervorgehoben ist:

Output
default via your_server_ip dev eth0 proto static

Wenn Sie Ihre öffentliche Netzwerkschnittstelle haben, öffnen Sie die Datei /etc/ufw/before.rules in Ihrem Texteditor. Die Regeln in dieser Datei werden der Firewall vor dem Rest der üblichen Ein- und Ausgangsregeln hinzugefügt. Sie werden verwendet, um die Netzwerkadressübersetzung (NAT) zu konfigurieren, damit der Server Verbindungen zu und von Clients und dem Internet richtig weiterleiten kann.

  1. sudo nano /etc/ufw/before.rules

In der Nähe des Anfangs der Datei (vor der Zeile *filter) fügen Sie den folgenden Konfigurationsblock hinzu. Ändern Sie jede Instanz von eth0 in der obigen Konfiguration so, dass sie mit dem Schnittstellennamen übereinstimmt, den Sie mit ip route gefunden haben. Die *nat-Zeilen erstellen Regeln, damit die Firewall den Verkehr zwischen den VPN-Clients und dem Internet richtig weiterleiten und manipulieren kann. Die *mangle-Zeile passt die maximale Paketsegmentgröße an, um potenzielle Probleme mit bestimmten VPN-Clients zu verhindern:

/etc/ufw/before.rules
*nat
-A POSTROUTING -s 10.10.10.0/24 -o eth0 -m policy --pol ipsec --dir out -j ACCEPT
-A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE
COMMIT

*mangle
-A FORWARD --match policy --pol ipsec --dir in -s 10.10.10.0/24 -o eth0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1361:1536 -j TCPMSS --set-mss 1360
COMMIT

*filter
:ufw-before-input - [0:0]
:ufw-before-output - [0:0]
:ufw-before-forward - [0:0]
:ufw-not-local - [0:0]
. . .

Anschließend fügen Sie nach den Zeilen *filter und der Kettendefinition einen weiteren Konfigurationsblock hinzu:

/etc/ufw/before.rules
. . .
*filter
:ufw-before-input - [0:0]
:ufw-before-output - [0:0]
:ufw-before-forward - [0:0]
:ufw-not-local - [0:0]

-A ufw-before-forward --match policy --pol ipsec --dir in --proto esp -s 10.10.10.0/24 -j ACCEPT
-A ufw-before-forward --match policy --pol ipsec --dir out --proto esp -d 10.10.10.0/24 -j ACCEPT

Diese Zeilen teilen der Firewall mit, ESP (Encapsulating Security Payload)-Verkehr weiterzuleiten, damit die VPN-Clients eine Verbindung herstellen können. ESP bietet zusätzliche Sicherheit für unsere VPN-Pakete, wenn sie unvertrauenswürdige Netzwerke durchqueren.

Wenn Sie fertig sind, speichern und schließen Sie die Datei, nachdem Sie überprüft haben, dass Sie jede Zeile korrekt hinzugefügt haben. Wenn Sie nano verwendet haben, tun Sie dies, indem Sie CTRL + X, Y und dann ENTER drücken.

Vor dem Neustart der Firewall müssen Sie auch einige Netzwerkkernelparameter ändern, um das Routing von einer Schnittstelle zur anderen zu ermöglichen. Die Datei, die diese Einstellungen steuert, heißt /etc/ufw/sysctl.conf. Sie müssen ein paar Dinge in der Datei konfigurieren.

Zuerst muss das IPv4-Paketweiterleiten aktiviert werden, damit der Datenverkehr zwischen den VPN- und den öffentlich zugänglichen Netzwerkschnittstellen auf dem Server erfolgen kann. Als nächstes deaktivieren Sie die Path MTU-Erkennung, um Probleme mit der Paketfragmentierung zu verhindern. Schließlich werden wir keine ICMP-Weiterleitungen akzeptieren oder ICMP-Weiterleitungen senden, um Angriffe durch Man-in-the-Middle zu verhindern.

Öffnen Sie die Kernelparameterkonfigurationsdatei von UFW mit nano oder Ihrem bevorzugten Texteditor:

  1. sudo nano /etc/ufw/sysctl.conf

Fügen Sie nun die folgende Einstellung net/ipv4/ip_forward=1 am Ende der Datei hinzu, um das Weiterleiten von Paketen zwischen den Schnittstellen zu aktivieren:

/etc/ufw/sysctl.conf
. . .
net/ipv4/ip_forward=1

Blockieren Sie als nächstes das Senden und Empfangen von ICMP-Weiterleitungsdatenpaketen, indem Sie die folgenden Zeilen am Ende der Datei hinzufügen:

/etc/ufw/sysctl.conf
. . .
net/ipv4/conf/all/accept_redirects=0
net/ipv4/conf/all/send_redirects=0

Schließlich deaktivieren Sie die Path MTU-Erkennung, indem Sie diese Zeile am Ende der Datei hinzufügen:

/etc/ufw/sysctl.conf
. . .
net/ipv4/ip_no_pmtu_disc=1

Speichern Sie die Datei, wenn Sie fertig sind. Jetzt können Sie alle Ihre Änderungen aktivieren, indem Sie die Firewall deaktivieren und wieder aktivieren, da UFW diese Einstellungen jedes Mal anwendet, wenn sie neu gestartet wird:

  1. sudo ufw disable
  2. sudo ufw enable

Sie werden aufgefordert, den Vorgang zu bestätigen. Geben Sie Y ein, um UFW wieder mit den neuen Einstellungen zu aktivieren.

Schritt 7 — Testen der VPN-Verbindung unter Windows, macOS, Ubuntu, iOS und Android

Jetzt, da alles eingerichtet ist, ist es an der Zeit, es auszuprobieren. Zuerst müssen Sie das CA-Zertifikat, das Sie erstellt haben, kopieren und auf Ihrem Client-Gerät installieren, das sich mit dem VPN verbinden wird. Der einfachste Weg, dies zu tun, besteht darin, sich auf Ihren Server einzuloggen und die Inhalte der Zertifikatsdatei auszugeben:

  1. cat /etc/ipsec.d/cacerts/ca-cert.pem

Sie werden eine Ausgabe ähnlich dieser sehen:

Output
-----BEGIN CERTIFICATE----- MIIFNDCCAxygAwIBAgIIHCsidG5mXzgwDQYJKoZIhvcNAQEMBQAwODELMAkGA1UE . . . H2YUdz8XNHrJHvMQKWFpi0rlEcMs+MSXPFWE3Q7UbaZJ/h8wpSldSUbQRUlphExJ dJ4PX+MUJO/vjG1/ie6Kh25xbBAc3qNq8siiJZDwrg6vjEK7eiZ1rA== -----END CERTIFICATE-----

Kopieren Sie diese Ausgabe auf Ihren Computer, einschließlich der -----BEGIN CERTIFICATE----- und -----END CERTIFICATE----- Zeilen, und speichern Sie sie in einer Datei mit einem erkennbaren Namen, wie z. B. ca-cert.pem. Stellen Sie sicher, dass die von Ihnen erstellte Datei die Erweiterung .pem hat.

Alternativ verwenden Sie SFTP, um die Datei auf Ihren Computer zu übertragen.

Sobald Sie die Datei ca-cert.pem auf Ihren Computer heruntergeladen haben, können Sie die Verbindung zum VPN einrichten.Verbindung von Windows herstellen

Verbinden von Windows

Es gibt mehrere Möglichkeiten, das Stammzertifikat zu importieren und Windows so zu konfigurieren, dass eine VPN-Verbindung hergestellt werden kann. Der erste Ansatz verwendet grafische Werkzeuge für jeden Schritt. Der zweite Ansatz verwendet PowerShell-Befehle, die skriptfähig und angepasst werden können, um Ihre VPN-Konfiguration zu erfüllen.

Hinweis: Diese Anweisungen wurden auf Windows 10-Installationen getestet, die die Versionen 1903 und 1909 ausführen.

Konfigurieren von Windows mit grafischen Werkzeugen

Importieren Sie zunächst das Stammzertifikat, indem Sie diese Schritte befolgen:

  1. Drücken Sie WINDOWS+R, um das Ausführen Dialogfeld aufzurufen, und geben Sie mmc.exe ein, um die Windows Management Console zu starten.

  2. Wählen Sie im Datei Menü Snap-in hinzufügen oder entfernen, wählen Sie Zertifikate aus der Liste der verfügbaren Snap-ins und klicken Sie auf Hinzufügen.

  3. Wir möchten, dass die VPN mit jedem Benutzer funktioniert, wählen Sie daher Computerkonto und klicken Sie auf Weiter.

  4. Wir konfigurieren Dinge auf dem lokalen Computer, wählen Sie daher Lokaler Computer und klicken Sie dann auf Fertig stellen.

  5. Unter dem Konsolenstamm Knoten erweitern Sie den Zertifikate (Lokaler Computer) Eintrag, erweitern Vertrauenswürdige Stammzertifizierungsstellen und wählen dann den Zertifikate Eintrag:

  6. Wählen Sie aus dem Aktion Menü Alle Aufgaben und klicken Sie auf Importieren, um das Zertifikat-Import-Assistenten anzuzeigen. Klicken Sie auf Weiter, um das Intro hinter sich zu lassen.

  7. Auf dem Datei zum Importieren Bildschirm drücken Sie die Durchsuchen Taste, stellen Sie sicher, dass Sie den Dateityp von „X.509-Zertifikat (.cer;.crt)“ in „Alle Dateien (.)“ ändern und die gespeicherte ca-cert.pem Datei auswählen. Klicken Sie dann auf Weiter.

  8. Stellen Sie sicher, dass das Zertifikatspeicher auf Vertrauenswürdige Zertifizierungsstellen eingestellt ist, und klicken Sie auf Weiter.

  9. Klicken Sie auf Fertig stellen, um das Zertifikat zu importieren.

Konfigurieren Sie anschließend die VPN mit diesen Schritten:

  1. Starten Sie die Systemsteuerung und navigieren Sie zum Netzwerk- und Freigabecenter.
  2. Klicken Sie auf Eine neue Verbindung oder ein neues Netzwerk einrichten und wählen Sie Arbeitsplatz verbinden.
  3. Wählen Sie Verwenden Sie mein Internet (VPN).
  4. Geben Sie die VPN-Serverdetails ein. Geben Sie den Domänenamen oder die IP-Adresse des Servers im Feld Internetadresse ein und füllen Sie dann Zielland mit etwas aus, das Ihre VPN-Verbindung beschreibt. Klicken Sie dann auf Fertig.

Konfigurieren von Windows mit PowerShell

Um das Stammzertifikat mit PowerShell zu importieren, öffnen Sie zunächst einen PowerShell-Prompt mit Administratorrechten. Klicken Sie dazu mit der rechten Maustaste auf das Startmenüsymbol und wählen Sie Windows PowerShell (Admin). Sie können auch eine Eingabeaufforderung als Administrator öffnen und powershell eingeben.

Als nächstes importieren wir das Zertifikat mit dem PowerShell-Cmdlet Import-Certificate. In dem folgenden Befehl stellt das erste Argument -CertStoreLocation sicher, dass das Zertifikat in den Vertrauenswürdigen Stammzertifizierungsstellen des Computers importiert wird, damit alle Programme und Benutzer das Zertifikat des VPN-Servers überprüfen können. Das Argument -FilePath sollte auf den Speicherort zeigen, an den Sie das Zertifikat kopiert haben. Im folgenden Beispiel ist der Pfad C:\Users\sammy\Documents\ca-cert.pem. Stellen Sie sicher, dass Sie den Befehl an die von Ihnen verwendete Speicherort anpassen.

  1. Import-Certificate `
  2. -CertStoreLocation cert:\LocalMachine\Root\ `
  3. -FilePath C:\users\sammy\Documents\ca-cert.pem

Der Befehl gibt etwas wie folgendes aus:

Output
PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\Root Thumbprint Subject ---------- ------- DB00813B4087E9367861E8463A60CEA0ADC5F002 CN=VPN root CA

Um nun die VPN mit PowerShell zu konfigurieren, führen Sie den folgenden Befehl aus. Ersetzen Sie den DNS-Namen oder die IP-Adresse Ihres Servers in der -ServerAddress-Zeile. Die verschiedenen Flags stellen sicher, dass Windows mit den richtigen Sicherheitsparametern korrekt konfiguriert ist, die den von Ihnen in /etc/ipsec.conf festgelegten Optionen entsprechen.

  1. Add-VpnConnection -Name "VPN Connection" `
  2. -ServerAddress "server_domain_or_IP" `
  3. -TunnelType "IKEv2" `
  4. -AuthenticationMethod "EAP" `
  5. -EncryptionLevel "Maximum" `
  6. -RememberCredential `

Wenn der Befehl erfolgreich ist, gibt es keine Ausgabe. Um zu bestätigen, dass die VPN-Einstellungen korrekt konfiguriert sind, verwenden Sie den Get-VPNConnection Cmdlet:

  1. Get-VpnConnection -Name "VPN Connection"

Sie erhalten Ausgabe wie folgt:

Output
Name : VPN Connection ServerAddress : your_server_ip AllUserConnection : False Guid : {B055A1AB-175C-4028-B4A8-D34309A2B20E} TunnelType : Ikev2 AuthenticationMethod : {Eap} EncryptionLevel : Maximum L2tpIPsecAuth : UseWinlogonCredential : False EapConfigXmlStream : #document ConnectionStatus : Disconnected RememberCredential : True SplitTunneling : False DnsSuffix : IdleDisconnectSeconds : 0

Standardmäßig wählt Windows ältere und langsamere Algorithmen aus. Führen Sie den Set-VpnConnectionIPsecConfiguration Cmdlet aus, um die Verschlüsselungsparameter zu aktualisieren, die Windows für den IKEv2-Schlüsselaustausch und zum Verschlüsseln von Paketen verwendet:

  1. Set-VpnConnectionIPsecConfiguration -Name "VPN Connection" `
  2. -AuthenticationTransformConstants GCMAES256 `
  3. -CipherTransformConstants GCMAES256 `
  4. -DHGroup ECP384 `
  5. -IntegrityCheckMethod SHA384 `
  6. -PfsGroup ECP384 `
  7. -EncryptionMethod GCMAES256

Hinweis: Wenn Sie die VPN-Verbindung löschen und mit anderen Optionen neu konfigurieren möchten, können Sie den Remove-VpnConnection Cmdlet ausführen.

  1. Remove-VpnConnection -Name "VPN Connection" -Force

Der -Force Flag überspringt das Aufforderung, Sie zur Bestätigung des Entfernens zu bitten. Sie müssen von der VPN getrennt sein, wenn Sie versuchen, es mit diesem Befehl zu entfernen.

Anschließen an die VPN

Sobald Sie das Zertifikat importiert und die VPN-Einstellungen mit einer der Methoden konfiguriert haben, wird Ihre neue VPN-Verbindung in der Liste der Netzwerke sichtbar sein. Wählen Sie die VPN und klicken Sie auf Verbinden. Sie werden aufgefordert, Ihren Benutzernamen und Ihr Passwort einzugeben. Geben Sie sie ein, klicken Sie auf OK, und Sie sind verbunden.

Verbinden von macOS

Führen Sie die folgenden Schritte aus, um das Zertifikat zu importieren:

  1. Doppelklicken Sie auf die Zertifikatdatei. Schlüsselbundzugriff wird mit einem Dialogfeld angezeigt, das besagt: „Schlüsselbundzugriff versucht, den Systemschlüsselbund zu ändern. Geben Sie Ihr Passwort ein, um dies zu erlauben.“
  2. Geben Sie Ihr Passwort ein und klicken Sie dann auf Modify Keychain
  3. Doppelklicken Sie auf das neu importierte VPN-Zertifikat. Dadurch wird ein kleines Eigenschaftenfenster geöffnet, in dem Sie die Vertrauensebenen festlegen können. Setzen Sie IP Security (IPSec) auf Always Trust und Sie werden erneut zur Eingabe Ihres Passworts aufgefordert. Diese Einstellung wird automatisch gespeichert, nachdem das Passwort eingegeben wurde.

Nun, da das Zertifikat importiert und vertrauenswürdig ist, konfigurieren Sie die VPN-Verbindung mit diesen Schritten:

  1. Gehen Sie zu Systemeinstellungen und wählen Sie Netzwerk.
  2. Klicken Sie auf die kleine „plus“-Schaltfläche unten links in der Liste der Netzwerke.
  3. In dem sich öffnenden Popup setzen Sie Schnittstelle auf VPN, setzen das VPN-Typ auf IKEv2 und geben der Verbindung einen Namen.
  4. Geben Sie im Server– und Remote ID-Feld den Domänennamen oder die IP-Adresse des Servers ein. Lassen Sie das Lokale ID-Feld leer.
  5. Klicken Sie auf Authentifizierungseinstellungen, wählen Sie Benutzername und geben Sie Ihren Benutzernamen und das Passwort ein, das Sie für Ihren VPN-Benutzer konfiguriert haben. Klicken Sie dann auf OK.

Klicken Sie schließlich auf Verbinden, um sich mit dem VPN zu verbinden. Sie sollten nun mit dem VPN verbunden sein.

Verbinden von Ubuntu

Um eine Verbindung von einem Ubuntu-Rechner herzustellen, können Sie StrongSwan als Dienst einrichten und verwalten oder jedes Mal eine einmalige Befehlszeile verwenden, wenn Sie sich verbinden möchten. Anleitungen werden für beides bereitgestellt.

Verwalten von StrongSwan als Dienst

Um StrongSwan als Dienst zu verwalten, müssen Sie die folgenden Konfigurationsschritte durchführen.

Zuerst aktualisieren Sie Ihren lokalen Paket-Cache mit apt

  1. sudo apt update

Dann installieren Sie StrongSwan und die erforderlichen Plugins für die Authentifizierung:

  1. sudo apt install strongswan libcharon-extra-plugins

Jetzt benötigen Sie eine Kopie des CA-Zertifikats im Verzeichnis /etc/ipsec.d/cacerts, damit Ihr Client die Identität des Servers überprüfen kann. Führen Sie den folgenden Befehl aus, um die Datei ca-cert.pem an die richtige Stelle zu kopieren:

  1. sudo cp /tmp/ca-cert.pem /etc/ipsec.d/cacerts

Um sicherzustellen, dass das VPN nur bei Bedarf läuft, verwenden Sie systemctl, um StrongSwan davon abzuhalten, automatisch zu starten:

  1. sudo systemctl disable --now strongswan-starter

Konfigurieren Sie als Nächstes den Benutzernamen und das Passwort, die Sie zur Authentifizierung am VPN-Server verwenden werden. Bearbeiten Sie /etc/ipsec.secrets mit nano oder Ihrem bevorzugten Editor:

  1. sudo nano /etc/ipsec.secrets

Fügen Sie die folgende Zeile hinzu und bearbeiten Sie die hervorgehobenen Benutzernamen- und Passwortwerte, um mit denen übereinzustimmen, die Sie auf dem Server konfiguriert haben:

/etc/ipsec.secrets
your_username : EAP "your_password"

Zuletzt bearbeiten Sie die Datei /etc/ipsec.conf, um Ihren Client so zu konfigurieren, dass er zur Konfiguration des Servers passt:

/etc/ipsec.conf
config setup

conn ikev2-rw
    right=server_domain_or_IP
    # Dies sollte mit dem Wert `leftid` in der Konfiguration Ihres Servers übereinstimmen
    rightid=server_domain_or_IP
    rightsubnet=0.0.0.0/0
    rightauth=pubkey
    leftsourceip=%config
    leftid=username
    leftauth=eap-mschapv2
    eap_identity=%identity
    auto=start

Um sich mit dem VPN zu verbinden, geben Sie ein:

  1. sudo systemctl start strongswan-starter

Um sich wieder zu trennen, geben Sie ein:

  1. sudo systemctl stop strongswan-starter

Verwendung des Clients charon-cmd für einmalige Verbindungen

Um StrongSwan als Dienst zu verwalten, müssen Sie die folgenden Konfigurationsschritte durchführen.

Zuerst aktualisieren Sie Ihren lokalen Paketcache mit apt

  1. sudo apt update

Anschließend installieren Sie StrongSwan und die erforderlichen Plugins für die Authentifizierung:

  1. sudo apt install strongswan libcharon-extra-plugins

Jetzt benötigen Sie eine Kopie des CA-Zertifikats im Verzeichnis /etc/ipsec.d/cacerts, damit Ihr Client die Identität des Servers überprüfen kann. Führen Sie den folgenden Befehl aus, um die Datei ca-cert.pem zu kopieren:

  1. sudo cp /tmp/ca-cert.pem /etc/ipsec.d/cacerts

Zu diesem Zeitpunkt können Sie sich mit charon-cmd mit dem CA-Zertifikat des Servers, der IP-Adresse des VPN-Servers und dem von Ihnen konfigurierten Benutzernamen verbinden.

Führen Sie den folgenden Befehl aus, wenn Sie sich mit dem VPN verbinden möchten:

  1. sudo charon-cmd --cert ca-cert.pem --host vpn_domain_or_IP --identity your_username

Geben Sie bei Aufforderung das Passwort des VPN-Benutzers ein, und Sie werden mit dem VPN verbunden. Um die Verbindung zu trennen, drücken Sie CTRL+C in der Konsole und warten Sie, bis die Verbindung geschlossen ist.

Verbindung von iOS herstellen

Um die VPN-Verbindung auf einem iOS-Gerät zu konfigurieren, befolgen Sie diese Schritte:

  1. Senden Sie sich selbst eine E-Mail mit dem angehängten Stammzertifikat.
  2. Öffnen Sie die E-Mail auf Ihrem iOS-Gerät und tippen Sie auf die angehängte Zertifikatsdatei, dann tippen Sie auf Installieren und geben Sie Ihren Code ein. Sobald es installiert ist, tippen Sie auf Fertig.
  3. Gehe zu Einstellungen, Allgemein, VPN und tippe auf VPN-Konfiguration hinzufügen. Dadurch wird der Bildschirm für die VPN-Verbindungskonfiguration geöffnet.
  4. Tippe auf Typ und wähle IKEv2.
  5. Im Feld Beschreibung gib einen kurzen Namen für die VPN-Verbindung ein. Dies kann alles sein, was du möchtest.
  6. Im Feld Server und Remote-ID gib den Domänennamen oder die IP-Adresse des Servers ein. Das Feld Local-ID kann leer gelassen werden.
  7. Gib deinen Benutzernamen und dein Passwort im Abschnitt Authentifizierung ein und tippe dann auf Fertig.
  8. Wähle die VPN-Verbindung aus, die du gerade erstellt hast, aktiviere den Schalter oben auf der Seite und du wirst verbunden sein.

Verbindung von Android

Befolge diese Schritte, um das Zertifikat zu importieren:

  1. Sende dir selbst eine E-Mail mit dem CA-Zertifikat im Anhang. Speichere das CA-Zertifikat in deinem Download-Ordner.
  2. Lade den StrongSwan VPN-Client aus dem Play Store herunter.
  3. Öffne die App. Tippe auf das „Mehr“-Symbol (. . .) in der oberen rechten Ecke und wähle CA-Zertifikate.
  4. Tippen Sie erneut auf das „Mehr“ -Symbol (. . .) in der oberen rechten Ecke. Wählen Sie Zertifikat importieren.
  5. Navigieren Sie zu der CA-Zertifikatsdatei in Ihrem Download-Ordner und wählen Sie sie aus, um sie in die App zu importieren.

Jetzt, da das Zertifikat in der StrongSwan-App importiert ist, können Sie die VPN-Verbindung mit diesen Schritten konfigurieren:

  1. In der App tippen Sie oben auf VPN-PROFIL HINZUFÜGEN.
  2. Füllen Sie das Server mit dem Domänennamen oder der öffentlichen IP-Adresse Ihres VPN-Servers aus.
  3. Stellen Sie sicher, dass IKEv2 EAP (Benutzername/Passwort) als VPN-Typ ausgewählt ist.
  4. Füllen Sie das Benutzername und Passwort mit den Anmeldedaten aus, die Sie auf dem Server definiert haben.
  5. Deaktivieren Sie Automatisch auswählen im Abschnitt CA-Zertifikat und klicken Sie auf CA-Zertifikat auswählen.
  6. Tippen Sie auf den Reiter IMPORTIERT oben auf dem Bildschirm und wählen Sie die importierte CA aus (sie wird „VPN-Stamm-CA“ genannt, wenn Sie den „DN“ nicht geändert haben).
  7. Falls gewünscht, füllen Sie Profilname (optional) mit einem aussagekräftigeren Namen aus.

Wenn Sie eine Verbindung mit dem VPN herstellen möchten, klicken Sie auf das Profil, das Sie gerade in der StrongSwan-Anwendung erstellt haben.

Problembehebung bei Verbindungen

Wenn Sie das Zertifikat nicht importieren können, stellen Sie sicher, dass die Datei die Erweiterung .pem hat und nicht .pem.txt.

Wenn Sie keine Verbindung zum VPN herstellen können, überprüfen Sie den Servernamen oder die IP-Adresse, die Sie verwendet haben. Die Domänenname oder IP-Adresse des Servers muss mit dem übereinstimmen, was Sie als den allgemeinen Namen (CN) bei der Erstellung des Zertifikats konfiguriert haben. Wenn sie nicht übereinstimmen, funktioniert die VPN-Verbindung nicht. Wenn Sie beispielsweise ein Zertifikat mit dem CN vpn.example.com eingerichtet haben, müssen Sie vpn.example.com verwenden, wenn Sie die Details des VPN-Servers eingeben. Überprüfen Sie den Befehl, den Sie zum Generieren des Zertifikats verwendet haben, und die Werte, die Sie beim Erstellen Ihrer VPN-Verbindung verwendet haben.

Zum Schluss überprüfen Sie die VPN-Konfiguration, um sicherzustellen, dass der Wert leftid mit dem Symbol @ konfiguriert ist, wenn Sie einen Domänennamen verwenden:

/etc/ipsec.conf
    leftid=@vpn.example.com

Wenn Sie eine IP-Adresse verwenden, stellen Sie sicher, dass das Symbol @ weggelassen wird. Stellen Sie außerdem sicher, dass Sie beim Generieren der Datei server-cert.pem sowohl die Flags --san @IP_Adresse als auch --san IP_Adresse eingeschlossen haben.

Abschluss

In diesem Tutorial haben Sie einen VPN-Server erstellt, der das IKEv2-Protokoll verwendet. Sie haben die Direktiven kennengelernt, die die Verbindung auf der linken und rechten Seite sowohl des Servers als auch der Clients steuern. Außerdem haben Sie einen Windows-, macOS-, iOS-, Android- oder Linux-Client konfiguriert, um eine Verbindung zum VPN herzustellen.

Um Benutzer hinzuzufügen oder zu entfernen, gehen Sie erneut zu Schritt 5. Jede Zeile in /etc/ipsec.secrets ist für einen Benutzer, daher erfordert das Hinzufügen oder Entfernen von Benutzern oder das Ändern von Passwörtern lediglich eine Bearbeitung der Datei.

Jetzt können Sie sicher sein, dass Ihre Online-Aktivitäten überall und mit jedem Gerät, das Sie zum Zugriff auf das Internet verwenden, sicher bleiben.

Source:
https://www.digitalocean.com/community/tutorials/how-to-set-up-an-ikev2-vpn-server-with-strongswan-on-ubuntu-22-04