Zugriff vom LAN zu OpenVPN Server
Hallo zusammen,
Im Internet habe ich einen Windows Root-Server, auf den ich von meinen Clients im LAN zugreifen möchte.
Zu diesem Zweck habe ich auf dem Server OpenVPN installiert und konfiguriert.
Der Server ist nicht in einem LAN sondern hat nur eine NIC mit öffentlicher IP und einen TUN Adapter für das VPN.
NIC ist öffentliches Netzwerk und TUN auf privates Netzwerk eingestellt.
Per OpenVPN Software lässt sich mit den konfig Dateien (ca.cert, client.cert, client.key und client.ovpn) ein Tunnel aufbauen.
Der Server ist dann durch den Tunnel über seine VPN IP (10.8.0.1) erreichbar. Ping, RDP ... läuft.
Nun möchte ich den Tunnel auf den Clients nicht immer manuell aufbauen sondern der im LAN befindliche Internet-Router soll das machen.
Hierzu habe ich auf dem Router (pfsense) einen neuen VPN Tunnel eingerichtet und die CA, Cert und Key Daten aus den o.g. Files in die pfsense eingefügt.
Der Tunnel zwischen Server und pfsense steht. Die pfsense kann den Server auf 10.8.0.1 anpingen (von source "open vpn client" aus).
Vom Server lässt sich durch den Tunnel auf die ssh von der pfsense zugreifen. Auch gut.
Aber: die Clients im LAN können den Server nicht erreichen.
Da der Sever in keinem LAN ist, kann ich nur die IP des TUN-Adapters (10.8.0.1) anpingen - keine Antwort.
Fehlt hier in der pfsense noch eine Route oder wo ist das Problem?
Wie gesagt, wenn der Tunnel auf dem Client per OpenVPN Software aufgebaut wird, dann kann der Client den Server unter seiner VPN Adresse erreichen.
Von daher gehe ich eigtl davon aus, dass der Server korrekt konfiguriert ist und das Problem in der pfsense liegt.
Oder?
Ich bin nicht ganz so fit in der Materie aber würde mich freuen, wenn das zum Laufen zu bekommen wäre.
Vielen Dank schonmal
Aubanan
Im Internet habe ich einen Windows Root-Server, auf den ich von meinen Clients im LAN zugreifen möchte.
Zu diesem Zweck habe ich auf dem Server OpenVPN installiert und konfiguriert.
Der Server ist nicht in einem LAN sondern hat nur eine NIC mit öffentlicher IP und einen TUN Adapter für das VPN.
NIC ist öffentliches Netzwerk und TUN auf privates Netzwerk eingestellt.
Per OpenVPN Software lässt sich mit den konfig Dateien (ca.cert, client.cert, client.key und client.ovpn) ein Tunnel aufbauen.
Der Server ist dann durch den Tunnel über seine VPN IP (10.8.0.1) erreichbar. Ping, RDP ... läuft.
Nun möchte ich den Tunnel auf den Clients nicht immer manuell aufbauen sondern der im LAN befindliche Internet-Router soll das machen.
Hierzu habe ich auf dem Router (pfsense) einen neuen VPN Tunnel eingerichtet und die CA, Cert und Key Daten aus den o.g. Files in die pfsense eingefügt.
Der Tunnel zwischen Server und pfsense steht. Die pfsense kann den Server auf 10.8.0.1 anpingen (von source "open vpn client" aus).
Vom Server lässt sich durch den Tunnel auf die ssh von der pfsense zugreifen. Auch gut.
Aber: die Clients im LAN können den Server nicht erreichen.
Da der Sever in keinem LAN ist, kann ich nur die IP des TUN-Adapters (10.8.0.1) anpingen - keine Antwort.
Fehlt hier in der pfsense noch eine Route oder wo ist das Problem?
Wie gesagt, wenn der Tunnel auf dem Client per OpenVPN Software aufgebaut wird, dann kann der Client den Server unter seiner VPN Adresse erreichen.
Von daher gehe ich eigtl davon aus, dass der Server korrekt konfiguriert ist und das Problem in der pfsense liegt.
Oder?
Ich bin nicht ganz so fit in der Materie aber würde mich freuen, wenn das zum Laufen zu bekommen wäre.
Vielen Dank schonmal
Aubanan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 329388
Url: https://administrator.de/contentid/329388
Ausgedruckt am: 19.12.2024 um 14:12 Uhr
22 Kommentare
Neuester Kommentar
Moin,
baut die PfSense denn eine Verbindung zum OpenVPN Server auf? Würde ja eine Fehlkonfig ausschließen.
Alles andere wäre dann hinfällig, zumindest in den Standardeinstellungen.
Also im Prinzip wird dir der aktive Tunnel angezeigt. Ohne weiteres bekommst das dortige Gateway?
Dann ist es ein Problem beim OpenVPN Server.
Kommt der Server denn bis zum Client (PfSense)?
Gruß Spirit
baut die PfSense denn eine Verbindung zum OpenVPN Server auf? Würde ja eine Fehlkonfig ausschließen.
Alles andere wäre dann hinfällig, zumindest in den Standardeinstellungen.
Also im Prinzip wird dir der aktive Tunnel angezeigt. Ohne weiteres bekommst das dortige Gateway?
Dann ist es ein Problem beim OpenVPN Server.
Kommt der Server denn bis zum Client (PfSense)?
Gruß Spirit
Die Seite beim OpenVPN Server kennt dein Internes LAN nicht. Dort ne Static-Route mit GW auf die Client Adresse bei der PfSense und dann läuft das.
Du machst dazwischen kein NAT. Umgekehrt wäre dies kein Thema da das Routing (gemäß der Server würde durch die FW gestellt) durch die FW laufen würde, und somit würde eben die FW alle Routen kennen. Dein Server tut dies nicht. Somit muss du dies per Hand ergänzen.
Wenn du dies auf Windows Basis betreibst, bekommst du möglicherweise noch Probleme wenn du mit verschiedenen Subnetzen Arbeits.
Dann eben noch Firewall-Regeln am Server erstellen und zulassen.
Achtung: Die IP der Pfsense im OpenVPN Netz darf sich somit nicht ändern!
Anschließen würde ich überprüfen ob nicht doch noch etwas FW Seitig geblockt wird, das ist ja dann nun eine Kleinigkeit.
Und sicher deinen Roote-Server ab!
Du machst dazwischen kein NAT. Umgekehrt wäre dies kein Thema da das Routing (gemäß der Server würde durch die FW gestellt) durch die FW laufen würde, und somit würde eben die FW alle Routen kennen. Dein Server tut dies nicht. Somit muss du dies per Hand ergänzen.
Wenn du dies auf Windows Basis betreibst, bekommst du möglicherweise noch Probleme wenn du mit verschiedenen Subnetzen Arbeits.
Dann eben noch Firewall-Regeln am Server erstellen und zulassen.
Achtung: Die IP der Pfsense im OpenVPN Netz darf sich somit nicht ändern!
Anschließen würde ich überprüfen ob nicht doch noch etwas FW Seitig geblockt wird, das ist ja dann nun eine Kleinigkeit.
Und sicher deinen Roote-Server ab!
Hast du die FW am Server überprüft?
Wird das 192.168.2.0/24 dort geblockt da es nicht bekannt ist?
Und die 10.8.0.8 ist auch wirklich die IP der PfSense im OpenVPN Netz?
Die PfSense kennt ja schließlich beide Netze.
In der PfSense ist bsp. ne LAN zu Any Rule vorhanden?
Wenn die Route auf 10.8.0.1 (deinen Server) zeigt wird das nix.
Wird das 192.168.2.0/24 dort geblockt da es nicht bekannt ist?
Und die 10.8.0.8 ist auch wirklich die IP der PfSense im OpenVPN Netz?
Die PfSense kennt ja schließlich beide Netze.
In der PfSense ist bsp. ne LAN zu Any Rule vorhanden?
Wenn die Route auf 10.8.0.1 (deinen Server) zeigt wird das nix.
Hi!
Wenn der Traffic vom OpenVPNClient der PfSense zu deinem Internetserver flutscht, ist diese funktional eingerichtet.
Der Ping von der Gegenseite belegt das ebenfalls.
Wenn Du von den Clients ein tracert ausführst, wirst du wahrscheinlich sehen, dass der Traffic bei deiner PfSense endet. Richtig?
Auch die PfSense bietet dir da übrigens Diagnosemöglichkeiten unter "Diagnostics"
Damit bleibt als wahrscheinlichste Ursache, dass die PfSense Firewall deinen Traffic auf dem OpenVPN Interface blockiert.
Unter: Firewall --> Rules --> OpenVPN muss eine Regel gesetzt sein, die den Traffic auch erlaubt.
Ist das der Fall? Mache mindestens testweise eine "Scheunentorregel" die von dort alles erlaubt. Wenn es dann geht, kannst du es einschränken.
Die PfSense routet wie andere Router auch automatisch zwischen ihren Interfaces. Die Firewallkomponente blockiert aber sicherheitshalber erstmal alles.
Du kannst dir auch mal die Firewall-Logs ansehen. Da sollte der blockierte Traffic auftauchen.
Natürlich kannst du sicherheitshalber auch mal auf dem Server route -print ausführen. https://technet.microsoft.com/en-us/library/bb490991.aspx
Da muss eine Route zu deinem LAN stehen.
Um das Szenario zu testen musst du auf PfSense Seite natürlich immer das LAN Interface für den Ping wählen. Wenn das durchkommt, gehts auch bei den Clients. (Wenn die die PfSense als Gateway nutzen)
LG
Buc
Wenn der Traffic vom OpenVPNClient der PfSense zu deinem Internetserver flutscht, ist diese funktional eingerichtet.
Der Ping von der Gegenseite belegt das ebenfalls.
Wenn Du von den Clients ein tracert ausführst, wirst du wahrscheinlich sehen, dass der Traffic bei deiner PfSense endet. Richtig?
Auch die PfSense bietet dir da übrigens Diagnosemöglichkeiten unter "Diagnostics"
Damit bleibt als wahrscheinlichste Ursache, dass die PfSense Firewall deinen Traffic auf dem OpenVPN Interface blockiert.
Unter: Firewall --> Rules --> OpenVPN muss eine Regel gesetzt sein, die den Traffic auch erlaubt.
Ist das der Fall? Mache mindestens testweise eine "Scheunentorregel" die von dort alles erlaubt. Wenn es dann geht, kannst du es einschränken.
Die PfSense routet wie andere Router auch automatisch zwischen ihren Interfaces. Die Firewallkomponente blockiert aber sicherheitshalber erstmal alles.
Du kannst dir auch mal die Firewall-Logs ansehen. Da sollte der blockierte Traffic auftauchen.
Natürlich kannst du sicherheitshalber auch mal auf dem Server route -print ausführen. https://technet.microsoft.com/en-us/library/bb490991.aspx
Da muss eine Route zu deinem LAN stehen.
Um das Szenario zu testen musst du auf PfSense Seite natürlich immer das LAN Interface für den Ping wählen. Wenn das durchkommt, gehts auch bei den Clients. (Wenn die die PfSense als Gateway nutzen)
LG
Buc
Puh, bin völlig vergrippt mit 4 Bier in der Birne...
Mal sehen...
Mein Problem ist: Ich habe fast Null Erfahrung mit Open VPN. Mache alles mit IPSec, bis auf einen Kunden. Bei dem hakt das aber auch mit Opnen VPN. (Wegen dieser dämlichen Server/Client-Sachen bei OpenVPN, die ein Site2Site erschweren, grundsätzlich lief das aber mal...Ist aber in dem Fall nur ein "Nice-to-have")
Es scheint mir bei dir aber prinzipieller zu sein.
"Von der pfsense gibt es Antwort vom VPN Interface auf die VPN IP des Servers (10.8.0.1)
Von der pfsense gibt es keine Antwort vom LAN Interface auf die VPN IP des Servers (10.8.0.1) "
Wo kann das Problem dann noch liegen?
Setze doch mal eine Rule für ICMP auf dem VPN Interface und testweise auch auf dem LAN Interface. Auch wenn das nicht sein sollte, habe ich mit der PfSense solche Sachen schon gehabt.
Schau dir nochmal in der PfSense OpenVPN Konfiguration das Local Network und das Tunnel Network an...
Die PfSense blockt das aus irgendeinem Grund.
LG
Buc
Mal sehen...
Mein Problem ist: Ich habe fast Null Erfahrung mit Open VPN. Mache alles mit IPSec, bis auf einen Kunden. Bei dem hakt das aber auch mit Opnen VPN. (Wegen dieser dämlichen Server/Client-Sachen bei OpenVPN, die ein Site2Site erschweren, grundsätzlich lief das aber mal...Ist aber in dem Fall nur ein "Nice-to-have")
Es scheint mir bei dir aber prinzipieller zu sein.
"Von der pfsense gibt es Antwort vom VPN Interface auf die VPN IP des Servers (10.8.0.1)
Von der pfsense gibt es keine Antwort vom LAN Interface auf die VPN IP des Servers (10.8.0.1) "
Wo kann das Problem dann noch liegen?
Setze doch mal eine Rule für ICMP auf dem VPN Interface und testweise auch auf dem LAN Interface. Auch wenn das nicht sein sollte, habe ich mit der PfSense solche Sachen schon gehabt.
Schau dir nochmal in der PfSense OpenVPN Konfiguration das Local Network und das Tunnel Network an...
Die PfSense blockt das aus irgendeinem Grund.
LG
Buc
Aber: die Clients im LAN können den Server nicht erreichen.
Das liegt vermutlich daran das du die Firewall Regeln auf dem OVPN Adapter nicht oder falsch eingestellt hast.Das Firewall Log ist hier immer die erste Anlaufstelle !!
Fehlt hier in der pfsense noch eine Route oder wo ist das Problem?
Nein, ganz sicher nicht, denn alle IP Netze sind ja direkt an der pfSense darn. Sie "kennt" also alle IPs.Es ist vermutlich das Regelset, denn der virtuelle OVPN Adapter hat per Default die Regel ALLES verboten wie es bei FWs ja üblich ist.
Hier musst du also das 10.8.0.0 /24 Segment auf dein lokales LAN Segment öffnen, dann sollte es auch klappen.
Traceroute und Pathping sind hier immer deine Freunde. Da wo es nicht mehr weitergeht liegt auch der Fehler.
verstehe ich das recht: auf dem Server eine statische Route eintragen
Das kann man so machen. Jedenfalls muss der Server ja das lokale LAN kennen und wissen das Traffic dafür in den Tunnel bzw. Tunneladapter geroutet werden muss.Er kennt ja sonst nur seine öffentliche IP und das OVPN Netz und würe alles was er nicht kennt logischerweise an sein Default Gateway senden. Auch dein lokales LAN wenn eine entsprechende Route fehlt.
Ein route print auf dem Winblows Server zeigt dir immer die aktuelle Routing Tabelle an ! Damit kannst du das überprüfen wenn der VPN Tunnel online ist !
Die Route kannst das aber auch über einen ip route... Befehl in der OVPN Konfig machen. Letztlich besser, denn dann wird die Route automatisch nur injiziert wenn der VPN Tunnel steht. Bei einer Systemroute ist die permanent.
Hier zeigt sich das es kontraproduktiv ist den Win Server als OVPN Server einzurichten. Besser wäre es er würde der Client sein, denn dann könntest du die pfSense als Server laufen lassen und dort mit dem push route... Kommando das lokale LAN IP Netz als Route automatisch an den Client übertragen.
Aber wie gesagt...es geht auch mit dem ip route... Kommando im Openvpn Setup des Servers...beides ist möglich.
Gut möglich auch das die Winblows Firewall der böse Bube ist sollten die FW Regeln der pfSense passen und ide Rozten für das lokale LAN korrekt konfiguriert sein..
Durch die fehlende Netzwerk Profil Erkennung des TUN Adapters bei OVPN unter Winblows deklariert die Win Firewall das Netz als Öffentlich (Public) und macht damit dann alle Schotten zu.
Ab Win 7 u. Server 2008 ist zudem ICMP (Ping) vollständig geblockt:
https://www.windowspro.de/tipp/ping-windows-7-server-2008-r2-zulassen
Hier musst du also auch zwingend Hand anlegen und den Netzwerktyp und Win Firewall mit erweiterten Einstellungen auf Private setzen und ggf. ICMP passieren lassen wenn du pingen willst von Fremdadressen.
Deine Absender IP die beim OVPN Server ankommt ist ja nun keine 10.8.0er Client IP mehr sondern eine deines lokalen LANs. Das Blockt die Win Firewall dann sofort.
Fazit: Vermutlich ein Firewall oder auch Routing Problem. Entweder Regel pfSense oder Winblows Firewall Setup !!
Routen auf dem Win Server checken bei aktivem Tunnel !
Hast du dir mal die Routing Tabelle auf pfSense und Server angesehen ?? Stimmen die für deine IP Netze ?
Wo bleibt ein Traceroute hängen ?
Hast du die OpenVPN Roles (Client und Server) spaßeshalber mal umgedreht ? Wäre ja auch mal einen Test wert.
Ich hab das Setup hier mal im Labor testaufbau auf einen RasPi OVPN Server getestet und das klappt fehlerlos von der pfSense und den Clients dahinter.
Generell ist dein Setup also richtig ! Da ist irgendwo noch was Firewall mässiges dazwischen...
Wo bleibt ein Traceroute hängen ?
Hast du die OpenVPN Roles (Client und Server) spaßeshalber mal umgedreht ? Wäre ja auch mal einen Test wert.
Ich hab das Setup hier mal im Labor testaufbau auf einen RasPi OVPN Server getestet und das klappt fehlerlos von der pfSense und den Clients dahinter.
Generell ist dein Setup also richtig ! Da ist irgendwo noch was Firewall mässiges dazwischen...
irgendwie werde ich das gefühl nichtr los, dass es ungünstig ist, dass der Server nur die WAN IP und die VPN-IP hat, die vom LAN aus durch den Tunnel nicht erreichbar ist.
Nein, das ist vollkommen unbegründet !Einzig und allein relevant für das VPN (bei Open VPN) ist das interne Tunnel IP Netz. Da spielt es keinerlei Rolle ob die physische IP einen WAN IP oder was auch immer ist. Da musst du dir keine Sorgen machen.
Von daher kam mir die Frage, ob ich dem Server noch eine Lokale IP (z.B. 192.168.99.1) zuteilen kann.
Das dürfte bei einem gehosteten Server ja unmöflich sein. RFC 1918 IPs geht sicher in einem Provider Umfeld gar nicht. Außerdem hast du ja schon eine "Lokale IP" !!Das ist doch immer die lokale IP des VPN Tunnels. Warum also doppelt moppeln ??
Was haltet ihr davon?
Sinnfrei und bringt nix...Wie ließe sich das bewerkstelligen, dem Server eine private IP zu geben?
Ganz einfach mit einem Loopback Interface, wenn du es denn unbedingt testen willst. Aber wie gesagt...das ist eigentlich Quatsch !und erreichbar war die IP durch den Tunnel auch nicht.
Klar, denn du hast mit 99,9%iger Sicherheit vergessen diese Loopback IP bzw. das netzwerk ins OVPN Routing einzutragen !!! Der klassische Fehler !Die Loopback IP ist einen Hostroute also mit einer 32 Bit Maske 255.255.255.255 muss aber logischerweise wie alle IP Netze auch dem Route Prozess bekannt gemacht werden.
Ein route print auf dem VPN Client sagt dir doch immer ob das Loopback Netz propagiert wird. Wenn du das in der Routing Tabelle nicht siehst wird es logischerweise nicht propagiert (weil du das Routing dafür nicht eingetragen hast !) und damit schlägt dann auch jede Connectivity fehl.
Eigentlich vollkommen logisch wenn man nur mal ein bischen drüber nachdenkt und troubleshootet
Ein Transfernetz ist es nicht. Nicht jedenfalls wenn man mit einem Client zugreift. Bei einem Lan2Lan VPN magst du recht haben.
Du hast zu 100% einen Fehler in deiner server.conf Datei ! Die müsstest du mal posten um das zu troubleshooten.
Dort fehlt ein push route... Kommando.
Dieses Tutorial erklärt die ToDos dazu:
OpenVPN Server installieren auf pfSense Firewall, Mikrotik. DD-WRT oder GL.inet Router
Du hast zu 100% einen Fehler in deiner server.conf Datei ! Die müsstest du mal posten um das zu troubleshooten.
Dort fehlt ein push route... Kommando.
Dieses Tutorial erklärt die ToDos dazu:
OpenVPN Server installieren auf pfSense Firewall, Mikrotik. DD-WRT oder GL.inet Router
Kannst du mal einen Screenshot deiner OpenVPN Konfiguration auf der PfSense posten?
Mein Eindruck ist auch, dass es an dem etwas ungewöhnlichen Szenario ohne entferntes IP-Netz liegt und daher deine Einstellungen für diesen Fall nicht stimmen.
Beim IPv4 Remote Network sollte z.B. in deinem Fall nichts stehen:
"IPv4 Remote Network/s
These are the IPv4 networks that will be routed through the tunnel, so that a site-to-site VPN can be established without manually changing the routing tables. Expressed as a comma-separated list of one or more CIDR ranges. If this is a site-to-site VPN, enter the remote LAN/s here. You may leave this blank to only communicate with other clients. "
Die Hints in der PfSense Konfiguration sind mittlerweile wirklich brauchbar...
LG
Buc
Mein Eindruck ist auch, dass es an dem etwas ungewöhnlichen Szenario ohne entferntes IP-Netz liegt und daher deine Einstellungen für diesen Fall nicht stimmen.
Beim IPv4 Remote Network sollte z.B. in deinem Fall nichts stehen:
"IPv4 Remote Network/s
These are the IPv4 networks that will be routed through the tunnel, so that a site-to-site VPN can be established without manually changing the routing tables. Expressed as a comma-separated list of one or more CIDR ranges. If this is a site-to-site VPN, enter the remote LAN/s here. You may leave this blank to only communicate with other clients. "
Die Hints in der PfSense Konfiguration sind mittlerweile wirklich brauchbar...
LG
Buc