VPN Tunnel zwischen pfSense und Fritzbox

Seit einigen Jahren ist es mit Fritzboxen möglich, VPN Tunnel aufzubauen. Die Konfiguration ist auf der Box bewusst einsteigerfreundlich belassen, die Tunnelparameter sind größtenteils vorgegeben und können nicht verändert werden. Daher muss die Seite der pfSense Firwall sich anpassen.

Mit pfSense 2.2.3 gab es ein Problem mit IPsec. Tunnel zu Fritzboxen haben damit nicht funktioniert. Es gab zunächst einen Workaround, inzwischen (ab 2.2.4) ist das Problem behoben (vgl. https://forum.pfsense.org/index.php?topic=87579.0)

Sofern die Fritzbox keine feste, öffentliche IP Adresse hat, empfehle ich, sie bei MyFritz zu registrieren. Dadurch bekommt sie einen DynDNS-Namen. Dieser ist zwar relativ lang und nicht einfach zu merken, er muss aber in der Konfiguration nur zwei Mal eingetragen werden. Für den Zweck reicht das allemal. Das folgende Beispiel geht davon aus, dass die Fritzbox-Seite eine dynamische und die pfSense-Seite eine feste IP Adresse hat.

pfSense

Die Konfiguration liegt unter VPN -> IPsec.

Phase 1

  • Key-Exchange version: V1
  • Internet Protocol: IPv4
  • Interface: WAN
  • Remote gateway: < DynDNS-Name der Fritzbox >
  • Description: < Freitextfeld zur Beschriftung >
  • Authentication method: Mutual PSK
  • Negotiation mode: Aggressive
  • My identifiert: My IP address
  • Peer identifier: Distinguished name < DynDNS-Name der Fritzbox >
  • Pre-Shared Key: < möglichst langer und komplizierter gemeinsamer Schlüssel >
  • Encrytion algorithm: 3DES
  • Hash algorithm: SHA1
  • DH key group: 1 (768 bit)
  • Lifetime: 28800s

Phase 2

  • Mode: Tunnel IPv4
  • Local Network: Type: Network, Address: < lokales Netzwerk der pfSense >
  • Remote Network: Type: Network, Address: < lokales Netzwerk der Fritzbox >
  • Description: < Freitextfeld zur Beschriftung >
  • Protocol: ESP
  • Encryption algorithms: AES (128 bits), 3DES
  • Hash algorithms: MD5, SHA1
  • PFS key group: 1 (768 bit)
  • Lifetime: 3600s

Unter Status -> IPsec lässt sich dann die Statusseite für die VPNs aufrufen. Von dort können Tunnel auch händisch gestartet und gestoppt werden. Wichtig ist natürlich, dass man auch daran denkt, entsprechende Firewallregeln zu definieren, die den Verkehr in und aus dem Tunnel erlauben.

Fritzbox

Für die Fritzbox wird eine Konfigurationsdatei benötigt, die über das Webinterface der Box eingespielt wird. Eine Beispielkonfig liegt hier zum Download. Sie muss an den entsprechenden Stellen natürlich angepasst werden (IP der Gegenstelle, Lokale- und Remotenetzwerke, Pre-Shared Key und ACL).

Fritzbox-Konfig

Update – neue Verschlüsselungsparameter

Mittlerweile habe ich mein Setup mit moderneren Verschlüsselungsparameter stabil laufen. Die pfSense läuft aktuell in Version 2.3.4, die Fritzbox (7390) in der Version 06.83. Folgende Parameter werden verwendet:

Phase 1:

  • AES-256
  • SHA-1
  • DH-Group 14
  • Lifetime 3600s

Phase 2:

  • AES-256
  • SHA-1
  • PFS Group 14
  • Lifetime 3600s

Außerdem läuft der Tunnel jetzt im Main-Mode und nicht mehr im unsicheren Aggressive-Mode.

Natürlich muss dazu auch die Fritzbox-Konfig angepasst werden. Drei Variablen sind im Konfigfile zu ändern:

mode = phase1_mode_idp;
phase1ss = "dh14/aes/sha";
phase2ss = "esp-aes256-3des-sha/ah-no/comp-lzs-no/pfs";

Update: 03.02.17 – Screenshots aktualisiert
Update: 11.09.17 – Aktualisierung bzgl. Verschlüsselungsparameter
Update: 05.11.17 – Fritzbox-Beispielkonfig aktualisiert

VPN Fritz!Box AVM IPsec pfsense

Vorheriger Post
Nächster Post