Aktionen

FritzBox - Site to Site VPN zu pfSense 2.1.5

Aus znilwiki

Version vom 12. Juli 2015, 19:06 Uhr von BLinz (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Als Grundlage habe ich diesen Artikel hier genommen: http://www.networkmonkey.de/ipsec-vpn-zwischen-pfsense-20-und-avm-routern/
Aber wie schon so oft passte es mal wieder nicht ganz genau, ich hatte eine neuere pfSense Version usw.
Hat einige Versuche gebraucht - doch nun läuft der Tunnel Stabil - auch nach einer Zwangstrennung etc.


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








Ausgangslage

Ich habe folgende "Geräte":

  • pfSense 2.1.5 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.20
    • 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.1


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.1 | <--> | Maske   255.255.255.0 |
| Gateway 192.168.200.1 |       +---------------+------------------+                      +---------------------+-------------+      | Gateway 192.168.1.1   |
+-----------------------+                                                                                                            +-----------------------+




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
    • 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 aggressive
    • 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 Enable <- WICHTIG!!!
    • Dead Peer Detection Enable DPD
      • 10 seconds
      • 5 retries



FritzBox-pfSense-Site-to-Site-VPN-IPSec-003.png
Datei:FritzBox-pfSense-Site-to-Site-VPN-IPSec-004.png
FritzBox-pfSense-Site-to-Site-VPN-IPSec-005.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
      • AES -> auto
      • 3DES
    • Hash algorithms
      • MD5
      • 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.png
FritzBox-pfSense-Site-to-Site-VPN-IPSec-009.png



Wieder auf Save und danach auf Apply changes



Rules

Geht auf

Firewall -> Rules -> IPSec

und baut eine neue Regel um den Datenverkehr durchzulassen, das hier ist eine Regel die in beide Richtungen alles zulässt:

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


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


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;
  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: