BOVPN-Vif einrichten

April 25, 2018 in watchguard ‐ 5 min read

In diesem Artikel geht es darum, wie man auf einer WatchGuard Firewall einen Branch Office VPN Tunnel mit Virtuellen Interfaces einrichten kann.

Man bezeichnet BOVPN-Vif auch als Route based VPN und (normales) BOVPN als Policy based VPN. Bei Normalem BOVPN werden die Pakete vom Kernel generiert und es gibt somit kein eingehendes Interface. Ein Paket, das von einer Zweigstelle zur Zentrale geschickt wird, würde sich dann so bewegen:

image

Bei BOVPN-Vif hingehen wird der Traffic nochmal verkapselt und es sieht dann folgendermaßen aus:

image

 

Das ermöglich z.b. einen TCPDUMP an dem Virtual Interface zu machen. Das erleichtert das Troubleshooting ungemein.

Grundsätzlich kann man sagen, dass Virtuelle Interfaces die neuere Technologie sind.

Bei BOVPN gilt:

  • Es ist einfach und sehr solide
  • Verbindet Netz zu Netz
  • Ermöglicht nur 1:1 Nat
  • Die Netze müssen explizit geroutet werden

Bei BOVPN-Vif gilt:

  • Es gibt eine 0.0.0.0/0 wildcard, die allen Traffic erlaubt
  • Es gibt ein Interface und es lassen sich Inbound-Firewallregeln schreiben
  • Kann Failover
  • Kann Natting
  • Kann Dynamisches Routing

Interfacekonfiguration:

Ich zeige in diesem Beispiel, wie eine BOVPN-Vif Konfiguration mit zwei Watchguards in einem Testsetup gebaut werden kann.

Als erstes solltet ihr die Geräte Factory resetten und euch mit beiden Firewalls verbinden. Anschließend vergebt Ihr den Geräten die 10.0.1.1, die 10.0.1.2 und hängt sie an einen Switch.

image

So ist es möglich, dass ihr euch mit dem WSM zu beiden Firewalls gleichzeitig verbinden könnt. Das macht das Konfigurieren und abgleichen von Parametern wesentlich einfacher.

image

Als nächstes richten wir auf beiden Firewalls jeweils auf ETH3 ein internes Netz mit aktivem DHCP ein. Dieses Netz wird wird später über dynamisches Routing und einem BOVPN-Vif miteinander verbunden.

image

Die Interface Konfiguration auf den Firewalls sollte etwa so aussehen:

image

 

Anschließend wollen wir ETH 2 auf beiden Firewalls als externes Interface definieren und eine IP Adresse geben. Ich habe in diesem Beispiel die Adressen 213.73.97.113 und 213.73.97.114 gewählt.

image

Ihr könntet natürlich auch private Adressen aus dem Klasse C Netz nutzen.

Da das Setup aber eh nicht ans Internet gelassen wird, macht es für uns keinen Unterschied. Beachtet auch, dass als Default Gateway die andere Firewall eingetragen wird, in einer Produktivumgebung würde hier der Next-Hop eingetragen werden.

image

 

BOVPN vorbereiten

Jetzt wo die Interfaces konfiguriert sind, geht es daran das BOVPN aufzusetzen. Generell gilt, ihr solltet euch über folgende Parameter vorab im Klaren sein.

Dieses Setup ist nur eine Beispiel, wie es eingerichtet werden kann.

Allgemein:

  • Tunnel Endpunkte
  • Gateway IDs

IKEv1 / IKEv2:

  • IKE Version
  • Authentifizierungsalgorithmus
  • Verschlüsselungsalgorithmus
  • Diffie-Hellmann Gruppe
  • Lifetime
  • Encryption Scheme
  • Negotioation Mode
  • DPD traffic idle timeout
  • DPD max retries
  • IKE keep alive

IPSEC:

  • Verschlüsselungprotokoll
  • Authentifizierungsalgorythmus
  • Verschlüsselungsalgorithmus
  • Encapsulation Mode
  • Perfect Foreword Security
  • PFS Gruppe
  • Key expiration time
  • Key expiration traffic

BOVPN-VIf aufsetzen

Als wählt ihr im Policy Manager VPN > BOVPN Virtual Interfaces…  

image

Hier wird euch direkt auffallen, dass die Einrichtung des BOVPN mit virtuellen Interfaces wesentlich intuitiver ist als das Normale BOVPN Setup. In der Kopfzeile geben wir dem Virtuellen Interface auf der Firewall einen Namen und legen fest, um welchen Gerätetyp es sich bei dem anderen Endpunkt handelt.

Dann passen wir im Reiter Gateway Settings folgende Einstellungen an:

  • Pre-Shared Key: Muss auf beiden Geräten selbstredend der Selbe sein
  • Interface Physical: Das physische Interface über welches der VPN Traffic geschickt werden soll
  • Gateway ID: IP Adresse des lokalen Gateways
  • Remote Gateway IP Address: IP Adresse des Tunnel Endpunkts, die andere Firewall
  • Remote Gateway ID: IP Adresse des Gateways am Tunnel Endpunkt

image

Auf der anderen Firewall konfigurieren wir das ganze genau andersherum:

image

Im Reiter VPN Routes könnten wir jetzt über Statische Routen die Netze 10.0.10.0/24 und 10.0.20.0/24 eintragen. In diesem Beispiel möchte ich aber dynamisches Routing verwenden, dazu später mehr.

Hier könnt ihr dem virtuellen Interface noch eine Adresse geben, ich verwende 10.0.99.1 und 10.0.99.2 für die beiden Firewalls.

image

Den nächsten Reiter den wir anpassen ist Phase 1 Settings. Hier passen wir folgende Einstellungen an:

  • IKE Version: 2
  • Transform: Sha2-256-AES
  • Key Group

image

Dann kümmern wir uns um die Phase 2 Settings. Hier sind wichtig:

  • Perfect Forward Security (PFS): Enabled
  • DF Group
  • IPSec Proposal: AES256-SHA256

image

Die Multicast Settings müssen wir nicht anfassen.

Jetzt nehmen wir uns dem Routing an. Ich nehme in diesem Beispiel BGP, ihr könnt aber auch ein anderes Protokoll verwenden wenn ihr dies möchtet. Ich erkläre die Konfiguration explizit nicht in diesem Artikel, da das Augenmerk auf der Einrichtung des Tunnels liegen soll.

Geht im Policy Manager auf Network > Dynamic Routing… aktiviert dynamisches Routing und wählt den Reiter BGP. Tragt hier folgendes ein:

image

Bitte verwendet eine AS Nummer, in diesem Fall 34001 und 34002 über 65000. Euer Testsetup sollte zwar vom Internet getrennt sein. Falls ihr allerdings irgendwie doch ins Internet Routet, solltet ihr wissen, dass BGP das Protokoll ist mit dem Carrier ihre Routen austauschen. Die AS Nummern über 65000 sind frei, alles darunter könnte die Nummer eine Autonomen Systems eines ISPs sein…

Als Nächstes müssen wir Multi-WAN konfigurieren, da wir nun mehr als ein externes Interface haben. Wenn wir dies nicht machen steht das Interface per Default auf FAILED und wird ignoriert.

Dazu wählen wir im Policy Manager nochmals Network > Configuration… und wechseln hier zu dem Multi-WAN Reiter. Wir definieren nun einen Pingcheck gegen die jeweils andere Firewall auf dem VPN Interface.

image

Damit dieser Pingcheck auch funktioniert und das Interface nicht im Status FAILED steht, müssen wir noch die ICMP Firewallregel auf den Geräten anpassen.

image

Anschließend speichert ihr auf beiden Firewalls die Config, verkabelt die Geräte und euer Tunnel sollte sollte online kommen. Zum testen könnt ihr jeweils einen Client mit den Netzen 10.0.10.0/24 und 10.0.20.0/24 verbinden.

Wenn sich die Clients erreichen können, ist der Tunnel erfolgreich aufgebaut und die Routen gelernt worden.

Cheers, Ori