Aktionen

FritzBox - Site to Site VPN zu pfSense 2.2

Aus znilwiki

Version vom 6. März 2021, 13:18 Uhr von BLinz (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)



Es gibt eine aktuellere Anleitung: FritzBox - Site to Site VPN zu pfSense 2.5



Ich hatte ja schon einen Artikel über die Verbindung von pfSense 2.1.5 zur Fritz!Box geschrieben: FritzBox - Site to Site VPN zu pfSense 2.1.5
Nach dem Update auf pfSense 2.2, Fritz!OS 6.23 und einer Email von Herrn Hoffmann mit den Hinweis auf überflüssige Einstellungen war ein neuerer Artikel dann gerechtfertigt.
Insbesondere hatte ich nach dem Update Probleme mit dem Tunnelaufbau nach der nächtlichen Zwangstrennung der Fritz!Box - was eine Umstellung des Modus von "Agressiv" auf "Main" scheinbar behoben hat.

Warning.png
Warnung: Achtung: Nach Update auf pfSense Version 2.2.3 ist keine Verbindung zur Fritz!Box möglich! Der Fehler ist in pfSense Version 2.2.4 wieder behoben! Diese Version ist aber noch nicht veröffentlicht und gibt es nur als Beta: https://snapshots.pfsense.org/ Alternativ müsst Ihr in der 2.2.3 die Datei /etc/inc/vpn.inc gegen die Version vom GitHub austauschen ( https://github.com/pfsense/pfsense/blob/master/etc/inc/vpn.inc ) austauschen.
Bei allen nachfolgenden Versionen bis zur 2.2.3 hatte ich das Problem nicht mehr



Ausgangslage

Ich habe folgende "Geräte":

  • pfSense 2.2 Firewall als virtuelle Maschine (VM) auf ESXi 5.5
    • WAN Schnittstelle hat die feste, öffentliche IP 198.100.144.136
    • LAN Schnittstelle hat die private IP 192.168.200.1
  • FritzBox 7390 mit Firmware Fritz!OS 6.23
    • WAN Schnittstelle hat dynamische, öffentliche IP
    • Öffentliche IP wird über DynDNS.org registriert und ist somit über testlinz.dyndns.org erreichbar
    • LAN-Schnittstelle hat die feste IP 192.168.1.200


Ich will hier also die Netzwerke 192.168.200.0/24 und 192.168.1.0/24 miteinander verbinden.

+-----------------------+       +----------------------------------+                      +-------------------------------------+      +-----------------------+
|  Netzwerk "Irgendwo"  |       |       Firewall pfSense           |                      |         Fritz!Box 7390              |      |   Netzwerk "Daheim"   |
+-----------------------+       +---------------+------------------+                      +---------------------+---------------+      +-----------------------+
| IP      192.168.200.0 |       |    Intern     |      Extern      |                      |       Extern        |   Intern      |      | IP      192.168.1.0   |
| Maske   255.255.255.0 | <-->  | 192.168.200.1 |  198.100.144.136 | <---- Internet ----> | testlinz.dyndns.org | 192.168.1.200 | <--> | Maske   255.255.255.0 |
| Gateway 192.168.200.1 |       +---------------+------------------+                      +---------------------+---------------+      | Gateway 192.168.1.200 |
+-----------------------+                                                                                                              +-----------------------+




Konfiguration pfSense

Wir melden und an der pfSense an und gehen auf

VPN - IPSec

Zunächst setzen wir oben den Haken bei Enable IPSec und klicken danach auf Save

FritzBox-pfSense-Site-to-Site-VPN-IPSec-001.png


Danach erstellen wir eine neue IPSec-Verbindung mit einem Klick auf das "+" Symbol rechts

FritzBox-pfSense-Site-to-Site-VPN-IPSec-002.png


Der neue Dialog ist die Konfiguration für die "Phase 1".



Phase 1

Die 3 Abschnitte füllt Ihr wie folgt aus (in Bildern etwas tiefer zu sehen):

  • Genernal Information
    • Key Exchange version V1
    • Internet Protocol IPv4
    • Interface WAN
    • Remote gateway DynDNS-Name eurer FritzBox
    • Description Beschreibung der Verbindung


  • Phase 1 proposal (Authentication)
    • Authentication method Mutal PSK
    • Negotiation mode Main
    • My identifier My IP address
    • Peer identifier Distinguished name --> DynDNS-Name eurer FritzBox
    • Pre-Shared Key ein Passwort aus Buchstaben und Zahlen
    • Policy Generation Default
    • Proposal Checking Default
    • Encryption algorithm 3DES
    • Hash algorithm SHA1
    • DH key group 1 (768 bit) <- WICHTIG!!!
    • Lifetime 28800


  • Advanced Options
    • NAT TRaversal Auto
    • Dead Peer Detection Enable DPD
      • 10 seconds
      • 5 retries



FritzBox-pfSense-Site-to-Site-VPN-IPSec-003.png
FritzBox-pfSense-Site-to-Site-VPN-IPSec-004-neu.png
FritzBox-pfSense-Site-to-Site-VPN-IPSec-005-neu.png



Im Anschluss einmal unten auf Save und danach oben wieder auf Apply changes



Phase 2

Zur Konfiguration der Phase 2 müsst zunächst links unten auf das "+" klicken:

FritzBox-pfSense-Site-to-Site-VPN-IPSec-006.png

und im Anschluss einen neuen Einrag mit dem "+" in der Mitte hinzufügen:

FritzBox-pfSense-Site-to-Site-VPN-IPSec-007.png


Die 3 Abschnitte füllt Ihr wie folgt aus (in Bildern etwas tiefer zu sehen):

  • Tunnels
    • Mode Tunnel IPv4
    • Local Network
      • Type: LAN subnet
      • Type: None
    • Remote Network
      • Type: Network
      • Address: Internes Netzwerk Fritzbox / 24
      • Die 24 steht für eine 24er Maske, also Subnetmask 255.255.255.0


  • Phase 2 proposal (SA/Key Exchange)
    • Protocol ESP
    • Encryption algorithms
      • 3DES
    • Hash algorithms
      • SHA1
    • PFS key group 1 (768 bit)
    • Lifetime 3600


  • Advanced Options
    • Automatically ping host Interne IP eurer Fritz!Box



FritzBox-pfSense-Site-to-Site-VPN-IPSec-008-neu.png



Wieder auf Save und danach auf Apply changes



Rules

Warning.png
Warnung: Wenn Ihr die Regel so baut wie diese hier Beschrieben ist lasst Ihr den Netzwerkverkehr für ALLE IPSec-VPN-Tunnel zu, nicht nur für diesen. Wollt Ihr das pro Tunnel verwalten so solltet Ihr bei der Regel als Quelle das Netzwerk der Fritz!Box angeben und als Ziel das lokale Netzwerk der pfSense


Geht auf

Firewall -> Rules -> IPSec

und baut eine neue Regel um den Datenverkehr aus dem Fritz!Box Netzwerk durchzulassen:

FritzBox-pfSense-Site-to-Site-VPN-IPSec-010.png


FritzBox-pfSense-Site-to-Site-VPN-IPSec-011.png


WICHTIG: Erstellt die gleich Regel noch einmal - mit ICMP. Sonst klappt zwar der Zugriff, aber es geht kein Ping durch die Leitung (fand ich sehr nervig!)

Damit sind wir auf der Seite der pfSense fertig!



Fritz!Box

Zunächst müsst eine neue Textdatei erstellen mit folgendem Inhalt:

vpncfg {
connections {
  enabled = yes;
  conn_type = conntype_lan;
  name = "VPN nach Irgendwo"; // NAME der Verbindung
  always_renew = yes; // Verbindung immer herstellen
  reject_not_encrypted = no;
  dont_filter_netbios = yes;
  localip = 0.0.0.0;
  local_virtualip = 0.0.0.0;
  remoteip = 198.100.144.136; // Feste oeffentliche IP der pfSense Firewall
  remote_virtualip = 0.0.0.0;
  localid {
    fqdn = "testlinz.dyndns.org"; // dyndns name der FritzBox
    }
  remoteid {
    ipaddr = 198.100.144.136; // Feste oeffentliche IP der pfSense Firewall
    }
  // mode = phase1_mode_aggressive; Alt, machte Probleme mit pfSense 2.2
  mode = phase1_mode_idp;
  phase1ss = "def/3des/sha";
  keytype = connkeytype_pre_shared;
  key = "einelangebuchstabenund1234567890";
  cert_do_server_auth = no;
  use_nat_t = no;
  use_xauth = no;
  use_cfgmode = no;
  phase2localid {
    ipnet {
      ipaddr = 192.168.1.0;
      mask = 255.255.255.0;
      }
    }
  phase2remoteid {
    ipnet {
      ipaddr = 192.168.200.0; // Das interne Netzwerk LAN hinter der pfSense
      mask = 255.255.255.0; // inklusive Subnetmask
      }
    }
  phase2ss = "esp-3des-sha/ah-no/comp-no/pfs"; // wichtig, da sonst kein Datenaustausch
  accesslist = "permit ip any 192.168.200.0 255.255.255.0"; // Firewall Einstellungen für pfSense Subnetz
  }
  ike_forward_rules = "udp 0.0.0.0:500 0.0.0.0:500",
                      "udp 0.0.0.0:4500 0.0.0.0:4500";
}

Kopiert euch das obige in eine Textdatei (.txt) und passt die Namen und IP-Adressen an:

  • alle 198.100.144.136 durch die öffentliche IP eurer pfSense
  • alle 192.168.200.0 durch das interne Netzwerk eurer pfSense
  • alle 192.168.1.0 durch das interne Netzwerk eurer Fritz!Box



Dann Importiert Ihr die Datei in eure Fritz!Box:

FritzBox-pfSense-Site-to-Site-VPN-IPSec-012.png


FritzBox-pfSense-Site-to-Site-VPN-IPSec-013.png


FritzBox-pfSense-Site-to-Site-VPN-IPSec-014.png


Dann wird die Datei Importiert und der Tunnel aufgebaut:

FritzBox-pfSense-Site-to-Site-VPN-IPSec-015.png


FritzBox-pfSense-Site-to-Site-VPN-IPSec-016.png



Das war schon alles!
Per Ping können wir nun die Verbindung testen.



Fehler mit IPv6 Protokoll

Falls der Verbindungsaufbau immer mal wieder nicht klappt und Ihr sowohl auf der Fritz!Box als auch auf der pfSense das IPv6 Protokoll aktiv habt schaut doch mal hier:

pfSense - IPSec mit IPv4 Remote IP wird aber IPv6 genommen




Kommentare

Loading comments...