Privacy Handbuch

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.

1. Beispiel: IPsec/IKEv2 Server von VPN Providern nutzen (Debian/Ubuntu)

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-plugins

Die Konfiguration erfolgt als Full-Text-Adventure, da das NetworkManager GUI nicht alle nötigen Features unterstützt:

  1. 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.

  2. 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
       left=%defaultroute
       leftsourceip=%config
       leftauth=eap
       eap_identity=<USERNAME>

       right=37.120.217.163
       rightsubnet=0.0.0.0/0
       rightauth=pubkey
       rightid=%de-13.protonvpn.com
       rightca=/etc/ipsec.d/cacerts/ProtonVPN_ike_root.der

       keyexchange=ikev2
       type=tunnel
       auto=add

    conn proton-it01
       left=%defaultroute
       leftsourceip=%config
       leftauth=eap
       eap_identity=<USERNAME>

       right=it-01.protonvpn.com
       rightsubnet=0.0.0.0/0
       rightauth=pubkey
       rightid=%it-01.protonvpn.com
       rightca=/etc/ipsec.d/cacerts/ProtonVPN_ike_root.der

       keyexchange=ikev2
       type=tunnel
       auto=add

    <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.

  3. 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.secrets

Der Aufbau der VPN Verbindungen erfolgt ebenfalls auf der Kommandozeile: