Frage von SYSCrashTV, 45

OpenVPN: Zugriff auf Heimnetz funktioniert nicht, auf Internet aber schon?

Hallo, ich habe mir nun, nachdem ich nur Probleme mit L2TP und dem integrierten IPSec der Fritz!Box nur Probleme hatte ein OpenVPN-Server auf meinem Raspberry Pi 2 installiert.

Das Verbinden funktioniert wunderbar, auch der Internetzugriff funktioniert, allerdings kann ich nicht auf mein Heimnetz zugreifen. Versuche ich z.B. den Router aufzurufen funktioniert das nicht. Mit Traceroute kann ich sehen, dass er vom VPN-Netz ins Heimnetz auf den Router(10.0.1.1) springt und dann ins Internet.

Wenn ich nun ein Traceroute auf 10.0.1.1 direkt macht, kann er das nicht erreichen, warum auch immer. So geht es auch mit allen anderen PCs im Netzwerk. Nur der RasPi selbst mit der 10.0.1.5 ist da die Ausnahme. Nun habe ich einen Routing-Eintrag im Pi, welcher aus dem VPN-Netz 192.168.8.0/24 die Daten ins Heimnetz 10.0.1.0/24 über eth0 leiten soll.

iptables -t nat -A POSTROUTING -s 192.168.8.0/24 ! -d 10.0.1.0/24 -o eth0 -j MASQUERADE

Ist daran was falsch, oder woran liegt's?

Antwort
von franzhartwig, 33

Wenn ich nun ein Traceroute auf 10.0.1.1 direkt macht, kann er das nicht erreichen, warum auch immer.

Die Schlussfolgerung ist offensichtlich falsch. Wenn der erste Traceroute über die 10.0.0.1 geht, erreicht er diese Adresse auch. Offensichtlich funktioniert aber der Rückweg nicht.

Deine iptables-Konfiguration verstehe ich nicht wirklich. Ich verstehe Deine Netzwerktopologie aber auch nicht.

Router hat die Adresse 10.0.1.1. Der Pi hat die 10.0.1.5. Was ist nun die 192.168.8.0/24? Warum macht der Pi NAT? Es würde doch reichen, wenn der Pi Routing macht. Hast Du ip_forwarding in der sysctl aktiviert?

Kommentar von SYSCrashTV ,

Und wie richte ich das routing dann richtig ein? IP-Forwarding alleine gibt mir keinen Internetzugriff, sowie keinen Zugriff auf mein Heimnetz. Die 192.168.8.0/24 ist das OpenVPN-Netz. Das 10.0.1.0/24er ist mein Heimnetz.

Kommentar von franzhartwig ,

Richtig,

sysctl -w net.ipv4.ip_forward=1

alleine reicht nicht. Ich habe Deine Topologie nun verstanden. Mit dem iptables-Eintrag konfigurierst Du NAT. Du kannst darauf verzichten, wenn Du im Router eine Route in Dein OpenVPN-Netz einträgst. Das kann aber nicht jeder Heimrouter. Dann brauchst Du tatsächlich NAT.

Wenn Du auf Dein Heimnetz zugreifst, greift der NAT-Eintrag nicht:

! -d 10.0.1.0/24

Das ist das Problem. Du gelangst also mit der Absenderadresse 192.168.8.x ins Heimnetz. Die Antwortpakete finden aber nicht zurück, weil Dein Router das Netz 192.168.8.0/24 gar nicht kennt. Nimm also die Ausnahme aus der iptables-Konfiguration heraus:

iptables -t nat -A POSTROUTING -s 192.168.8.0/24 -o eth0 -j MASQUERADE

Dann terminiert Dein OpenVPN-Tunnel auf dem Pi, Du hast die 192.168.8.x als IP-Adresse. Greifst Du auf Dein Heimnetz zu, macht der Pi NAT, sodass Du mit der Adresse des Pi ins Heimnetz gelangst. Die Adresse des Pi gehört zum Heimnetz, damit hast Du kein Routing-Problem, die Pakete kommen an und werden vom Pi in den Tunnel geroutet.

Keine passende Antwort gefunden?

Fragen Sie die Community