Installieren und konfigurieren Sie StrongSwan VPN unter Ubuntu 20.04

Ein virtuelles privates Netzwerk wird verwendet, um aus einer öffentlichen Internetverbindung ein privates Netzwerk zu erstellen, um Ihre Identität zu schützen. VPN verwendet einen verschlüsselten Tunnel, um die Daten sicher zu senden und zu empfangen.

strongSwan ist eine der bekanntesten VPN-Software, die verschiedene Betriebssysteme unterstützt, darunter Linux, OS X, FreeBSD, Windows, Android und iOS. Es verwendet die Protokolle IKEv1 und IKEv2 für den sicheren Verbindungsaufbau. Sie können die Funktionalität mit integrierten Plugins erweitern.

In diesem Tutorial erklären wir Ihnen Schritt für Schritt, wie Sie einen KEv2-VPN-Server mit StrongSwan unter Ubuntu 20.04 einrichten.

Voraussetzung

• Zwei Systeme mit Ubuntu 20.04-Server
• Auf beiden Servern ist ein Root-Passwort konfiguriert

Installieren Sie StrongSwan

Standardmäßig ist StrongSwan im Standard-Repository von Ubuntu 20.04 verfügbar. Sie können es mit anderen erforderlichen Komponenten mit dem folgenden Befehl installieren:

apt-get install strongswan strongswan-pki libcharon-extra-plugins libcharon-extauth-plugins libstrongswan-extra-plugins -y

Nachdem Sie alle Pakete installiert haben, können Sie mit der Generierung eines CA-Zertifikats fortfahren.

Generieren Sie ein Zertifikat für den VPN-Server

Als nächstes müssen Sie ein Zertifikat und einen Schlüssel für den VPN-Server generieren, um die Authentizität des Servers auf der Clientseite zu überprüfen.

Erstellen Sie zunächst einen privaten Schlüssel für die Root-CA mit dem folgenden Befehl:

ipsec pki --gen --size 4096 --type rsa --outform pem > /etc/ipsec.d/private/ca.key.pem

Erstellen Sie als Nächstes eine Root-CA und signieren Sie sie mit dem obigen Schlüssel:

ipsec pki --self --in /etc/ipsec.d/private/ca.key.pem --type rsa --dn "CN=My VPN Server CA" --ca --lifetime 3650 --outform pem > /etc/ipsec.d/cacerts/ca.cert.pem

Erstellen Sie als Nächstes mit dem folgenden Befehl einen privaten Schlüssel für den VPN-Server:

ipsec pki --gen --size 4096 --type rsa --outform pem > /etc/ipsec.d/private/server.key.pem

Generieren Sie abschließend das Serverzertifikat mit dem folgenden Befehl:

ipsec pki --pub --in /etc/ipsec.d/private/server.key.pem --type rsa | ipsec pki --issue --lifetime 2750 --cacert /etc/ipsec.d/cacerts/ca.cert.pem --cakey /etc/ipsec.d/private/ca.key.pem --dn "CN=vpn.domain.com" --san="vpn.domain.com" --flag serverAuth --flag ikeIntermediate --outform pem > /etc/ipsec.d/certs/server.cert.pem

Zu diesem Zeitpunkt sind alle Zertifikate für den VPN-Server bereit.

StrongSwan VPN konfigurieren

Die Standardkonfigurationsdatei von Strongswan ist /etc/ipsec.conf. Wir können die Hauptkonfigurationsdatei sichern und eine neue Datei erstellen:

mv /etc/ipsec.conf /etc/ipsec.conf-bak

Als nächstes erstellen Sie eine neue Konfigurationsdatei:

nano /etc/ipsec.conf

Fügen Sie die folgenden Konfigurations- und Verbindungseinstellungen hinzu:

config setup
charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2, mgr 2"
strictcrlpolicy=no
uniqueids=yes
cachecrls=no

conn ipsec-ikev2-vpn
auto=add
compress=no
type=tunnel
keyexchange=ikev2
fragmentation=yes
forceencaps=yes
dpdaction=clear
dpddelay=300s
rekey=no
left=%any
[email protected]
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
rightsendcert=never
eap_identity=%identity

Save und close die Datei /etc/ipsec.conf.

Als Nächstes müssen Sie die EAP-Benutzeranmeldeinformationen und die privaten RSA-Schlüssel für die Authentifizierung definieren.

Sie können es einrichten, indem Sie die Datei /etc/ipsec.secrets bearbeiten:

nano /etc/ipsec.secrets

Fügen Sie die folgende Zeile hinzu:

: RSA "server.key.pem"
vpnsecure : EAP "password"

Starten Sie dann den StrongSwan-Dienst wie folgt neu:

systemctl restart strongswan-starter

Geben Sie Folgendes ein, um StrongSwan beim Systemstart zu starten:

systemctl enable strongswan-starter

Überprüfen Sie den Status des VPN-Servers, geben Sie Folgendes ein:

systemctl status strongswan-starter

Kernel-Paketweiterleitung aktivieren

Als nächstes müssen Sie den Kernel konfigurieren, um die Paketweiterleitung zu aktivieren, indem Sie die Datei /etc/sysctl.conf bearbeiten:

nano /etc/sysctl.conf

Entkommentieren Sie die folgenden Zeilen:

net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0

Save und close Laden Sie die Datei dann die neuen Einstellungen mit dem folgenden Befehl neu:

sysctl -p

Installieren und konfigurieren Sie den StrongSwan-Client

In diesem Abschnitt werden wir den StrongSwan-Client auf dem Remote-Computer installieren und eine Verbindung zum VPN-Server herstellen.

Installieren Sie zunächst alle erforderlichen Pakete mit dem folgenden Befehl:

apt-get install strongswan libcharon-extra-plugins -y

Sobald alle Pakete installiert sind, stoppen Sie den StrongSwan-Dienst mit dem folgenden Befehl:

systemctl stop strongswan-starter

Als nächstes müssen Sie die Datei ca.cert.pem vom VPN-Server in das Verzeichnis /etc/ipsec.d/cacerts/ kopieren. Sie können es mit dem SCP-Befehl kopieren, wie unten gezeigt:

scp [email protected]:/etc/ipsec.d/cacerts/ca.cert.pem /etc/ipsec.d/cacerts/

Um die VPN-Client-Authentifizierung einzurichten, verwenden Sie die Datei /etc/ipsec.secrets:

nano /etc/ipsec.secrets

Fügen Sie die folgende Zeile hinzu:

vpnsecure : EAP "password"

Bearbeiten Sie dann die Hauptkonfigurationsdatei von strongSwan:

nano /etc/ipsec.conf

Fügen Sie die folgenden Zeilen hinzu, die Ihrer Domäne und Ihrem Passwort entsprechen, das Sie in der Datei /etc/ipsec.secrets angegeben haben.

conn ipsec-ikev2-vpn-client
auto=start
right=vpn.domain.com
rightid=vpn.domain.com
rightsubnet=0.0.0.0/0
rightauth=pubkey
leftsourceip=%config
leftid=vpnsecure
leftauth=eap-mschapv2
eap_identity=%identity

Starten Sie nun den StrongSwan VPN-Dienst mit dem folgenden Befehl:

systemctl start strongswan-starter

Überprüfen Sie als Nächstes den VPN-Verbindungsstatus mit dem folgenden Befehl:

ipsec status

Sie sollten die folgende Ausgabe erhalten:

Security Associations (1 up, 0 connecting):
ipsec-ikev2-vpn-client[1]: ESTABLISHED 28 seconds ago, 104.245.32.158[vpnsecure]...104.245.33.84[vpn.domain.com]
ipsec-ikev2-vpn-client{1}: INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: ca6f451c_i ca9f9ff7_o
ipsec-ikev2-vpn-client{1}: 10.10.10.1/32 === 0.0.0.0/0

Die obige Ausgabe zeigt an, dass zwischen Client und Server eine VPN-Verbindung hergestellt wird und dem Client-Rechner die IP-Adresse 10.10.10.1 zugewiesen wird.

Sie können Ihre neue IP-Adresse auch mit dem folgenden Befehl überprüfen:

ip a

Sie sollten die folgende Ausgabe erhalten:

eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:00:68:f5:20:9e brd ff:ff:ff:ff:ff:ff
inet 104.245.32.158/25 brd 104.245.32.255 scope global eth0
valid_lft forever preferred_lft forever
inet 10.10.10.1/32 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::200:68ff:fef5:209e/64 scope link
valid_lft forever preferred_lft forever

Fazit

In der obigen Anleitung haben wir gelernt, wie man einen StrongSwan VPN-Server und -Client unter Ubuntu 20.04 einrichtet. Sie können jetzt Ihre Identität schützen und Ihre Online-Aktivitäten sichern.