Ü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 Ελλάδα:
Hauptnetz in der Zentrale:
Aussenstelle:
Advanced Settings:
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 Ελλάδα:
Eckdaten
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
Einstellungen in der pfSense
Phase 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
- 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.
- Freigaben - Dynamic DNS
- Dynamic DNS benutzen - Haken setzen
- Parameter entsprechend eintragen (Dynamic DNS Anbieter, Domainname, Benutzername, ein eigenes DynDNS Kennwort (nicht der PSK oben!)
Phase 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 |
pfSense, weitere Einstellungen
Firewall: NAT: Port Forward
Reiter Outbound
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; |
Firewall - 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 |
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 |
Interfaces: IPsec
Enable interface | Haken setzen |
IPv4 Configuration Type | DHCP |
IPv6 Configuration Type | bei Bedarf setzen, ist bei mir None |
Alles andere Default
Settings in der Fritz Box:
Vorbereitung 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).
Konfigurationsdatei
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
Weitere Parameter:
Firewalleinstellungen seitens der FritzBox sind nicht notwendig.
Freigaben - Portfreigaben: Keine
Weiterfü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.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 265647
Url: https://administrator.de/contentid/265647
Ausgedruckt am: 21.11.2024 um 23:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo,
cool gemacht, Danke!
Gruß
Dobby
cool gemacht, Danke!
Gruß
Dobby
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
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
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
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