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 das IKEv1- und IKEv2-Protokoll für den sicheren Verbindungsaufbau. Sie können seine Funktionalität mit integrierten Plugins erweitern.
In diesem Tutorial erklären wir Schritt für Schritt, wie man einen KEv2-VPN-Server mit StrongSwan auf Ubuntu 20.04 einrichtet.
Voraussetzung
• Zwei Systeme mit Ubuntu 20.04-Server
• Auf beiden Servern ist ein Root-Passwort konfiguriert
StrongSwan installieren
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 Client-Seite zu überprüfen.
Erstellen Sie zunächst mit dem folgenden Befehl einen privaten Schlüssel für die Root-CA:
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 schließlich 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
An diesem Punkt 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
Speichern und schließen Sie 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:
bearbeitennano /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, damit StrongSwan beim Systemstart gestartet werden kann:
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
Speichern und schließen Sie die Datei und laden Sie dann die neuen Einstellungen mit dem folgenden Befehl neu:
sysctl -p
Installieren und konfigurieren Sie den StrongSwan-Client
In diesem Abschnitt installieren wir den StrongSwan-Client auf dem Remote-Computer und verbinden uns mit dem VPN-Server.
Installieren Sie zuerst 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 wie unten gezeigt kopieren:
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 eine VPN-Verbindung zwischen Client und Server hergestellt wird und die IP-Adresse 10.10.10.1 dem Client-Rechner 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
Schlussfolgerung
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.