Inhaltsverzeichnis

IPSec

IPsec ist eine weit verbreitete Lösung für VPNs. IPSec ist ein Framework welches Mechanismen vorschreibt und auf Schicht 3 (Vermittlungsschicht) des ISO/OSI-Modells läuft. Daher sind viele Einstellungen möglich und Komplexität erhöht bekanntlich die Schwierigkeit der Konfiguration. Zusätzlich kann es zu Problemen aufgrund unterschiedlicher Implementierungsgrade der Hersteller.

:!: Manche Konfigurationen sind anfällig für Angriffe:

  1. ESP im Tunnelmodus mit „confidentiality only“ oder mit Integritätsprüfung durch höhere Protokolle.
  2. manche Konfigurationen mit AH.

Siehe NISCC Vulnerability Advisory IPSEC - 004033.

Clients

strongswan Tunnel

# ipsec.conf

# PSK -> /etc/ipsec.secrets

config setup
  # strictcrlpolicy=yes
  # uniqueids = no
  charondebug="cfg 2, chd 2, esp 2, ike 2, knl 2, lib 2, net 2, tls 2"

conn CONNECTION1

  auto=start
  authby=secret #this specifies how the connection is authenticated
  
  type=tunnel   #the type of connection
  left=gw1.firma1.tld    #This is the public ip address of server A
  leftsubnet=1.2.3.4/24    #This is the subnet/private ip of server A
  right=gw2.firma2.tld    #This is the public ip address of server B/remote server
  rightsubnet=5.6.7.8/24    #This is the subnet/private ip of server B
  keyexchange=ikev2     #Internet key exchange version
  ike=aes256-sha256-modp2048     #Internet key exchange, type of encryption (modp2048 = group14)
  ikelifetime=86400s    #Time before re-authentication of keys
  lifetime=3600s
  esp=aes256-sha256-modp2048    #Encapsulation security suite of protocols

# generate PSK: dd if=/dev/urandom count=1 bs=32 2>/dev/null | base64 /etc/ipsec.secrets

$left $right : PSK "this_is_the_PSK_change_it!"

Routing aktiveren

Wenn routing nötig:

# cat >> /etc/sysctl.conf << EOF
net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
EOF

sysctl -p

Verwaltungsbefehle

sudo ipsec restart

sudo ipsec statusall

sudo ipsec status