Strongswan IPSEC Linux SWANCTL PSK - Security und Firewall Labor

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Installation

  • apt update
  • apt install strongswan strongswan-swanctl libstrongswan-extra-plugins

Voraussetzungen

  • Beide Systeme: Linux mit strongSwan und VICI-Unterstützung (swanctl)
  • Nur VICI (swanctl), keine ipsec.conf oder ipsec.secrets
  • XX eigene Seite, gegenüberliegende Seite YY

Szenario

Einstellung fw.it2XX.int fw.it2YY.int
IP Address 192.168.hs.2XX 192.168.hs.2YY
Internes Netz 172.26.2XX.0/24, 10.2XX.1.0/24 172.26.2YY.0/24, 10.2YY.1.0/24
Pre-Shared Key (PSK) 123Start$
Phase 1 AES256 – SHA256 – DH16
Phase 2 AES256 – SHA256 – DH16

VICI aktivieren

  • vim /etc/strongswan.d/charon/vici.conf

Die Zeile muss enthalten:

load = yes

Damit Verbindungen beim Start geladen werden

  • vim /etc/strongswan.conf
charon {
    load_modular = yes
    plugins {
        include strongswan.d/charon/*.conf
    }
    start-scripts {
        load-all = /usr/sbin/swanctl --load-all
    }
}
include strongswan.d/*.conf

Konfiguration

  • Diese Datei ist auf beiden Seiten identisch aufgebaut – nur die Adressen unterscheiden sich.
  • vim /etc/swanctl/swanctl.conf
connections {
  site-to-site {
    local_addrs  = 192.168.hs.2XX
    remote_addrs = 192.168.hs.2YY
    local {
      auth = psk
      id = 192.168.hs.2XX
    }
    remote {
      auth = psk
      id = 192.168.hs.2YY
    }
    children {
      net {
        local_ts  = 172.26.2XX.0/24,10.2XX.1.0/24
        remote_ts = 172.26.2YY.0/24,10.2YY.1.0/24
        esp_proposals = aes256-sha256-modp4096
        start_action = start
        close_action = none
        dpd_action = restart
        mode = tunnel
      }
    }
    version = 2
    proposals = aes256-sha256-modp4096
  }
}
secrets {
  psk-1 {
    id = 192.168.hs.2XX
    secret = "123Start$"
  }
  psk-2 {
    id = 192.168.hs.2YY
    secret = "123Start$"
  }
}

Dienst starten

  • systemctl enable strongswan-swanctl
  • systemctl start strongswan-swanctl
  • swanctl --load-all

Verbindung prüfen

Listet alle geladenen Verbindungen aus swanctl.conf
  • swanctl -L
Zeigt aktive IKE- und CHILD-SAs, wenn der Tunnel aufgebaut ist
  • swanctl -l
Journalctl zur Fehlerdiagnose
  • journalctl -u strongswan-swanctl

Fehlerbehandlung

Falls beim Initiieren der Verbindung folgende Meldung erscheint:

not establishing CHILD_SA ... due to existing duplicate

→ Tunnel ist bereits aktiv. Prüfung mit:

  • swanctl --list-sas

Neuaufbau erzwingen mit:

  • swanctl --terminate --child net
  • swanctl --initiate --child net