stronzolios.kakaloidis
Goto Top

Ü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 Version Auto
Internet Protocol IPv4
Interface WAN
Remote Gateway my-dyndns-name.example.com # An eigenen Namen anpassen
Description Beliebige Beschreibung
Authentication Method Mutual PSK
Negotiation Mode Main
My identifier My IP address
Peer identifier Distinguished name, my-dyndns-name.example.com # An eigenen Namen anpassen
Pre-Shared Key T0pS3cr3t # mindestens 8 kreative Zahlen / Buchstaben (vielleicht sogar besser ein paar mehr, man muss sie sich ja nicht merken), entsprechend PSK in FritzBox
Encrption algorithm AES 256 bit
Hash algorithm SHA1
DH Key Group 2 (1024 bit)
Lifetime 3600 seconds
NAT Traversal Auto
Dead Peer Connection Enable DPD, 60 seconds, 5 retries

Advanced Settings:
    • Defaults, kein Haken bei Enable IPCompression

    back-to-topPhase 2:


    Mode Tunnel IPv4
    Local Network Type: Network, Address 172.25.0.0/16 # an lokales Netz anpassen
    NAT/BINAT Type: None # bei fixer IP Adresse der lokalen pfSense Box
    Remote Network Network, 192.168.56.0/24
    Protocol ESP
    Encryption algorithms 3DES
    Hash algorithm SHA1
    PFS key group 2 (1024 bit)
    Lifetime 3600 seconds
    Automatically ping host 192.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.

    Interface Source Source Port Destination Destination Port NAT Address NAT Port Static Port
    WAN 192.168.56.0/24 * * * WAN address * NO Alle Schleusen auf, alles rein
    WAN 192.168.56.0/24 * * 500 WAN address * NO Port 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
    ID Proto Source Port Destination Port Gateway Queue Schedule Description
    IPv4 TCP * * WAN address 500 (ISAKMP) * none
    IPv4 TCP * * WAN address 4500 (IPsec NAT-T) * none

    f5671dff3217227189039f4aecd1bd27

    Reiter IPsec

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

    ID Proto Source Port Destination Port Gateway Queue Schedule Description
    IPv4* * * * * * * none

    b6a087c843f9086c9996888b752bcba8

    back-to-topInterfaces: IPsec


    Enable interface Haken setzen
    IPv4 Configuration Type DHCP
    IPv6 Configuration Type bei 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:


    https://www.efw-forum.de/www/forum/viewtopic.php?t=1930
    http://avm.de/service/vpn/praxis-tipps/anpassung-einer-vpn-verbindung-v ...
    https://doc.pfsense.org/index.php/VPN_Capability_IPsec
    https://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.

Content-Key: 265647

Url: https://administrator.de/contentid/265647

Printed on: April 25, 2024 at 22:04 o'clock

Mitglied: 108012
108012 Mar 12, 2015 at 23:12:24 (UTC)
Goto Top
Hallo,

cool gemacht, Danke!


Gruß
Dobby
Member: schmidtshauser
schmidtshauser Mar 13, 2015 at 10:43:14 (UTC)
Goto Top
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
Member: aqui
aqui Mar 15, 2015, updated at Mar 09, 2023 at 20:00:51 (UTC)
Goto Top
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