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
2. strongSwan auf dem Client installieren
Schritt 1: strongSwan installieren
root@ubuntu-test:~# sudo apt-get install -y strongswan libcharon-extra-plugins strongswan-pki
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 start
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