In diesem How To zeigen wir, wie sich mit strongSwan unter Linux eine IPSec client-to-site VPN-Verbindung mit einer Securepoint Firewall aufbauen lässt. IPSec bietet dabei einige Vorteile, unter anderem eine sehr hohe VPN-Performance und ein hohes Sicherheitsniveau.

In unserem Beispiel verwenden wir Ubuntu Server 22.04.3 LTS als Betriebssystem.

1. Konfiguration der VPN auf der Securepoint Firewall

Schritt 1: Neue IPSec Verbindung hinzufügen und Verbindungstyp “Roadwarrior” auswählen.

Schritt 2: Name der VPN-Verbindung wählen und als Verbindungstyp „IKEv2 – Native“ auswählen.

Schritt 3: Gateway ID für die Firewall vergeben (beliebige Zeichenfolge – wichtig für die Einstellung auf dem Client). Authentifizierungsmethode auswählen, in unserem Beispiel Pre-Shared Key und lokales, für den Client freigegebenes, Netzwerk auswählen.

Schritt 4: Gateway ID für den Client festlegen (beliebige Zeichenfolge – wichtig für die Einstellung auf dem Client) und IP-Adresse (CIDR /32) oder IP-Adress-Pool für den Client konfigurieren.

Schritt 5: Netzwerkobjekt für das VPN-Netzwerk oder einen VPN-Host im Portfilter anlegen.

Schritt 6: Regeln im Portfilter anlegen. Hier sollten nur Dienste ausgewählt werden, die auch wirklich benötigt werden und nicht „any“. Blockierte Verbindungen lassen sich im Log nachvollziehen.

2. strongSwan auf dem Client installieren

Schritt 1: strongSwan installieren

Schritt 2: IPSec Verbindung konfigurieren. Die Konfiguration der IPSec Verbindung wird in der Datei /etc/ipsec.conf vorgenommen. Wir verwenden hier die Anwendung “vi” zum Bearbeiten der ipsec.conf Datei.

Die Konfiguration findet über “left” und “right” statt. Hier ist die linke Seite der IPSec-Client und die rechte Seite der IPSec-Server. Mit dieser Konfiguration wird die VPN-Verbindung automatisch neu gestartet.

root@ubuntu-test:~# vi /etc/ipsec.conf
# ipsec.conf - strongSwan IPsec configuration file
# basic configuration

config setup
        charondebug="cfg 2, chd 2, esp 2, ike 2, knl 2, lib 2, net 2, tls 2" #für Debugging

conn IPSec-RW
        authby=secret
        auto=start
        keyexchange=ikev2
        leftid=RW-IPSec-Client
        leftsubnet=10.0.42.0/24
        leftsourceip=0.0.0.0
        leftfirewall=no
        leftauth=psk
        right=[Öffentliche IP oder Hostname / DynDNS-Adresse]
        rightsubnet=10.20.0.0/24
        rightid=RW-IPSec-Server
        rightauth=psk
        ikelifetime=1h
        dpdaction=restart
        dpddelay=10s
        dpdtimeout=60s
        closeaction=restart
        keyingtries=%forever

Schritt 3: Schlüssel zur Verifizierung in die Datei /etc/ipsec.secrets eintragen. In unserem Beispiel tragen wir hier unseren zuvor erstellten Pre-Shared Key ein. Die Identifizierung des richtigen Schlüssels für die Verbindung findet hier über die IDs des Clients und der Firewall statt.

root@ubuntu-test:~# vi /etc/ipsec.secrets
# This file holds shared secrets or RSA private keys for authentication.

# RSA private key for this host, authenticating it to any other host
# which knows the public part.
@RW-IPSec-Client @RW-IPSec-Server : PSK "twt}qsG1w:[[;H*?HSC@GCQ4Z0kSsig]"

Schritt 4: IPSec-VPN starten und Status überprüfen. Hier lässt sich erkennen, ob die Verbindung erfolgreich aufgebaut werden konnte. Wenn ICMP Echo Requests im Portfilter erlaubt wurden, kann zum Testen der Ping-Befehl für einen Host im Zielnetzwerk benutzt werden.

root@ubuntu-test:~# ipsec status
Security Associations (1 up, 0 connecting):
IPSec-RW[1]: ESTABLISHED 117 seconds ago, 192.168.100.109[RW-IPSec-Client]...xxx.xxx.xxx.xxx[RW-IPSec-Server]
IPSec-RW{1}:  INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: cacf0cd8_i cb580403_o
IPSec-RW{1}:   10.0.42.0/24 === 10.20.0.0/24

Schreibe einen Kommentar