IPSec einrichten (Linux)

Hinweis

 

Das Mobile Pools IPSec Gateway ist eine open source Lösung des strongSwan Projektes und verwendet den neuen IKEv2 Standard in IPSec

Auf dieser Seite werden zwei verschiedene Möglichkeiten zur Einrichtung des IPSec-Protokolls beschrieben. Es wird jedoch nur eine einzige Variante davon benötigt, also entweder StrongSwan oder StrongSwan NetworkManager GUI.

StrongSwan

Installation

Die meisten Distributionen liefern mittlerweile Pakete für StrongSwan mit, ansonsten kann man sie auch online herunterladen (z.B. für OpenSUSE). Man kann auch direkt den Quelltext von strongswan.org herunterladen und selbst kompilieren.

IPsec-Konfiguration

Zur Konfiguration müssen einige Dateien editiert werden. In /etc/ipsec.secrets muss folgendes enthalten sein (ausser diesen Einträgen sollten höchstens noch Kommentare in der Datei stehen):

/etc/ipsec.secrets

: RSA key.pem "<ZERTIFIKAT-PASSWORT>"

 

Zusätzlich muss die Datei /etc/ipsec.conf angepasst werden. Auch hier sollten ausser den unten angegebenen Einträgen keine weiteren vorhanden sein, außer man hat weitere IPSec-Verbindungen. Bitte beachten Sie, dass an der hervorgehobenen Stelle noch Ihr Account-Name eingetragen werden muss.

/etc/ipsec.conf

 

# ipsec.conf - strongSwan IPsec configuration file
# basic configuration
config setup
        # strictcrlpolicy=yes
        # uniqueids = no         

# Add connections here.
conn %default
        #left=%defaultroute
        leftsourceip=%config
        leftcert=cert.pem
        leftid=[ACCOUNT]@informatik.uni-freiburg.de
        leftfirewall=no
        rightsubnet=0.0.0.0/0
        rightid=root@vpn-mopo.vpn.uni-freiburg.de
        auto=add

conn mopo
        right=132.230.151.174 # MoPo via Internet

 

Installation des x.509v3 Zertifikates

Das in Schritt 2 erstellte und heruntergeladene Zertifikat muss noch für die Verwendung in Linux aufbereitet werden, da die aktuellen IPSec-Implementierungen leider keine Keys im PKCS12-Format unterstützen. Dazu wird das Programm OpenSSL benötigt, welches bei allen gängigen Linux-Distributionen vorhanden ist.

Die folgenden Befehle extrahieren aus dem PKCS12-Zertifikat die entsprechenden Zertifikate und den PrivateKey. Dabei muss jeweils das gewählte Passwort eingegeben werden, beim letzten Befehl sogar dreimal.
Hinweis: die option "-legacy" wird erst ab Ubuntu 22.04 oder opsenssl Version 3.0 benötigt

openssl pkcs12 -in cert.p12 -legacy -clcerts -nokeys -out /etc/ipsec.d/certs/cert.pem
openssl pkcs12 -in cert.p12 -legacy -cacerts -nokeys -out /etc/ipsec.d/cacerts/root.pem
openssl pkcs12 -in cert.p12 -legacy -nocerts -nodes | openssl rsa -des3 -out /etc/ipsec.d/private/key.pem

 
Mit folgendem Befehl überprüfen ob die strongSwan Installation den Verschlüsselungsalgorithmus 3DES unterstützt:

 

# ipsec listalgs

List of registered IKE algorithms:

  encryption: AES_CBC[aes] RC2_CBC[rc2] 3DES_CBC[openssl] CAMELLIA_CBC[openssl] CAST_CBC[openssl] 
              BLOWFISH_CBC[openssl] DES_CBC[openssl] DES_ECB[openssl] NULL[openssl]
...

 

Falls nicht bitte das openssl Plugin für strongSwan installieren. Auf Debian basierten Distributuionen lautet das Paket: libstrongswan-standard-plugins

 

Nun sollte alles funktionieren. IPSec kann mit "ipsec start" gestartet werden. Danach stellt man die die Mopo-Verbindung mit "ipsec up mopo" oder "ipsec up mopo-home" her - je nachdem, ob man vom Uni-WLAN oder von außerhalb übers Internet darauf zugreifen möchte. Mit "ipsec down" wird die Verbindung beendet.

 

StrongSwan NetworkManager GUI

  • Voraussetzungen

    Installation des strongSwan Network-Manager  Plugin:
     
    • Das zu installierende Paket für debian basierte Distributionen heisst: "strongswan-nm"

    Internet Verbindung herstellen:
    • Falls Webseiten nur zum Teil ode langsam geladen werden, die "MTU" (Maximum Transfer Unit) auf "1000Byte" einstellen.

      Hinweis: Die "MTU" Einstellung befindet sich im NetworkManger unter der aktiven "Netzwerkverbindung" (Ethernet, WiFi)  
  • Konfiguration

    Zertifikate vorbereiten:

    Für die Verbindung wird das "Gateway Zertifikat", das "x509 Benutzer Zertifikat" und der zugehörige "Private Schlüssel" benötigt.

    Das "Gateway Zertifikat" kann hier herunter geladen werden:
    Gateway Zertifikat (SHA1 Fingerprint=74:9E:99:CE:92:D8:EA:46:27:C9:20:14:D7:C8:C0:8D:4C:39:C0:3C)
    (verifizierbar mit folgendem Befehl: "openssl x509 -in cert-gw.pem -fingerprint -sha1 -noout" )

    Das "User Zertifikat" und der zugehörige "Private Schlüssel" wird aus der im CA-Bereich herunterladbaren PKCS#12 Datei (cert.p12) extrahiert, die Passwortabfragen beziehen sich auf die Passphrase des Zertifikats:
    Hinweis: die option "-legacy" wird erst ab Ubuntu 22.04 oder opsenssl Version 3.0 benötigt
    openssl pkcs12 -in cert.p12 -legacy -clcerts -nokeys -out cert.pem
    openssl pkcs12 -in cert.p12 -legacy -nocerts -nodes | openssl rsa -des3 -out key.pem
    Es empfiehlt sich die drei Dateien in einem Verzeichnis im home abzulegen und von da aus im NetworkManager zu importieren.

    Entsprechend dem unten stehenden Screenshot, die drei Dateien importieren und Einstellungen übernehmen.

    Verbindungbeschreibung erstellen:


    Hier am Beispiel des NetworkManagers unter Kubuntu 18.04:
    Mit "Rechts-Klick" auf das "NetworkManger Icon" im Panel "Netzwerverbindung konfigurieren" wählen.
    Enstprechend dem unten stehenden Screen-Shot eine "Strongswan VPN Verbindung" hinzufügen und konfigurieren:

  • Verbindung starten/beenden

    mit "Click" auf das NetworkManager Icon und Auswahl des VPNs "MoPo" wird die Verbindung gestartet bzw
    beendet. Beim starten der Verbindung wird nach der Passphrase des privaten Schlüssels gefragt.
    Hinweise:
    - Logeinträge stehen in "/var/log/syslog"