Wir haben eine Handvoll Kunden, die nutzen eine FRITZ!Box als Router. Da wir viel via VPN machen (siehe Für verschiedene Kunden-Szenarien VPN-Router in der Werkstatt virtualisieren), wie z.B. neue PCs vorbereiten, Service-Fälle oder Rechner-Wechsel, usw., wurde es notwendig ein Site-to-Site VPN, oder wie es bei AVM heißt “LAN-LAN-Kopplung”, umzusetzen.

Zum Einsatz kommt in unserer Werkstatt ein virtueller OpenWrt-Router (auf Basis unserer Vorlage) und auf Kunden-Seite läuft eine FRITZ!Box 7490. Daraus ergibt sich, das sich OpenWrt via WireGuard zur FRITZ!Box verbindet.

Die FRITZ!Box dient nur als Router, dahinter befindet sich eine Windows-Domäne mit eigenem DNS-Server. Auf der FRITZ!Box-Seite wird (für diesen Beitrag) das Netz 192.168.178.0/24 genutzt und auf der OpenWrt-Seite wird das Netz 192.168.20.0/24 (wie in der AVM-Doku, siehe Quellen) verwendet.

FRITZ!Box konfigurieren

Warum auch immer setzt AVM zwingend ein konfiguriertes DDNS (Muss kein MyFritz sein!) voraus, andernfalls kann man kein WireGuard in den FRITZ!Boxen konfigurieren. Dies gilt auch, wenn man die “LAN-LAN-Kopplung” mit zwei FRITZ!Boxen realisieren möchte! Ist diese Voraussetzung gegeben, kann man direkt unter

Internet - Freigaben - VPN (WireGuard)

nach einem Klick auf “Verbindung hinzufügen” den Einrichtungsassistenten starten.

Anbei als Bilderstrecke der Ablauf:

Wichtig: Das Herunterladen der Einstellungen im letzten Dialog ist extrem relevant, denn später erhält man diese Möglichkeit nicht mehr!

Hat man die Konfigurationsdatei heruntergeladen zusätzlich noch unter

Internet - Freigaben - VPN (WireGuard) - <Name der Site-to-Site-Verbindung>

den öffentlichen Schlüssel kopieren, da man diesen für die Einrichtung der Gegenstelle benötigt.

OpenWrt konfigurieren

Die zuvor von der FRITZ!Box heruntergeladene “wg_config.conf”-Datei mit einem Editor, z.B. Notepad, öffnen und wie folgt fortfahren:

  • Unter “Network – Interfaces” auf “Add new interface” klicken.
  • Einen Namen, z.B. wg0, eingeben und bei “Protocol” “WireGuard VPN” auswählen.
  • Auf “Create interface” klicken.
  • Auf der Registerkarte “General” den privaten Schlüssel aus der Konfigurationsdatei und den zuvor kopierten öffentlichen Schlüssel eintragen.
  • Bei “IP Addresses” die IP-Adresse aus der Konfigurationsdatei, z.B. “192.168.178.1/24”, eintragen.
  • Zur Registerkarte “Firewall Settings” wechseln.
  • “Create / Assign firewall-zone:” Aufklappen und bei “custom” einen Namen, wie z.B. “wg”, eintragen.
  • Zur Registerkarte “Peers” wechseln.
  • Auf “Add Peer” klicken.
  • Bei “Description:” einen Namen eingeben.
  • Den öffentlichen Schlüssel der FRITZ!Box und den PSK aus der Konfigurationsdatei eintragen.
  • Bei “Allowed IPs” das Netzwerk der Gegenstelle aus der Konfigurationsdatei, z.B. “192.168.178.0/24”, eintragen.
  • “Route Allowed IPs” aktivieren.
  • Bei “Endpoint Host” die öffentliche IP-Adresse oder den FQDN/DDNS der Gegenstelle eintragen.
  • Bei “Endpoint Port” den auf der Gegenstelle verwendeten Port eintragen.
  • Bei “Persistent Keep Alive” den Wert “25” eintragen.
  • Auf “Save” klicken.
  • Zu “Network – Firewall – General Settings” wechseln, beim Eintrag “wg => lan” auf “Edit” klicken und wie folgt konfigurieren:
    Input: accept
    Allow forward to destination zones: lan
    Allow forward from source zones: lan
  • Auf “Save” klicken.
  • Auf “Save & Apply” klicken.

Damit ist die eigentliche Konfiguration für das Site-to-Site-VPN auf der OpenWrt-Seite abgeschlossen. Damit die DNS-Namensauflösung funktioniert, kann man das DNS-Suffix und den DNS-Server der Gegenstelle via DHCP an die Clients auf der OpenWrt-Seite verteilen lassen:

    • Unter “Network – Interfaces – lan” auf “Edit “klicken und auf die Registerkarte “DHCP Server – Advanced Settings” wechseln.
    • Bei “DHCP-Options” folgendes Eintragen:
      6, <DNS-Server der Gegenstelle>, 9.9.9.9

      Bemerkung: In diesem Beispiel wird neben dem DNS-Server der Gegenstelle zusätzlich noch ein weiterer DNS-Service, hier von Quad9, übermittelt. Man könnte auch die IP-Adresse von OpenWrt eintragen. Der Hintergedanke dazu ist, funktioniert das VPN nicht würde auch überhaupt kein DNS klappen. Damit wenigstens das Internet funktioniert, sollte ein zweiter Eintrag vorhanden sein.

    • Auf “Save” klicken.
    • Zu “Network – DHCP and DNS” und auf der Registerkarte “General” bei “Local domain:” die DNS-Domain der Gegenstelle eintragen.
      Bemerkung: In diesem Beispiel ist es so, das alle Standorte bzw. Systeme sich in der selben DNS-Domain befinden (sollen). Das ist hilfreich, damit die Auflösung zu Ressourcen die nur mit dem Hostname angegeben sind, z.B. “\\srv01\share”, funktioniert.
    • Auf “Save” klicken.
    • Auf “Save & Apply” klicken.

Troubleshooting

Auch wenn sich diese Zeilen einfach lesen und es letztlich, wenn man es weiß, kein Problem ist eine solche Vernetzung zu realisieren, so hat es mich dennoch zwei Abende und einen Nachmittag gekostet bis es richtig lief. Daher anbei ein paar Anmerkungen und ein paar Tipps:

Dem aufmerksamen Leser bzw. WireGuard-Admin dürfte auffallen, das kein Transfer-Netz verwendet wird. Bis zu diesem Aufbau wusste ich nicht, das dies bei WireGuard so möglich ist, AVM hat mich eines besseren belehrt.

In OpenWrt fällt einem spätestens unter “Network – Interfaces” auf, das sowohl die LAN- als auch die WireGuard-Schnittstelle die gleiche IPv4-Adresse verwenden. In diesem Kontext ist das offenbar normal.

Unter OpenWrt lässt sich tcpdump installieren und ausführen. Mit folgenden Befehl auf der Konsole oder via ssh kann der ein-/ausgehende Datenverkehr auf der WireGuard-Schnittstelle angezeigt werden:

tcpdump -i wg0

Testweise kann man unter OpenWrt die Firewall deaktivieren, um so prüfen zu können, ob diese eine erfolgreiche Datenübertragung durch den Tunnel verhindert:

/etc/init.d/firewall stop

Bei einer FRITZ!Box besteht die Möglichkeit den Datenverkehr mitzuschneiden um diesen anschließend in Wireshark analysieren zu können. Siehe

AVM FRITZ!Box: Paketmitschnitt erstellen

So fand sich während des Aufbau des hier beschriebenen VPNs folgendes beim Ping-Test:

854 20.685518 192.168.20.1 192.168.178.31 ICMP 102 Destination unreachable (Port unreachable)

Dies entspricht der Meldung unter Windows beim Ping:

... Zielport nicht erreichbar.

Kurzum: Die Firewall blockiert. So fand ich heraus, das auf der OpenWrt-Seite bei der Firewall-Konfiguration für WireGuard bei “Input” “accept” gesetzt sein muss.


Wie hat Dir der Artikel gefallen ?

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (2 Stimmen, durchschnittlich 5,00 von 5 Sternen)
Loading...

Du möchtest den Blog unterstützen ?

Neben PayPal.ME gibt es noch weitere Möglichkeiten, lies hier wie du diesen Blog unterstützen kannst.


Quellen

AVM – Service – VPN – WireGuard-VPN zwischen zwei FRITZ!Box-Netzwerken einrichten