Problem mit site 2 site VPN
Hallo zusammen,
ich habe folgendes Problem: Ich möchte 2 Standorte mit site 2 site VPN miteinander verbinden. Am Standort A steht ein pfSense zur Verfügung, wo ein openVPN-Server verfügbar ist. Am Standort B habe ich einen openWRT-Router, wo der openVPN-Client läuft. Das ganze funktioniert schon so weit, dass ich von Standort B auf das komplette Netz von Stanort A zugreifen kann. Was jedoch nicht geht ist, dass die Clients von Standort A auf Standort B zugreifen können. Ich kann nichtmal den openWRT-Router von Standort B pingen
Ich kann vom Standort A nur die vpn-IP vom openWRT pingen, dann stehe ich an.
Was muss ich machen, dass ich den einen Schritt noch weiter komme, damit ich vom VPN-Netz ins LAN vom Standort B komme?
LG, Dextha
ich habe folgendes Problem: Ich möchte 2 Standorte mit site 2 site VPN miteinander verbinden. Am Standort A steht ein pfSense zur Verfügung, wo ein openVPN-Server verfügbar ist. Am Standort B habe ich einen openWRT-Router, wo der openVPN-Client läuft. Das ganze funktioniert schon so weit, dass ich von Standort B auf das komplette Netz von Stanort A zugreifen kann. Was jedoch nicht geht ist, dass die Clients von Standort A auf Standort B zugreifen können. Ich kann nichtmal den openWRT-Router von Standort B pingen
Ich kann vom Standort A nur die vpn-IP vom openWRT pingen, dann stehe ich an.
Was muss ich machen, dass ich den einen Schritt noch weiter komme, damit ich vom VPN-Netz ins LAN vom Standort B komme?
LG, Dextha
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 481363
Url: https://administrator.de/contentid/481363
Ausgedruckt am: 21.11.2024 um 17:11 Uhr
30 Kommentare
Neuester Kommentar
Ich kann nichtmal den openWRT-Router von Standort B pingen
WAS kannst du da nicht pingen ??- Das LAN Interface ?
- Die interne OpenVPN IP Tunneladresse ?
- Was sagt denn die Routing Tabelle in der pfSense ? Taucht dort das OpenWRT LAN auf und wird in den Tunnel geroutet ?
- Was sagt analog dazu die Routing Tabelle (netstat -r) auf der OpenWRT Seite (SSH Zugang, siehe Tutorial !) ?? Hier müssen die gleichen Routen zu sehen sein !
- Hast du an der pfSense die entsprechenden Firewall Regeln im virtuellen Tunnel Interface eingetragen. Ggf. erstmal zum Testen eine any any Schrotschussregel ?
Wie immer findest du Tips zum OpenVPN Troubleshooting unter OpenWRT hier im Tutorial:
OpenVPN Server installieren auf pfSense Firewall, Mikrotik. DD-WRT oder GL.inet Router
Generell funktioniert das fehlerfrei !
Moin,
Was versuchst du denn anzusingen?
Ne Windows-Kiste?
Wenn ja: du kommst für die Client-Firewall aus einem fremden Netz. Wenn du die nicht angepasst hast, bist du dann mit deinem ICMP-Paket eine potentielle Gefahr und wirst geblockt.
Teste mal, in dem du einen Drucker oder so etwas als Ziel anpingst...
Gruß
em-pie
Was versuchst du denn anzusingen?
Ne Windows-Kiste?
Wenn ja: du kommst für die Client-Firewall aus einem fremden Netz. Wenn du die nicht angepasst hast, bist du dann mit deinem ICMP-Paket eine potentielle Gefahr und wirst geblockt.
Teste mal, in dem du einen Drucker oder so etwas als Ziel anpingst...
Gruß
em-pie
Was versuchst du denn anzusingen?
Das nützt bei Winblows auch nix mehr...! Kollege @em-pie hat aber Recht, denn dort lauert noch die lokale Winblows Firewall die generell ICMP Pakete (Ping) blockt !
Das musst du also erstmal erlauben in den Settings:
https://www.windowspro.de/wolfgang-sommergut/ping-windows-10-erlauben-gu ...
Das LAN Interface des OpenWRT muss aber so oder so auch ohne Wonblows Firewall IMMER pingbar sein !
die IP des openVPN-Tunnes kann ich am openWRT pingen.
Das ist schon mal gut und besagt das der VPN Tunnel sauber funktioniert.Der Client propagiert ja auch sein Netz wie man an der Routing Tabelle in der pfSense ja sehen kann ! Das iseht also gut aus...
Leider hast du nichts zu den Firewall Regeln im virtuellen OVPN Tunnel Interface auf der pfSense gesagt
Hast du dort eine Regel für das 192.168.1.0er netz erstellt ? Oder eine ANY ANY Schrotschussregel ?
Ein Screenshot wäre hier hilfreich gewesen...
Am openWRT hab ich den Eintrag in der Routing-Tabelle so aber nicht:
Das stimmt vermutlich NICHT !! Ist das 172.20.1.0er /24 Netz das lokale LAN an der pfSense ??Wenn ja dann stimmt doch der Routing Tabellen Eintrag:
172.20.1.0 10.1.2.1 255.255.255.0 UG 0 0 0 tun0
Wenn 10.1.2.0 /24 das OVPN interne IP Netz ist, dann ist die .1 immer der OVPN Server selber. Die Route besagt also das das 172.20.1.0er Netz über das Gateway 10.1.2.1 am Tunnel Interface erreichbar ist, was ja dann richtig ist.
Ist dem so, ist also routingtechnisch alles ok.
Ein traceroute 172.20.1.1 zum pfSense LAN Interface zeigt dir das dann auch sofort ! Traceroute zeigt dir alle Routing Hops an und ist ein sinnvolles Troubleshooting Tool auf beiden Seiten.
Der Fehler kann dann einzig und allein nur an der OpenWRT Firewall liegen, das die Pakete mit 192.168.1.0er IP Zieladressen blockiert.
Kannst du vom OpenWRT SSH Kommandoprompt Endgeräte im lokalen pfSense LAN (geraten 172.20.1.0 /24) anpingen ?? Das würde die Theorie des Firewall Problems im OpenWRT bestätigen.
Im Open VPN Tutorial gibts vom User @Spirit ein paar Anmerkungen dazu:
OpenVPN Server installieren auf pfSense Firewall, Mikrotik. DD-WRT oder GL.inet Router
Also eine Einbahn....
Und damit klar das rein nur noch die OpenWRT Firewall der böse Buhmann ist !Mit tracert hätt ich mir das auch schon angeschaut.
Auch mal von der pfSense aus dem Diagnostics menü indem du die Source IP vorgibst ?Sinnvoll wäre das mal von der OpenVPN Source IP zu machen.
Gui keine IP hat, sondern nur als tun0 definiert ist.
Das ist das OpenVPN Tunnel Interface. Das sollte aber schon eine IP haben wie üblich unter OpenVPN. Möglich aber das die nicht angezeigt wird....Ist das alles was man bei OpenWRT dort definieren kann was oben zu sehen ist ??
Ist es ggf. möglich das du NAT (Masquerading) auf dem Tunnel Interface aktiv hast ??
Das darf natürlich nicht sein, denn sonst hast du eine Routing Einbahnstraße !!
Auch das würde erklären warum es in eine Richtung geht aber in die andere nicht !!
NAT Masquerading muss bei OpenWRT auf alle Fälle deaktiviert sein auf dem Tunnel Interface !
Checke auch nochmal die korrekte Konfig (Client Konfig) das dort das iroute Kommando enthalten ist für das lokale LAN:
https://community.openvpn.net/openvpn/wiki/RoutedLans
Hier gibts noch Tips zur Firewall:
https://openwrt.org/docs/guide-user/services/vpn/openvpn/basic
https://www.it-management-kirchberger.at/manuals-tutorials/netzwerk/open ...
Das darf natürlich nicht sein, denn sonst hast du eine Routing Einbahnstraße !!
Auch das würde erklären warum es in eine Richtung geht aber in die andere nicht !!
NAT Masquerading muss bei OpenWRT auf alle Fälle deaktiviert sein auf dem Tunnel Interface !
Checke auch nochmal die korrekte Konfig (Client Konfig) das dort das iroute Kommando enthalten ist für das lokale LAN:
https://community.openvpn.net/openvpn/wiki/RoutedLans
Hier gibts noch Tips zur Firewall:
https://openwrt.org/docs/guide-user/services/vpn/openvpn/basic
https://www.it-management-kirchberger.at/manuals-tutorials/netzwerk/open ...
Das Tunnel Interface ist das Interface was den internen Traffic behadelt. Stelle dir das Tunnel Interface vor wie eine interne Standleitung zwischen deinen internen IP Netzen. Das inkludiert auch das interne OpenVPN Netz.
Hier darf natürlich niemals NAT gemacht werden, denn dann kannst du zwischen deinen internen Netzen nicht mehr transparent routen. Routing wäre dann eine Einbahnstrasse die nur vom Client in Richtung Server geht aber nie andersrum weil das die NAT Firewall verhindert.
Deshalb muss NAT intern auf dem Tunnel Interface immer aus. Im Normalfall ist das auch immer so.
Ggf. solltest du die Server Konfig nochmal mit dem iroute Kommando erweitern.
Lies mal hier was da steht zum Thema "LAN eines Clients einbeziehen"
https://wiki.ubuntuusers.de/OpenVPN/
Ansonsten muss ich mal meinen ollen TP-Link 841 mit OpenWRT rauskramen und das nachstellen...
Hier darf natürlich niemals NAT gemacht werden, denn dann kannst du zwischen deinen internen Netzen nicht mehr transparent routen. Routing wäre dann eine Einbahnstrasse die nur vom Client in Richtung Server geht aber nie andersrum weil das die NAT Firewall verhindert.
Deshalb muss NAT intern auf dem Tunnel Interface immer aus. Im Normalfall ist das auch immer so.
Ggf. solltest du die Server Konfig nochmal mit dem iroute Kommando erweitern.
Lies mal hier was da steht zum Thema "LAN eines Clients einbeziehen"
https://wiki.ubuntuusers.de/OpenVPN/
Ansonsten muss ich mal meinen ollen TP-Link 841 mit OpenWRT rauskramen und das nachstellen...
In eine Richtung klappt der Zugriff ja, richtig ?
Kannst du mal auf dem Zielrechner den du remote anpingst einen Wireshark Sniffer mitlaufen lassen und dir die ICMP (Ping) Absenderpakete mal ansehen ?
Mit welcher Absender IP kommen die am Ziel an ??
Nur um nochmal ganz sicherzustellen das da im Tunnel wirklich das Masquerading deaktiviert ist !
Wenn du einen SSH Zugang auf den OpenWRT hast kannst du zusätzlich mal ein sudo iptables -S dort eingeben und mal checken welche Rules da aktiv sind.
Ich krame mal den 841n raus
Kannst du mal auf dem Zielrechner den du remote anpingst einen Wireshark Sniffer mitlaufen lassen und dir die ICMP (Ping) Absenderpakete mal ansehen ?
Mit welcher Absender IP kommen die am Ziel an ??
Nur um nochmal ganz sicherzustellen das da im Tunnel wirklich das Masquerading deaktiviert ist !
Wenn du einen SSH Zugang auf den OpenWRT hast kannst du zusätzlich mal ein sudo iptables -S dort eingeben und mal checken welche Rules da aktiv sind.
Ich krame mal den 841n raus
Das reicht. Ist die .1.199 die LAN IP Adresse des OpenWRT ??
Wenn ja zeigt das eindeutig das das Masquerading im Tunnel deaktiviert ist.
Hattest du jetzt im WS nach Requests gefiltert ?? Oder warum wird der ICMP Reply des PC mit der 172.20.1.12 nicht angezeigt ?
Mist eben mal den 841n mit OpenWRT angeschlossen... Der hat zuwenig Flash frei um das OpenVPN Package zu installieren.
Da muss ich erstmal operieren:
https://www.heise.de/select/ct/2019/14/1561986310067151
Ich warte noch auf das RAM aus Chinesien...
Kennst du (oder jemand anderes hier) ein anderes Modell was in der Preisrange liegt und OpenWRT mit OpenVPN kann, also entsprechend Flash hat ?? Die ollen Linksys WRT54er die hier rumliegen haben noch weniger...
Ansonsten kannich nur noch einen GL.inet Router anbieten. Da rennt auch OpenWRT drauf ist aber ja nicht exakt das gleiche aber einen Versuch sicher wert.
Wenn ja zeigt das eindeutig das das Masquerading im Tunnel deaktiviert ist.
Hattest du jetzt im WS nach Requests gefiltert ?? Oder warum wird der ICMP Reply des PC mit der 172.20.1.12 nicht angezeigt ?
Mist eben mal den 841n mit OpenWRT angeschlossen... Der hat zuwenig Flash frei um das OpenVPN Package zu installieren.
Da muss ich erstmal operieren:
https://www.heise.de/select/ct/2019/14/1561986310067151
Ich warte noch auf das RAM aus Chinesien...
Kennst du (oder jemand anderes hier) ein anderes Modell was in der Preisrange liegt und OpenWRT mit OpenVPN kann, also entsprechend Flash hat ?? Die ollen Linksys WRT54er die hier rumliegen haben noch weniger...
Ansonsten kannich nur noch einen GL.inet Router anbieten. Da rennt auch OpenWRT drauf ist aber ja nicht exakt das gleiche aber einen Versuch sicher wert.
Im Wireshark hab ich auf ICMP gefiltert, deswegen sind nur diese Einträge drin.
Das kann eigentlich nicht sein, denn wenn man lediglich auf "ICMP" filtert zeigt das alles an was zum ICMP gehört und das umfasst natürlich dann Echo Requests und auch Echo Replies. Folglich müsste man also auch die Antwort (Echo Reply) des angepingten Wireshark Rechners sehen ?!Es sei denn du hast auch auf die IP oder Mac des Rechners gefiltert ?!
Hab noch einen GL.inet_Router gefunden im Fundus, der hat OpenWRT und auch OpenVPN drauf...
Und...eben das Szenario mal nachgestellt. Lässt sich reproduzieren mit OpenWRT !
Loggt man sich auf dem OVPN Server mit einem Windows- oder RasPi Client ein kann man das OVPN Tunnel Interface und das LAN Interface pingen und das beidseitige Routing klappt fehlerfrei.
Klar, denn diese Clients machen eben kein NAT im Tunnel !
Beim OpenWRT Client mit identischer client.conf Datei geht beides nicht. WTF...
Man kann auch ganz klar sehen das der OpenWRT Router hier zwangsweise NAT macht im Tunnel.
12:22:19.073556 IP 10.8.8.2 > 192.168.199.210: ICMP echo request, id 1, seq 35, length 40
12:22:19.073751 IP 192.168.199.210 > 10.8.8.2: ICMP echo reply, id 1, seq 35, length 40
12:22:20.091227 IP 10.8.8.2 > 192.168.199.210: ICMP echo request, id 1, seq 36, length 40
12:22:20.091427 IP 192.168.199.210 > 10.8.8.2: ICMP echo reply, id 1, seq 36, length 40
10.8.8.0 ist hier das interne OVPN IP Netz. .1 der Server und .2 der OpenWRT Router.
.199.0 /24 ist das lokale LAN und die .210 ein Host dort.
Das lokale LAN am OpenWRT Router ist 192.168.8.0 /24 mit einem Host .150. Wie man sieht taucht dessen IP aber gar nicht auf sondern nur die geNATete IP mit dem OpenWRT Tunnel Interface.
Diese Richtung klappt also, klar denn das ist NAT outbound.
Andere Richtung kann dann aber nie klappen, denn das bleibt trotz richtigem Routing dann an der NAT Firewall des OpenWRT Tunnel Interfaces hängen.
OpenWRTist also rein nur für einen simplen Client Zugriff vordefiniert nicht aber für ein beidseitiges LAN zu LAN.
Fragt sich jetzt wie man das Masquerading im Tunnel deaktiviert bekommt beim OpenWRT ?
Die iptables sagen so erstmal nix, aber das aits auch klar, das ist irgendwie in den Zonen definiert.
Nun gehts ans Forschen wie man das entfernt...
Es liegt aber ganz sicher nicht am OpenVPN Server, sprich also der zentralen Firewall. Es ist ja offensichtlich das das OpenWRT im Tunnel Interface NATet und damit ist immer eine Routing Verbindung eine Einbahnstrasse da man ja von außen dann nicht das NAT Interface überwinden kann ohne gültigen Eintrag in der NAT Translation Table.
Ich habe jetzt gesehen das die Firewall Konfig und speziell die Zonen Konfig irgendwo unter /etc/firewall steht.
Da forsche ich heute nochmal etwas...
Ich habe jetzt gesehen das die Firewall Konfig und speziell die Zonen Konfig irgendwo unter /etc/firewall steht.
Da forsche ich heute nochmal etwas...
Hatte ich noch vergessen oben....
Die OVPN Server Konfig sieht so aus (Auszug):
server 10.8.8.0 255.255.255.0
topology subnet
push "topology subnet"
push "route 192.168.199.128 255.255.255.128"
route 192.168.8.0 255.255.255.0
client-config-dir /etc/openvpn
Im Client Konfig Directory /etc/openvpn ist dann eine Datei "client1" (Das ist der Common Name des OpenWRT OVPN Clients) die dann noch Client spezifische Routing Kommandos addiert wenn der Client mit dem Comman Name "client1" sich einwählt:
iroute 192.168.8.0 255.255.255.0
ifconfig-push 10.8.8.2 255.255.255.0
Das Kommando route 192.168.8.0 255.255.255.0 im Server Hauptteil sorgt dafür das das Client Netz auch in der Kernel Routing Tabelle des OVPN Servers steht.
Im Client spezifischen Teil sorgt iroute 192.168.8.0 255.255.255.0 dafür das OpenVPN diese Route für den Client bei seiner Einwahl implementiert und ifconfig-push 10.8.8.2 255.255.255.0 das dieser Client immer eine feste IP 10.8.8.2 zugewiesen bekommt im internen OVPN IP Netz. Wäre das dynamisch kann die Route bei einer Neueinwahl verloren gehen.
Die OVPN Server Konfig sieht so aus (Auszug):
server 10.8.8.0 255.255.255.0
topology subnet
push "topology subnet"
push "route 192.168.199.128 255.255.255.128"
route 192.168.8.0 255.255.255.0
client-config-dir /etc/openvpn
Im Client Konfig Directory /etc/openvpn ist dann eine Datei "client1" (Das ist der Common Name des OpenWRT OVPN Clients) die dann noch Client spezifische Routing Kommandos addiert wenn der Client mit dem Comman Name "client1" sich einwählt:
iroute 192.168.8.0 255.255.255.0
ifconfig-push 10.8.8.2 255.255.255.0
Das Kommando route 192.168.8.0 255.255.255.0 im Server Hauptteil sorgt dafür das das Client Netz auch in der Kernel Routing Tabelle des OVPN Servers steht.
Im Client spezifischen Teil sorgt iroute 192.168.8.0 255.255.255.0 dafür das OpenVPN diese Route für den Client bei seiner Einwahl implementiert und ifconfig-push 10.8.8.2 255.255.255.0 das dieser Client immer eine feste IP 10.8.8.2 zugewiesen bekommt im internen OVPN IP Netz. Wäre das dynamisch kann die Route bei einer Neueinwahl verloren gehen.
Ohh man.... Manchmal hat man auch als Netzwerker Tomaten auf den Augen ! Passiert im Eifer des Gefechts ja mal.
Aber heute ist ja zum Glück Freitag...!
Die Lösung liegt eigentlich auf der Hand und ist kinderleicht ! (Wenn man denn mal in Ruhe nachdenkt... )
Save & Apply klicken... Und "Tadaaa" kein NAT mehr im Tunnel und schon klappt auch der Ping und Zugriff in die andere Richtung sofort !!
(.199.100 ist ein Web_Server im lokalen LAN der pfSense. Die .8.1 ist der OpenWRT Router und die .8.173 der Laptop im lokalen OpenWRT LAN.)
Es kann ja alles so einfach sein...!
Case closed.
Aber heute ist ja zum Glück Freitag...!
Die Lösung liegt eigentlich auf der Hand und ist kinderleicht ! (Wenn man denn mal in Ruhe nachdenkt... )
- Bei OpenWRT ins Firewall Setup gehen, dort die Interfaces ansehen und...
- Haken bei Masquerading am OVPN Tunnel Interface entfernen !!
Save & Apply klicken... Und "Tadaaa" kein NAT mehr im Tunnel und schon klappt auch der Ping und Zugriff in die andere Richtung sofort !!
Ethernet-Adapter LAN-Verbindung:
Verbindungsspezifisches DNS-Suffix: lan
IPv6-Adresse. . . . . . . . . . . : fdbf:d64d:5b35:10::21d
Verbindungslokale IPv6-Adresse . : fe80::f488:debb:2cdf:f237%19
IPv4-Adresse . . . . . . . . . . : 192.168.8.173
Subnetzmaske . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . : 192.168.8.1
C:\Windows\User>ping 192.168.199.100
Ping wird ausgeführt für 192.168.199.100 mit 32 Bytes Daten:
Antwort von 192.168.199.100: Bytes=32 Zeit=3ms TTL=126
Antwort von 192.168.199.100: Bytes=32 Zeit=3ms TTL=126
Antwort von 192.168.199.100: Bytes=32 Zeit=4ms TTL=126
Ping-Statistik für 192.168.199.100:
Pakete: Gesendet = 3, Empfangen = 3, Verloren = 0
(0% Verlust),
Ca. Zeitangaben in Millisek.:
Minimum = 3ms, Maximum = 4ms, Mittelwert = 3ms
Es kann ja alles so einfach sein...!
Case closed.