Wireguard over pfSense (IPv6 Endpoint)
Hallo zusammen,
Ich habe dank eurer Unterstützung vor Kurzem ein Problem im Zusammenhang mit Wireguard lösen können.
Mit eurem Know-How bekomme ich sicherlich auch das folgende Problem in den Griff, das mir ehrlich gesagt etwas Kopfzerbrechen bereitet:
Undzwar habe ich einige NetGate Appliances an verschiedenen Standorten im Einsatz.
(Netgate 4100 und einige NetGate 1100)
All diese Standorte werden über denselben ISP mit FTTH versorgt. Wie heute häufig üblich über CGNAT.
Ich kann demnach von außen nur die IPv6 Adressen direkt erreichen, welche ich vom ISP via PD erhalte.
Alle Interfaces auf den Netgates erhalten entsprechend eine IPv6 über Track WAN Interface.
Da Wireguard bei pfSense auf jeder IPv6 und sämtlichen IPv4 Adressen aller Interfaces nach Verbindungen lauscht, werden Zugriffe über Firewall Rules geregelt.
Die Idee ist jetzt von außen via Wireguard auf die Netgate zu connecten und auf das WebInterface zuzugreifen,
eigentlich keine große Sache, oder? 😊
Nun, die Wireguard Verbindung auf der Netgate habe ich konfiguriert.
Ebenso eine Firewall Rule auf WAN erstellt, die ermöglicht das von außen auf eine bestimmte IPv6 der Netgate auf dem vorher ausgewählten WG UDP Port (exemplarisch: 55555/UDP) verbunden werden kann.
Abgesehen davon natürlich nur alles auf dem Wireguard Tunnel Interface erlaubt. (nur für Testzwecke)
So sieht praktisch die conf auf einer der pfSense Boxen aus:
So hingegen schauts auf dem Peer aus, der letzten Endes zur NetGate verbinden soll:
Die Verbindung zur Netgate funktioniert soweit. Ich kann alle Interfaces auf der Netgate pingen und ebenso Geräte in den Subnetzen 192.168.155.0/24 und 192.168.166.0/24 vom wg peer aus anpingen.
Was allerdings nicht funktioniert, ist das Web Interface der Netgate (oder irgendeines anderen Geräts) aufzurufen, obwohl ich wiegesagt alle IP Adressen die dafür in Frage kommen anpingen kann. Jetzt werdet ihr vermutlich denken, das dies mit den Firewall Rules auf der NetGate zusammenhängt, die den Zugriff auf diverse WebInterfaces blockt, allerdings habe ich das mehrfach geprüft und sichergestellt, das Verbindungen durchgehen.
Interessanterweise kann ich aber über den wg peer SSH Verbindungen zu Clients in einem der o.g Subnetze aufbauen, nur eben Verbindungen über den Webbrowser scheinen nicht zu funktionieren.
Habt ihr eventuell einen Lösungsansatz oder eine Idee, diemir weiterhelfen könnte?
Vorab vielen Dank.
Ich habe dank eurer Unterstützung vor Kurzem ein Problem im Zusammenhang mit Wireguard lösen können.
Mit eurem Know-How bekomme ich sicherlich auch das folgende Problem in den Griff, das mir ehrlich gesagt etwas Kopfzerbrechen bereitet:
Undzwar habe ich einige NetGate Appliances an verschiedenen Standorten im Einsatz.
(Netgate 4100 und einige NetGate 1100)
All diese Standorte werden über denselben ISP mit FTTH versorgt. Wie heute häufig üblich über CGNAT.
Ich kann demnach von außen nur die IPv6 Adressen direkt erreichen, welche ich vom ISP via PD erhalte.
Alle Interfaces auf den Netgates erhalten entsprechend eine IPv6 über Track WAN Interface.
Da Wireguard bei pfSense auf jeder IPv6 und sämtlichen IPv4 Adressen aller Interfaces nach Verbindungen lauscht, werden Zugriffe über Firewall Rules geregelt.
Die Idee ist jetzt von außen via Wireguard auf die Netgate zu connecten und auf das WebInterface zuzugreifen,
eigentlich keine große Sache, oder? 😊
Nun, die Wireguard Verbindung auf der Netgate habe ich konfiguriert.
Ebenso eine Firewall Rule auf WAN erstellt, die ermöglicht das von außen auf eine bestimmte IPv6 der Netgate auf dem vorher ausgewählten WG UDP Port (exemplarisch: 55555/UDP) verbunden werden kann.
Abgesehen davon natürlich nur alles auf dem Wireguard Tunnel Interface erlaubt. (nur für Testzwecke)
So sieht praktisch die conf auf einer der pfSense Boxen aus:
[Interface]
PrivateKey = $VeryPrivate
ListenPort = 55555
Address = 10.5.5.1/24
[Peer]
PublicKey = $PeerPublicKey
AllowedIPs = 10.5.5.0/24
So hingegen schauts auf dem Peer aus, der letzten Endes zur NetGate verbinden soll:
[Interface]
PrivateKey = $VeryPrivate
ListenPort = 61585
Address = 10.5.5.10/32
[Peer]
PublicKey = $NetGatePublicKey
AllowedIPs = 10.5.5.0/24, 192.168.155.0/24, 192.168.166.0/24
Endpoint [IPv6 NetGate]:55555
Was allerdings nicht funktioniert, ist das Web Interface der Netgate (oder irgendeines anderen Geräts) aufzurufen, obwohl ich wiegesagt alle IP Adressen die dafür in Frage kommen anpingen kann. Jetzt werdet ihr vermutlich denken, das dies mit den Firewall Rules auf der NetGate zusammenhängt, die den Zugriff auf diverse WebInterfaces blockt, allerdings habe ich das mehrfach geprüft und sichergestellt, das Verbindungen durchgehen.
Interessanterweise kann ich aber über den wg peer SSH Verbindungen zu Clients in einem der o.g Subnetze aufbauen, nur eben Verbindungen über den Webbrowser scheinen nicht zu funktionieren.
Habt ihr eventuell einen Lösungsansatz oder eine Idee, diemir weiterhelfen könnte?
Vorab vielen Dank.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 669174
Url: https://administrator.de/contentid/669174
Ausgedruckt am: 31.10.2024 um 20:10 Uhr
6 Kommentare
Neuester Kommentar
Da Wireguard bei pfSense auf jeder IPv6 und sämtlichen IPv4 Adressen aller Interfaces nach Verbindungen lauscht, werden Zugriffe über Firewall Rules geregelt.
Das ist natürlich Unsinn, denn das kann man bekanntlich über die "AllowedIPs" Defintion granular einstellen. Letztlich ist es aber sinnvoller mit einer Firewall Regel.eine Firewall Rule auf WAN erstellt, die ermöglicht das von außen auf eine bestimmte IPv6 der Netgate auf dem vorher ausgewählten WG UDP Port (exemplarisch: 55555/UDP) verbunden werden kann.
Das ist irgendwie laienhaft ausgedrückt! Es darf natürlich nicht irgendwelche x-beliebige IP Adresse sein sondern die Regel musst immer auf die WAN IPv6 Adresse den Zugriff erlauben! Dazu muss im Regelset der Alias Name des WAN Interfaces verwendet werden denn das stellt sicher das das auch klappt wenn die v6 WAN IP wechselt was durch die dynamische Prefix Delegation fast aller Provider immer der Fall ist. Ein Screenshot deiner Rulesets zur Klärung hätte hier allen beim zielführenden Troubleshooting geholfen. - Wie sieht dein Ruleset auf dem Tunnel Interface aus? (Siehe dazu HIER)
- Hast du beachtet kein Regelwerk auf dem Tunnel Group Interface einzurichten?!
- Wie hast du die Wireguard Routing Policy der OPNsense gesetzt? Automatisch über das WG Setup oder manuell statisch?
- Beachte auch das du natürlich nur von VPN Clients die eine IPv6 Internet Connectivity haben extern auf deine OPNsense zugreifen kannst. Bei Clients in reinen IPv4 Netzen scheitert der Zugriff erwartungsgemäß da prinzipbedingt.
WAN hat lediglich eine link-lokale IPv6.
Wäre sehr sehr ungewöhnlich. Normalerweise MUSS das WAN Interface DHCPv6 machen und bekommt damit dann eine eigene öffentliche WAN IP vom Provider zugeteilt und zusätzlich ein PD für die internen LAN Segmente.Ohne eine öffentliche v6 IP auf deinem WAN Interface wäre deine FW von extern technisch gar nicht per v6 erreichbar, da Link Local Adressen wie der Name schon sagt bekanntlich nicht geroutet werden. Wie sollte das ohne gültige, öffentliche v6 IP Adresse am WAN auch gehen?? Da kann also irgendwas nicht stimmen mit deiner IPv6 WAN Adressierung.
Üblicherweise machen das nur kleine oder Billo Provider die keine IPv4 Kontingente mehr haben bzw. ihre knappen Adressen für deutlich besser bezahlende Business Kunden vorhalten. Große Provider wie die Telekom z.B. fahren allem mit sauberem Dual Stack.
WAN selbst muss ja auch nicht direkt per IPv6 erreichbar sein.
Wie kommst du darauf? An einem DS-Lite Anschluss mit CGNAT ist das deine einzige Chance. Der WAN Port benötigt zwingend eine öffentliche v6 IP, denn das ist ja immer deine Ziel IP fürs VPN.Du willst ja wohl kaum ein Loch in deine Firewall bohren um ungeschützten Internet Traffic ins lokale LAN zu lassen um quasi von hinten durch die Brust ins Auge irgendein v6 Interface für VPN erreichen zu können. Das führt ja eine Firewall dann völlig ad absurdum.
Der WAN Port ist definitiv v6 technisch falsch konfiguriert und benötigt eine öffentliche v6 IP!
Vielleicht helfen ein paar IPv6 Grundlagen zum Verständnis:
https://danrl.com/ipv6/