stronzolios.kakaloidis

Über IPsec und das präzise Zusammenspiel zwischen Fritz Box und pfSense

καλημέρα, liebe Kolleginnen und Kollegen,

das Zusammenspiel mit einer Φριτζ Βοξ (in Deutschland besser bekannt als "Fritz Box") und der OpenSource Firewall pfSense gestaltet sich ja bekanntermassen für viele als schwierig. Selbst ich als Profi (MCSE) musste lange herumfummeln, bis ich eine funktionierende Kombination von Parametern identifizieren konnte, die mit beiden Gegenstellen kompatibel ist. Nun aber kann ich mich von remote per IPsec mit dem Netzwerk meines neuen Arbeitgebers verbinden (wunderschön im griechischen "Outback" auf der romantischen Pelopónnisos Πελοπόννησος), wo ich als Experte für IT-Sicherheit arbeite. Die Moral: Man darf sich von Technik niemals kleinkriegen lassen, niemals. Es gibt immer Hoffnung! So klappt es - zumindest hier in Ελλάδα:

back-to-topEckdaten

Hauptnetz in der Zentrale:
    • pfSense: 2.2-release (amd64)
    • IP Adressen intern 172.25.0.0/16 (privater IP Adressbereich); für ein 24er Netz wäre entsprechend z.B. 172.25.135.0/24 zu wählen.
    • WAN extern: WAN extern über öffentliche IP-Adresse erreichbar. Hier im Beispiel ist die öffentliche IP-Adresse 123.213.21.230

Aussenstelle:
    • Fritz OS 6.23 (FB 7390)
    • IP Adressen intern 192.168.56.0/24 (privater IP Adressbereich)
    • Extern: DynDNS Name (hier im Beispiel): my-dyndns-name.example.com

back-to-topEinstellungen in der pfSense

back-to-topPhase 1:

Key Exchange VersionAuto
Internet ProtocolIPv4
InterfaceWAN
Remote Gatewaymy-dyndns-name.example.com# An eigenen Namen anpassen
DescriptionBeliebige Beschreibung
Authentication MethodMutual PSK
Negotiation ModeMain
My identifierMy IP address
Peer identifierDistinguished name, my-dyndns-name.example.com# An eigenen Namen anpassen
Pre-Shared KeyT0pS3cr3t# mindestens 8 kreative Zahlen / Buchstaben (vielleicht sogar besser ein paar mehr, man muss sie sich ja nicht merken), entsprechend PSK in FritzBox
Encrption algorithmAES 256 bit
Hash algorithmSHA1
DH Key Group2 (1024 bit)
Lifetime3600 seconds
NAT TraversalAuto
Dead Peer ConnectionEnable DPD, 60 seconds, 5 retries

Advanced Settings:
    • Defaults, kein Haken bei Enable IPCompression

    back-to-topPhase 2:

    ModeTunnel IPv4
    Local NetworkType: Network, Address 172.25.0.0/16# an lokales Netz anpassen
    NAT/BINATType: None# bei fixer IP Adresse der lokalen pfSense Box
    Remote NetworkNetwork, 192.168.56.0/24
    ProtocolESP
    Encryption algorithms3DES
    Hash algorithmSHA1
    PFS key group2 (1024 bit)
    Lifetime3600 seconds
    Automatically ping host192.168.56.1


    back-to-toppfSense, weitere Einstellungen

    back-to-topFirewall: NAT: Port Forward

    Reiter Outbound

      • Mode: Automatic outbound NAT rule generation (IPsec passthrough included) wählen.Sicherstellen, dass 192.168.56.0/24 in den "Automatic rules" auftaucht.
      • Wenn nicht, Hybrid Mode bzw. Manual Mode wählen und folgende Regeln zufügen.

    InterfaceSourceSource PortDestinationDestination PortNAT AddressNAT PortStatic Port
    WAN192.168.56.0/24***WAN address*NOAlle Schleusen auf, alles rein
    WAN192.168.56.0/24**500WAN address*NOPort 500 geöffnet, wird bei "Automatic outbound NAT rule generation" automatisch für IPsec passthrough erzeugt;

    ed95df863bbbc94692cb5cf429b5c7f6

    3f78363d21f52c266d0dceca8d305821

    back-to-topFirewall - Rules

    pfSense benötigt die UDP-Ports 500 und 4500 (für NAT-T, falls erforderlich) sowie für das Protokoll ESP.

    Reiter WAN
    IDProtoSourcePortDestinationPortGateway QueueScheduleDescription
    IPv4TCP**WAN address500 (ISAKMP)*noneIPSec Port 500 UTP / ESP
    IPv4TCP**WAN address4500 (IPsec NAT-T)*noneIPSec Port 4500 UDP - NAT Traversal / IP Passthrough

    f5671dff3217227189039f4aecd1bd27

    Reiter IPsec

    Eine Regel hinzufügen, die den gesamten Traffic durch den IPsec Tunnel erlaubt

    IDProtoSourcePortDestinationPortGateway QueueScheduleDescription
    IPv4*******noneAllow everything through IPsec tunnel

    b6a087c843f9086c9996888b752bcba8

    back-to-topInterfaces: IPsec

    Enable interfaceHaken setzen
    IPv4 Configuration TypeDHCP
    IPv6 Configuration Typebei Bedarf setzen, ist bei mir None

    Alles andere Default

    03108a6724e56357d351ad9d578ff845



    back-to-topSettings in der Fritz Box:

    back-to-topVorbereitung DynDNS

    DynDNS entsprechend der Anleitung des DynDNS Providers einrichten. Achtung: Es dauert einige Zeit, bis die DynDNS Einstellungen verfügbar sind (da DNS ein dezentral organisierter Dienst ist. Der neue DynDNS - Eintrag muss erst im Netz propagiert werden).

      • Freigaben - Dynamic DNS
      • Dynamic DNS benutzen - Haken setzen
      • Parameter entsprechend eintragen (Dynamic DNS Anbieter, Domainname, Benutzername, ein eigenes DynDNS Kennwort (nicht der PSK oben!)

    back-to-topKonfigurationsdatei

    Configuration file, zu importieren unter Internet - Freigaben - VPN (anpassen, # Kommentare in Rauten löschen #):

    /*
     * C:\Users\Stronzolios\Desktop\remote-access.cfg
     * Thu Feb 12 22:02:51 2015
     */
    
    vpncfg {
            connections {
                    enabled = yes;
                    conn_type = conntype_lan;
                    name = "VPN to Office";
                    always_renew = yes;
                    reject_not_encrypted = no;  # Unverschlüsselter Traffic / Internetverkehr (Surfen) geht nicht über VPN #
                    dont_filter_netbios = yes;   # NetBIOS Anfragen (Domäne) führen zum Aufbau eines Tunnels #
                    localip = 0.0.0.0;
                    local_virtualip = 0.0.0.0;
                    remoteip = 123.213.21.230;
                    remote_virtualip = 0.0.0.0;   # der Parameter  " remotehostname = "zentrale.example.com"; " ist weggelassen, es geht auch ohne #
    		keepalive_ip = 172.25.135.100;  # IP Adresse eines ständig anpingbaren Rechners / Devices im Remotenetz, z.B. Server; dieser Parameter hält die Verbuindung aufrecht #
                    localid {
                            fqdn = "my-dyndns-name.example.com";
                    }
                    remoteid {
                            ipaddr = 123.213.21.230;
                    }
                    mode = phase1_mode_idp;   # Main mode; sichere, pfSense erlaubt Auswahl des Aggressive Mode nicht immer #
                    phase1ss = "alt/aes/sha";   # also Diffie-Hellman Group 2 (1024 bit), AES-256 und SHA-1 #
                    keytype = connkeytype_pre_shared;
                    key = " T0pS3cr3t";  # mindestens 8 originelle Zahlen / Buchstaben, entsprechend PSK in pfSense #
                    cert_do_server_auth = no;
                    use_nat_t = no;  # da die Gegenstelle eine statische IP-Adresse hat #
                    use_xauth = no;
                    use_cfgmode = no;
                    phase2localid {
                            ipnet {
                                    ipaddr = 192.168.56.0;  # Anpassen, lokaler Adressbereich #
                                    mask = 255.255.255.0; 
                            }
                    }
                    phase2remoteid {
                            ipnet {
                                    ipaddr = 172.25.0.0;   # Anpassen, remote Adressbereich #
                                    mask = 255.255.0.0;
                            }
                    }
                    phase2ss = "esp-3des-sha/ah-no/comp-no/pfs";
                    accesslist = "permit ip any 172.25.0.0 255.255.0.0";  # hier nur den IP-Adressbereich des Remote-Netzes eintragen, nicht denjenigen des lokalen Netzes #
            }
            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";
    }
    
    
    // EOF
    

    back-to-topWeitere Parameter:

    Firewalleinstellungen seitens der FritzBox sind nicht notwendig.

    Freigaben - Portfreigaben: Keine


    back-to-topWeiterführende Links:

    efw-forum.de/www/forum/viewtopic.php?t=1930
    avm.de/service/vpn/praxis-tipps/anpassung-einer-vpn-verbindung-v ...
    doc.pfsense.org/index.php/VPN_Capability_IPsec
    doc.pfsense.org/index.php/Routing_internet_traffic_through_a_sit ...


    Bis zum nächsten Mal und viel Erfolg!

    Euer symphatischer, griechischer Sysadmin Stronzolios



    Es muss ja auch mal EU-Hilfe aus Griechenland geben.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 265647

Url: https://administrator.de/tutorial/ueber-ipsec-und-das-praezise-zusammenspiel-zwischen-fritz-box-und-pfsense-265647.html

Ausgedruckt am: 18.07.2025 um 13:07 Uhr

108012
108012 13.03.2015 um 00:12:24 Uhr
Hallo,

cool gemacht, Danke!


Gruß
Dobby
schmidtshauser
schmidtshauser 13.03.2015 um 11:43:14 Uhr
Hallo,

danke für den Beitrag. Ich muss zugeben, dass es mit dem FritzOS 6.05 und pfsense noch viel einfacher war. Insbesondere beim Aufbau von mehreren Tunneln mit identischem Endpunkt (Phase1), aber unterschiedlicher Netzwerkmasken (Phase2). Wir haben deshalb auch nie das Update auf OS 6.20 oder höher durchgeführt. Falls bedarf besteht, könnte ich das alte FritzBox OS 6.05 (für die 7490) hier zur Verfügung stellen (gibt es aber auch im o2-Forum)

Greetings

Schmidti
aqui
aqui 15.03.2015, aktualisiert am 09.03.2023 um 21:00:51 Uhr
Im hiesigen IPsec Tutorial ist die Lösung ebenfalls aufgeführt:
IPsec VPNs einrichten mit Cisco, Mikrotik, pfSense Firewall, FritzBox, Smartphone sowie Shrew Client Software

Forumskollege @the-buccaneer hat hier noch weiteres Finetuning beschrieben mit der FritzBox:
Site to Site VPN IPSec PfSense -- Fritzbox Tunnel down nach Disconnect oder Reboot