Ein VPN ermöglicht Ihnen den sicheren Zugriff auf das Internet in einem nicht vertrauenswürdigen öffentlichen Wi-Fi-Netzwerk. Sie können sich über die verschlüsselte Verbindung mit Remote-VPN-Servern verbinden und anonym im Internet surfen.
strongSwan ist kostenlos, Open Source und die am weitesten verbreitete IPsec-basierte virtuelle private Netzwerkimplementierung, mit der Sie einen verschlüsselten sicheren Tunnel zwischen zwei oder mehr entfernten Netzwerken erstellen können.
strongSwan verwendet das IKEv2-Protokoll, das ein direktes IPSec-Tunneling zwischen dem Server und dem Client ermöglicht. strongSwan steht für Strong Secure WAN und unterstützt beide Versionen des automatischen Schlüsselaustauschs in IPsec VPN, IKE V1 und V2.
In diesem Tutorial zeigen wir Ihnen, wie Sie strongSwan VPN auf Ubuntu 18.04 installieren und konfigurieren.
Voraussetzungen
- Ein frisches Ubuntu 18.04 VPS auf der Atlantic.Net Cloud Platform.
- Ein auf Ihrem Server konfiguriertes Root-Passwort.
Schritt 1 – Erstellen Sie einen Atlantic.Net Cloud-Server
Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie Ubuntu 18.04 als Betriebssystem mit mindestens 1 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.
Sobald Sie sich bei Ihrem Ubuntu 18.04-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.
apt-get update -y
Schritt 2 – Kernel-Paketweiterleitung aktivieren
Zuerst müssen Sie den Kernel konfigurieren, um die Paketweiterleitung für IPv4 zu aktivieren. Sie können es konfigurieren, indem Sie die Datei /etc/sysctl.conf:
bearbeitennano /etc/sysctl.conf
Fügen Sie am Ende der Datei die folgenden Zeilen hinzu:
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. Führen Sie dann den folgenden Befehl aus, um die Einstellungen neu zu laden:
sysctl -p
Schritt 3 – StrongSwan installieren
Zuerst müssen Sie den strongSwan IPSec-Daemon in Ihrem System installieren. Sie können es installieren, indem Sie einfach den folgenden Befehl ausführen:
apt-get install strongswan libcharon-extra-plugins strongswan-pki -y
Sobald die Installation abgeschlossen ist, können Sie mit dem nächsten Schritt fortfahren.
Schritt 4 – Einrichten einer Zertifizierungsstelle
Jetzt müssen Sie das VPN-Serverzertifikat und den Schlüssel für den VPN-Client generieren, um die Authentizität des VPN-Servers zu überprüfen.
Generieren Sie zunächst einen privaten Schlüssel zum Selbstsignieren des CA-Zertifikats mit einem PKI-Dienstprogramm:
ipsec pki --gen --size 4096 --type rsa --outform pem > ca.key.pem
Erstellen Sie als Nächstes Ihre Stammzertifizierungsstelle und verwenden Sie den obigen Schlüssel, um das Stammzertifikat zu signieren:
ipsec pki --self --in ca.key.pem --type rsa --dn "CN=VPN Server CA" --ca --lifetime 3650 --outform pem > ca.cert.pem
Als Nächstes müssen Sie ein Zertifikat und einen Schlüssel für den VPN-Server erstellen, damit der Client die Authentizität des Servers mit dem soeben generierten CA-Zertifikat überprüfen kann.
Erstellen Sie zunächst mit dem folgenden Befehl einen privaten Schlüssel für den VPN-Server:
ipsec pki --gen --size 4096 --type rsa --outform pem > server.key.pem
Generieren Sie als Nächstes das Serverzertifikat, indem Sie den folgenden Befehl ausführen:
ipsec pki --pub --in server.key.pem --type rsa | ipsec pki --issue --lifetime 2750 --cacert ca.cert.pem --cakey ca.key.pem --dn "CN=vpn.example.com" --san="vpn.example.com" --flag serverAuth --flag ikeIntermediate --outform pem > server.cert.pem
Als nächstes müssen Sie das obige Zertifikat wie unten gezeigt in die entsprechenden IPSec-Zertifikatsverzeichnisse kopieren:
mv ca.cert.pem /etc/ipsec.d/cacerts/ mv server.cert.pem /etc/ipsec.d/certs/ mv ca.key.pem /etc/ipsec.d/private/ mv server.key.pem /etc/ipsec.d/private/
An diesem Punkt haben Sie alle Zertifikate bereit und können nun mit dem nächsten Schritt fortfahren.
Schritt 5 – StrongSwan konfigurieren
strongSwan hat eine Standardkonfigurationsdatei, die sich unter /etc/ipsec.conf befindet. Es wird empfohlen, die Standardkonfigurationsdatei umzubenennen und eine neue Datei zu erstellen.
Führen Sie den folgenden Befehl aus, um die Standardkonfigurationsdatei umzubenennen:
mv /etc/ipsec.conf /etc/ipsec.conf.bak
Als nächstes erstellen Sie eine neue Konfigurationsdatei wie unten gezeigt:
nano /etc/ipsec.conf
Fügen Sie die folgenden Zeilen 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 # defines the type of connection, tunnel. keyexchange=ikev2 fragmentation=yes forceencaps=yes dpdaction=clear dpddelay=300s rekey=no left=%any [email protected] # if using IP, define it without the @ sign leftcert=server.cert.pem # reads the VPN server cert in /etc/ipsec.d/certs leftsendcert=always leftsubnet=0.0.0.0/0 right=%any rightid=%any rightauth=eap-mschapv2 rightsourceip=192.168.0.0/24 rightdns=8.8.8.8 DNS to be assigned to clients rightsendcert=never eap_identity=%identity # defines the identity the client uses to reply to an EAP Identity request.
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Wo:
Konfigurationseinstellung : Gibt allgemeine Konfigurationsinformationen für IPSec an, die für alle Verbindungen gelten.
charondebug : Definiert, wie viel Charon-Debugging-Ausgabe protokolliert werden soll.
leftid : Gibt den Domänennamen oder die IP-Adresse des Servers an.
leftcert : Gibt den Namen des Serverzertifikats an.
leftsubnet : Gibt das private Subnetz hinter dem linken Teilnehmer an.
rightsourceip : Den Clients zuzuweisender IP-Adresspool.
rightdns : DNS, die Clients zugewiesen werden soll.
Schritt 6 – Authentifizierung konfigurieren
Zu diesem Zeitpunkt ist Ihr VPN-Server so konfiguriert, dass er Client-Verbindungen akzeptiert. Als Nächstes müssen Sie die Client-Server-Authentifizierungsdaten konfigurieren, um die privaten RSA-Schlüssel für die Authentifizierung zu definieren und die EAP-Benutzerdaten einzurichten.
nano /etc/ipsec.secrets
Fügen Sie die folgenden Zeilen hinzu:
: RSA "server.key.pem" .vpnsecure : EAP "your-secure-password"
Speichern und schließen Sie die Datei. Starten Sie dann den strongSwan-Dienst neu und ermöglichen Sie ihm, beim Neustart zu starten:
systemctl restart strongswan systemctl enable strongswan
Sie können den Status des strongSwan-Dienstes auch mit dem folgenden Befehl überprüfen:
systemctl status strongswan
Sie sollten die folgende Ausgabe sehen:
• strongswan.service - strongSwan IPsec IKEv1/IKEv2 daemon using ipsec.conf Loaded: loaded (/lib/systemd/system/strongswan.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-05-08 08:02:08 UTC; 8s ago Main PID: 29947 (starter) Tasks: 18 (limit: 2359) CGroup: /system.slice/strongswan.service ├─29947 /usr/lib/ipsec/starter --daemon charon --nofork └─29973 /usr/lib/ipsec/charon --debug-ike 2 --debug-knl 2 --debug-cfg 2 --debug-net 2 --debug-esp 2 --debug-dmn 2 --debug-mgr 2 May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] eap_identity=%identity May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] dpddelay=300 May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] dpdtimeout=150 May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] dpdaction=1 May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] sha256_96=no May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] mediation=no May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] keyexchange=ikev2 May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] adding virtual IP address pool 192.168.0.0/24 May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] loaded certificate "CN=vpn.example.com" from 'server.cert.pem' May 08 08:02:08 ubuntu1804 charon[29973]: 05[CFG] added configuration 'ipsec-ikev2-vpn'
Sie können die strongSwan-Zertifikate auch mit dem folgenden Befehl überprüfen:
ipsec listcerts
Sie sollten die folgende Ausgabe erhalten:
List of X.509 End Entity Certificates subject: "CN=vpn.example.com" issuer: "CN=VPN Server CA" validity: not before May 08 07:59:18 2020, ok not after Nov 18 07:59:18 2027, ok (expires in 2749 days) serial: 7b:f8:ab:dc:ca:64:dd:93 altNames: vpn.example.com flags: serverAuth ikeIntermediate authkeyId: 12:60:f6:05:15:80:91:61:d6:e9:8f:72:a3:a5:a5:ff:a7:38:1a:32 subjkeyId: bf:1d:b1:1b:51:a0:f7:63:33:e2:5f:4c:cb:73:4f:64:0f:b9:84:09 pubkey: RSA 4096 bits keyid: e4:72:d0:97:20:ec:a5:79:f2:e0:bf:aa:0e:41:a8:ec:67:06:de:ee subjkey: bf:1d:b1:1b:51:a0:f7:63:33:e2:5f:4c:cb:73:4f:64:0f:b9:84:09
An dieser Stelle ist Ihr strongSwan-VPN-Server installiert und konfiguriert. Sie können jetzt mit der Installation und Konfiguration des VPN-Clients fortfahren, um eine Verbindung zum VPN-Server herzustellen.
Schritt 7 – StrongSwan-Client installieren und konfigurieren
Melden Sie sich beim Clientsystem an und führen Sie den folgenden Befehl aus, um die strongSwan-Clientpakete zu installieren:
apt-get install strongswan libcharon-extra-plugins -y
Deaktivieren Sie nach der Installation den strongSwan-Dienst, um beim Booten zu starten:
systemctl disable strongswan
Kopieren Sie als Nächstes die Datei „ca.cert.pem“ mit dem folgenden Befehl vom VPN-Server auf den VPN-Client:
scp [email protected]:/etc/ipsec.d/cacerts/ca.cert.pem /etc/ipsec.d/cacerts/
Als nächstes konfigurieren Sie die VPN-Client-Authentifizierung, indem Sie die Datei /etc/ipsec.secrets:
bearbeitennano /etc/ipsec.secrets
Fügen Sie die folgende Zeile hinzu:
vpnsecure : EAP "your-secure-password"
Speichern und schließen Sie die Datei. Bearbeiten Sie dann die StrongSwan-Standardkonfigurationsdatei:
nano /etc/ipsec.conf
Fügen Sie die folgenden Zeilen hinzu:
conn ipsec-ikev2-vpn-client auto=start right=vpn.example.com rightid=vpn.example.com rightsubnet=0.0.0.0/0 rightauth=pubkey leftsourceip=%config leftid=vpnsecure leftauth=eap-mschapv2 eap_identity=%identity
Speichern und schließen Sie die Datei. Starten Sie dann den strongSwan-Dienst mit dem folgenden Befehl neu:
systemctl restart strongswan
Überprüfen Sie auf dem strongSwan-Server den VPN-Verbindungsstatus mit dem folgenden Befehl:
ipsec status
Sie sollten sehen, dass die IP 192.168.0.5 dem VPN-Client zugewiesen wird:
Security Associations (1 up, 0 connecting): ipsec-ikev2-vpn-client[1]: ESTABLISHED 1 minutes ago, [vpnsecure]...192.168.0.1[vpn.example.com] ipsec-ikev2-vpn-client{1}: INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: 74ab87d0db9ea3d5_i 684cb0dbe4d1a70d_r ipsec-ikev2-vpn-client{1}: 192.168.0.5/32 === 0.0.0.0/0
Schlussfolgerung
Herzliche Glückwünsche! Sie haben strongSwan VPN Server und Client auf Ubuntu 18.04 erfolgreich installiert und konfiguriert. Sie durchqueren jetzt sicher das Internet und schützen Ihre Identität, Ihren Standort und Ihren Datenverkehr vor Schnüfflern und Zensoren – starten Sie noch heute auf Ihrem VPS-gehosteten Ubuntu-Server von Atlantic.Net!
Erfahren Sie mehr über unsere VPS-Hosting-Services und Virtual Private Server.