VPN Zugriff für mehrere Standorte

Started by marc.laederach, November 29, 2017, 12:38:48 PM

Previous topic - Next topic
November 29, 2017, 12:38:48 PM Last Edit: November 29, 2017, 01:28:14 PM by marc.laederach
Guten Tag

Unsere Schule hat 2 Standorte, hier A und B genannt. An jedem Standort haben wir eine OPNSense-Firewall im Einsatz, welche auch über jeweils zwei Internetanschlüsse verfügen. Die beiden Standorte sind über Glasfaser miteinander verbunden.
VPN habe ich aber nur auf der Firewall von Standort A eingerichtet. Nun möchte ich aber über die VPN-Verbindung auch die Geräte von Standort B erreichen können. Ich nehme an, ich muss hier einige Regeln einrichten. Aber ich habe bereits einiges versucht und nichts hat geholfen. Deshalb wäre ich froh um Tipps. Ich habe mal eine grobe Darstellung der Situtation angehängt.


Freundliche Grüsse
Marc Läderach

Hallo!

Die Konfiguration des Tunnels ist entscheidend. In der Konfiguration auf beiden Seiten gibt man an, welches/n Netz/e auf der jeweils anderen Seite zu finden sind. No die passenden Regeln auf den opnVPN Tabs der Firewall eingerichtet und ggf. eine NAT Regel und dann läuft der Verkehr zwischen beiden Subnetzen.
kind regards
chemlud
____
"The price of reliability is the pursuit of the utmost simplicity."
C.A.R. Hoare

felix eichhorns premium katzenfutter mit der extraportion energie

A router is not a switch - A router is not a switch - A router is not a switch - A rou....

Hallo chemlud

Vielen Dank für die Unterstützung! Welchen Tunnel meinst Du? Zwischen den Standorten gibt es keinen Tunnel, das ist eine dedizierte Leitung.

Also in der Client Configuration steht folgendes drin:

route 172.16.0.0 255.255.128.0 net_gateway
route 172.16.128.0 255.255.128.0 net_gateway
route 192.168.233.0 255.255.255.252 net_gateway

Das heisst ja, der Client weiss, dass er für das Netzwerk des Standorts B den Traffic über den VPN-Tunnel routen muss. Es muss also an den Firewall-Regeln liegen. Auf dem OpenVPN-Tab habe ich zwei Regeln erstellt:

  • OpenVPN net --> Standort B net (alias) | alles erlauben (da intern)
  • Standort B net (alias) --> OpenVPN net | alles erlauben (da intern)

Hier noch das Ergebnis des Tracert-Befehls:
Quotetracert 172.16.128.11

Tracing route to 172.16.128.11 over a maximum of 30 hops

  1    33 ms    19 ms    17 ms  10.11.0.1
  2     *        *        *     Request timed out.

Er erreicht also nur den Gateway des OpenVPN-Netzes, weiter kommt er nicht. Noch eine Idee?

Wo ein VPN, da auch ein Tunnel. Also gibt es (bei einem openVPN Tunnel) einen Server und einen Client auf der Firewall "Location A" und auf der Firewall "Location B".

Also gibt es auch ZWEI Firewall Tabs "openVPN", einen bei Location A und einen bei Location B.  Und schauen, ob NET outbound alle Netze hinter dem Tunnel kennt.

Nebenbei: alle drei Netze sind /17, aber bei deinen "routen" hast du zweimal 255.255.128.0 und einmal 255.255.255.252.
kind regards
chemlud
____
"The price of reliability is the pursuit of the utmost simplicity."
C.A.R. Hoare

felix eichhorns premium katzenfutter mit der extraportion energie

A router is not a switch - A router is not a switch - A router is not a switch - A rou....

Würde mal die Routen überprüfen, da ggf. der Traffic nicht den Weg retour findet. Ich arbeite in solchen situationen gerne mal mit tcpdump.
BTW: Für Site To Site würde ich lieber IPsec nehmen (sollte aber mit OpenVPN auch gehen).

Meine Vermutung ist, dass eine deiner beiden Seiten ein Problem mit der Routingtabelle hat (z. B. B kennt die Clientnetze von A nicht und leitet den Datenverkehr daher an den Standardgateway).

Hallo

Vielen Dank nochmals für die Unterstützung!

Quote from: chemlud on November 29, 2017, 08:11:17 PM
Wo ein VPN, da auch ein Tunnel. Also gibt es (bei einem openVPN Tunnel) einen Server und einen Client auf der Firewall "Location A" und auf der Firewall "Location B".

Also gibt es auch ZWEI Firewall Tabs "openVPN", einen bei Location A und einen bei Location B.  Und schauen, ob NET outbound alle Netze hinter dem Tunnel kennt.

Eben nicht: Am Standort B gibt es gar nichts mit VPN. Die Standorte sind direkt über einen Glasfaserlink verbunden (dedizierte Verbindung). VPN wurde ausschliesslich auf der Firewall A eingerichtet. Das möchte ich wenn möglich auch weiterhin so handhaben, so dass die VPN-Verbindung immer über den Standort A hergestellt werden muss.

Quote from: fabian on November 29, 2017, 08:22:21 PM
Würde mal die Routen überprüfen, da ggf. der Traffic nicht den Weg retour findet. Ich arbeite in solchen situationen gerne mal mit tcpdump.
BTW: Für Site To Site würde ich lieber IPsec nehmen (sollte aber mit OpenVPN auch gehen).

Meine Vermutung ist, dass eine deiner beiden Seiten ein Problem mit der Routingtabelle hat (z. B. B kennt die Clientnetze von A nicht und leitet den Datenverkehr daher an den Standardgateway).

Danke, das mit dem Routing zurück könnte natürlich sein. Muss ich auf der Firewall B möglicherweise ein Routing für das VPN-Netz 10.11.0.0 einrichten? Mit tcpdump kenne ich mich nicht aus und müsste mich erst einmal etwas einlesen.


Freundliche Grüsse
Marc

November 30, 2017, 12:30:15 AM #6 Last Edit: November 30, 2017, 12:34:20 AM by NicholasRush
Wenn Standort A und Standort B direkt über eine Glasfaserleitung (Dark Fiber) verbunden sind macht VPN zwischen diesen beiden ja ohnehin keinen sinn und wäre in dem Fall eine Verschwendung von CPU Ressourcen.

Wie ich aus deinem ersten Beitrag herauslese geht es auch gar nicht darum Standort A und B miteinander zu vernetzen. Sondern über den VPN Zugang mit einem VPN Client auf Geräte an Standort B zugreifen zu können.

Dies sollte sich doch einfach bewerkstelligen lassen. Die Frage ist jetzt, ist es dir möglich ohne VPN Verbindung von einem PC an Standort A einen PC an Standort B zu erreichen? Wenn ja geht es sich hier nur um die Konfiguration von OpenVPN, als Server.

Ich rate jetzt mal, und beantworte meine vorherige Frage mit Nein. Zuallererst muss die Firewall an den Interfaces der Glasfaserleitung eine komplett offene Firewallkonfig haben, da es sinnlos wäre hier zu Filtern.
Man könnte jetzt Standort B in die Routing Tabelle von Standort A und umgekehrt eintragen inkl. dem Netz welches in OpenVPN verwendet wird. Aber das kannst du auch automatisieren, indem du auf beiden OPNsense Routern das Quagga Plugin installierst und dann Rip konfigurierst, alle anderen Interfaces ausser dem welches an der Glasfaserverbindung hängt sind dann als Passive Interfaces einzustellen, im Quagga Plugin. Und bei "Route Redistribution" dann "Static Routes" und "Direct Connected". Zudem umgehst du mit Quagga auch Routing-Loops.

Danach sollten alle Routen an beiden Standorten bekannt sein. Werden in Zukunft dann an beiden Standorten zusätzliche IP-Netze benötigt werden diese zumindest dann gegenseitig automatisch bekannt gemacht.

An Standort A müsse die Routen in die zu erreichenden Netze dann so in die OpenVPN Server Konfig eingetragen werden:


push "route 10.66.0.0 255.255.255.0"


Damit der OpenVPN Client dann die Routen entsprechend setzen kann beim Verbindungsaufbau muss OpenVPN als Administrator gestartet werden.

Hallo

Quote from: NicholasRush on November 30, 2017, 12:30:15 AM
Wenn Standort A und Standort B direkt über eine Glasfaserleitung (Dark Fiber) verbunden sind macht VPN zwischen diesen beiden ja ohnehin keinen sinn und wäre in dem Fall eine Verschwendung von CPU Ressourcen.

Wie ich aus deinem ersten Beitrag herauslese geht es auch gar nicht darum Standort A und B miteinander zu vernetzen. Sondern über den VPN Zugang mit einem VPN Client auf Geräte an Standort B zugreifen zu können.

Genau, es geht nicht darum die beiden Standorte zu vernetzen, sondern ich möchte über nur einen VPN-Zugang an Standort B auch Standort B erreichen.


Quote from: NicholasRush on November 30, 2017, 12:30:15 AM
Dies sollte sich doch einfach bewerkstelligen lassen. Die Frage ist jetzt, ist es dir möglich ohne VPN Verbindung von einem PC an Standort A einen PC an Standort B zu erreichen? Wenn ja geht es sich hier nur um die Konfiguration von OpenVPN, als Server.

Ich rate jetzt mal, und beantworte meine vorherige Frage mit Nein. Zuallererst muss die Firewall an den Interfaces der Glasfaserleitung eine komplett offene Firewallkonfig haben, da es sinnlos wäre hier zu Filtern.
Man könnte jetzt Standort B in die Routing Tabelle von Standort A und umgekehrt eintragen inkl. dem Netz welches in OpenVPN verwendet wird. Aber das kannst du auch automatisieren, indem du auf beiden OPNsense Routern das Quagga Plugin installierst und dann Rip konfigurierst, alle anderen Interfaces ausser dem welches an der Glasfaserverbindung hängt sind dann als Passive Interfaces einzustellen, im Quagga Plugin. Und bei "Route Redistribution" dann "Static Routes" und "Direct Connected". Zudem umgehst du mit Quagga auch Routing-Loops.

Wenn ich mich im Netzwerk des Standortes A befinde, kann ich problemlos ins Netz des Standortes B zugreifen und umgekehrt. Dort ist auch bereits alles freigeschaltet, es wird nichts gefiltert. Deswegen nehme ich an, dass irgendwo eine banale Einstellung falsch ist.

Ich habe mal noch auf der FW an Standort B ein Routing für das OpenVPN-Netz erstellt, so dass die FW weiss, dass sie die Pakete wieder zurück an Standort A senden muss. Ich komme aber, wie man am tracert-Befehl erkennen kann, nur auf den GW innerhalb des OpenVPN-Netzes und nicht weiter. Deswegen muss immer noch etwas falsch sein.


Freundliche Grüsse
Marc