IPsec ist ein komplexes Protokoll, dass viele Optionen bietet und bei hohen Sicherheitsanforderungen bei Militär und Regierungen bevorzugt wird. Unter Linux gibt es mehrere Implementierungen für die IPsec Standard. Im folgenden wird strongSwan vewendet.
Das folgende Beispiel zeigt, wie man die IPsec Server von ProtonVPN mit strongSwan unter Ubuntu verwenden könnte. Als erstes ist die nötige Software zu installieren:
> sudo apt install strongswan libstrongswan-extra-plugins libcharon-extra-pluginsDie Konfiguration erfolgt als Full-Text-Adventure, da das NetworkManager GUI nicht alle nötigen Features unterstützt:
Da die Authentifizierung der VPN Server mit X509v3 Zertifikaten erfolgt, benötigt man das CA-Root Zertifikat von ProtonVPN, dass im Verzeichnis /etc/ipsec.d/cacerts/ zu speichern ist.
Aus Sicherheitsgründen verwendet strongSwan nur die CA-Root Zertifikate, die in diesem Verzeichnis liegen, und nicht die Sammlung von CAs des Betriebssystems.
In der Datei /etc/ipsec.conf konfiguriert man einen oder mehrere VPN Server, die man auf der Webseite von ProtonVPN findet. Die IP-Adressen der Server (right=…) kann man anhand der Servernamen (rightid=…) ermitteln oder man nimmt aus Faulheit den DNS Namen der Server.
Die Namen für die Verbindungen können frei gewählt werden, Haupsache wiedererkennbar:
conn proton-de13<USERNAME> (eap_identity=…) ist durch den individuellen Usernamen für den Login auf OpenVPN/IPsec Servern zu ersetzen, den man ebenfalls auf der ProtonVPN Webseite findet.
Die Konfiguration der sicherer Kryptoalgorithmen für die Verschlüsselung wäre hier auch möglich, aber das überlässt man am besten dem Server, um Probleme zu vermeiden.
Login Credentials für die VPN Server kann man in der Datei /etc/ipsec.secrets speichern:
<USERNAME> : EAP <PASSWORT>Die Login Credentials für die VPN Server sind nicht identisch mit den Username/Passwort Kombinationen für den Login auf der Webseite. Man findet die richtigen Daten nach dem Login.
Aus Sicherheitsgründen sollte die Datei /etc/ipsec.secrets nur für root lesbar sein:
> sudo chmod 0600 /etc/ipsec.secretsDer Aufbau der VPN Verbindungen erfolgt ebenfalls auf der Kommandozeile:
In der Statusübersicht kann man sich anschauen, welche Verbindungen möglich sind:
> sudo ipsec statusallEs sind zwei IPsec/IKEv2 Verbinden konfiguriert: proton-de13 und proton-it01.
Mit folgendendem Kommando kann man eine Verbindung aufbauen:
> sudo ipsec up proton-de13Es wird eine IPsec Verbindung zum VPN Server aufgebaut. Der VPN Server liefert die IP-Adresse des DNS Servers, die mit dem Kommando resolvconf systemweit gesetzt wird (bei Proton VPN ist der DNS Server 10.1.0.1) und das Routing wird angepasst. strongSwan hat keine Probleme mit IPv6, so dass keine Nachbearbeitungen per Script nötig sind.
Mit folgendendem Kommando kann man eine Verbindung zum VPN Server wieder trennen:
> sudo ipsec down proton-de13