Site-to-Site VPN zwischen pfSense und ZyXEL ZyWALL
Mit einem Site-to-Site VPN lassen sich die lokalen IP-Netzwerke von zwei Standorten mitander verbinden.
Geräte wie Server, Netzwerkfestplatten und Telefonanlagen sind damit aus beiden vernetzten Standorten
erreichbar.
Zum Aufbau eines Site-to-Site VPN dürfen sich die IP-Netze der Standorte nicht überlappen.
Jeder Standort benötigt einen VPN-Router.
Dieses Tutorial beschreibt den Aufbau einer LAN-LAN-Kopplung mit einer ZyXEL ZyWALL 2 Plus (ZyNOS Firmware-Version: v4.04(XU.6)c0)
und einer pfSense Version 1.2.3-RC1.
Jeder Router benötigt eine statische WAN-IP oder einen Hostnamen (z.B. von DynDNS).
Im Beipiel kommt IPSec im Aggressive Mode zum Einsatz.
VPN Netzwerkaufbau
In unserem Beispiel verbindet der VPN-Tunnel die beiden Standorte Frankfurt und Berlin. Als IP-Adressen kommen private Adressen
entsprechend RFC 1918 zum Einsatz. Das IP-Adresse 172.32.1.0/24 aus Frankfurt soll mit dem Netz 10.0.0.0/24 in Berlin
verbunden werden.
VPN Parameter
Der VPN-Tunnel wird mit den folgenden Parametern aufgebaut.
|
1
|
2
|
Standort
|
|
Frankfurt
|
Berlin
|
Gerät
|
|
ZyXEL ZyWALL 2 Plus
|
pfSense (HP ProLiant)
|
Rolle
|
|
VPN-Gateway
|
VPN-Gateway
|
WAN-IP oder Hostname
|
A
|
ffm-vpn.example.org
|
berlin.example.org
|
Lokales IP-Netz / Maske
|
B
|
172.32.1.0/24
|
10.0.0.0/24
|
Pre Shared Key PSK
|
C
|
verysecretkey
|
Austauschverfahren
|
D
|
Aggressive Mode
|
Dead Peer Detection (DPD)
|
E
|
aus
|
Identifier Type
|
F
|
Domain Name
|
Domain Name
|
Identifier
|
G
|
ffm-vpn.example.org
|
berlin.example.org
|
|
|
|
|
Phase 1
|
Lifetime
|
H
|
28800 sec
|
Verschlüsselung
|
I
|
Rijndael (AES)
|
Hashalgorithmus
|
J
|
SHA-1
|
Diffie-Hellman-Gruppe
|
K
|
DH-Group 5
|
|
Phase 2
|
Lebensdauer
|
L
|
28800 sec
|
Verschlüsselung
|
M
|
Rijndael (AES)
|
Hashalgorithmus
|
N
|
SHA-1
|
Perfect Forward Secrecy
|
O
|
DH-Group 5
|
Bitte wählen Sie für den produktiven Einsatz einen möglichst starken PSK.
VPN unter pfSense einrichten
pfSense ist eine freie Software zum Aufbau von Routern und Firewalls. Sie läuft auf PC-Hardware, PC Engines Alix
sowie Soekris net-Boards. Im Beispiel ist pfSense auf einen HP ProLiant-Server installiert.
IPSec aktivieren
Auf der pfSense muss IPSec aktiviert werden. Aktivieren Sie dazu unter
VPN: IPsec
Enable IPSec.
Mit dem Plus-Symbol können Sie einen neuen IPSec-Tunnel anlegen.
Zuerst werden die allgemeinen Parameter für die VPN-Verbindung eingestellt.
Da beide VPN-Router direkt mit dem Internet verbunden sind wird kein NAT-Traversal (NAT-T) benötigt.
Als Remote Subnet geben Sie das LAN der ZyWALL (Zelle B1) an. Remote Gateway ist der Hostname des WAN-Interfaces in Frankfurt (Zelle A1).
Für die Phase 1 (IKE) wird Aggressive Mode mit AES, SHA-1 und DH-Gruppe 5 eingestellt.
Die Phase 2 setzt ebenfalls aus AES und SHA-1.
Perfect Forward Secrecy (PFS) wird mit
Diffie-Hellman-Gruppe 5 (1536 Bit) aktiviert.
Nach dem Speichern müssen die Änderungen noch mit der Schaltfläche Apply changes bestätigt werden.
Damit ist der IPSec-Tunnel auf der pfSense fertig konfiguriert.
VPN auf der ZyWALL einrichten
Auf der ZyWALL wird der IPSec-Tunnel in zwei Schritten eingerichtet.
Gehen Sie zuerst auf
Security >> VPN >> VPN Rules (IKE) >> Add Gateway Policy
und klicken Sie auf das Plus-Symbol.
Tragen Sie die Parameter entsprechend der Konfigurationstabelle ein.
Nach dem Speichern müssen Sie unter
Security >> VPN >> VPN Rules (IKE) >> Add Network Policy
noch eine Network Policy anlegen.
Der VPN-Tunnel ist jetzt bereit für einen ersten Test. Auf der ZyWALL können
Sie den Tunnel über Telefon-Symbol mit dem blauen Pfeil aufbauen.
Stimmen alle Parameter sollte der IPSec-Tunnel nach wenigen Sekunden betriebsbereit sein.
Fehlersuche
Bei Problemen mit dem VPN-Tunnel lohnt sich ein Blick in die Logs der beiden Router.
IPSec VPN Log von pfSense
racoon: ERROR: phase1 negotiation failed due to time up.
racoon: [IPSec-Tunnel zur ZyWALL Frankfurt]: ERROR: phase2 negotiation failed due to time up waiting for phase1.
Hier antwortet die Gegenstelle einfach nicht. Ursache können eine Firewall, eine fehlerhafte IP-Adresse oder
Fehler in der IKE-Konfiguration sein.
racoon: WARNING: No ID match.
racoon: ERROR: fatal INVALID-ID-INFORMATION notify messsage, phase1 should be deleted.
Hier stimmen die ID-Types nicht überein.
racoon: ERROR: rejected hashtype: DB(prop#1:trns#1):Peer(prop#1:trns#1) = SHA:MD5
racoon: ERROR: no suitable proposal found.
racoon: ERROR: failed to get valid proposal.
Der Hashtype beider VPN-Gateways stimmt nicht überein.
racoon: ERROR: rejected dh_group: DB(prop#1:trns#1):Peer(prop#1:trns#1) = 1536-bit MODP group:768-bit MODP group
Die Diffie-Hellman-Gruppe für Phase 1 ist falsch konfiguriert.
racoon: WARNING: trns_id mismatched: my:AES peer:3DES
racoon: ERROR: not matched
racoon: ERROR: no suitable policy found.
racoon: ERROR: failed to pre-process packet.
Die pfSense möchte den Tunnel in der Phase 2 mit AES verschlüsseln, die ZyWALL steht auf 3DES.
VPN Log der ZyWALL
[ID] : Rule [Tunnel nach Berlin] Phase 1 ID mismatch
[ID] : ID type mismatch. Local / Peer: E-MAIL / DNS
Hier stimmt der ID-Type nicht überein. Die ZyWALL steht auf Email, die pfSense auf der Gegenseite steht auf DNS.
[SA] : Rule [Tunnel nach Berlin] Phase 1 authentication algorithm mismatch
[SA] : No proposal chosen
Hier steht die ZyWALL auf MD5 und die pfSense auf SHA1 für IKE.
Häufigste Ursache für Probleme beim Aufbau einer IPSec-Verbindung sind Tippfehler in den IP-Adressen, Netzmasken und Proposals.
Weiterführende Informationen zu VPN
Bei Fragen zu VPN wird Ihnen im Netzwerkforum geholfen.
|