Ein kostenloses IPSec Site-to-Site VPN mit Strongswan
May 12, 2025 | Kategorie: tutorials | Thema: sicherheit vpn

StrongSwan ist eine Open-Source IPsec-basiertes VPN-Lösung für Linux und andere Unix-Systeme. Es unterstützt IKEv1 und IKEv2, ist hochgradig konfigurierbar und eignet sich für viele Einsatzszenarien – vom einfachen Road-Warrior-VPN bis hin zu komplexen Netz-zu-Netz-Verbindungen mit mehreren Subnetzen.

Ein Site-to-Site VPN verbindet zwei komplette Netzwerke miteinander – z. B. den Hauptsitz eines Unternehmens mit einer Außenstelle. Dabei entsteht ein “virtueller Tunnel”, durch den Daten sicher übertragen werden – als wären beide Standorte im gleichen LAN.

Ein klassisches Beispiel:

  • Standort A: Büro in Wien, Netzwerk 192.168.10.0/24
  • Standort B: Büro in Salzburg, Netzwerk 192.168.20.0/24

Ziel: Beide Netzwerke sollen sich gegenseitig erreichen können – verschlüsselt und dauerhaft.

Zuerst installieren wir Strongswan auf beiden Endpunkten.

sudo apt update
sudo apt install strongswan

Wir nehmen folgendes Szenario an:

Server A (left):

  • Öffentliche IP: 1.1.1.1
  • Lokales Netz: 192.168.10.0/24

Server B (right):

  • Öffentliche IP: 2.2.2.2
  • Lokales Netz: 192.168.20.0/24

Beide Server erhalten eine identische, aber spiegelbildliche Konfiguration.

Danach erstellt man 2 Konfigurationsdateien. In die Datei /etc/ipsec.conf kommt die IPSec Konfiguration.

config setup
    charondebug="ike 1, knl 2, cfg 2, net 2, esp 2, dmn 2,  mgr 2"

conn site-to-site
    auto=start
    keyexchange=ikev2
    authby=secret
    left=1.1.1.1           # öffentliche IP von A
    leftsubnet=192.168.10.0/24   # internes Netz von A
    right=2.2.2.2           # öffentliche IP von B
    rightsubnet=192.168.20.0/24  # internes Netz von B
    ike=aes256-sha256-modp1024!
    esp=aes256-sha256!
    dpdaction=restart
    dpddelay=30s
    dpdtimeout=120s

Den PSK muss man in der Datei /etc/ipsec.secrets eintragen.

1.1.1.1 2.2.2.2 : PSK "EinStarkesPasswort123!"

Damit wäre die Grundkonfiguration erledigt und der Tunnel kann aufgebaut werden. Um den Traffic zwischen den Subnetzen zu routen muss man IP Forwarding einrichten.

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

und die Pakete in das richtig Subnetz routen.

iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -d 192.168.20.0/24 -j ACCEPT

To be continued…

Beitrag auf Github bearbeiten
Suche
Weiterlesen