Ich verwende OpenVPN unter Ubuntu 20.04 und versuche, Benutzern den Zugriff auf Server zu ermöglichen, die sich in einem anderen Subnetz befinden. Hier ist ein Diagramm, wie das Netzwerk aussieht:
eth1 ist also mit DHCP und dem weiteren Internet verbunden, und eth0 ist mit einem privaten Netzwerk mit den darauf befindlichen Servern verbunden. Das VPN läuft also auf eth1 (192.168.1.0/24), aber ich muss auf die Maschinen auf eth0 (192.168.177.0/24) zugreifen können, wenn ich mit dem VPN verbunden bin.
Ich habe versucht, temporäre iptables-Regeln hinzuzufügen, bin mir aber nicht sicher, ob sie funktionieren, da sie sich auf zwei Netzwerkkarten befinden. Alles, was ich bei Google finden konnte, dreht sich darum, wann sie sich auf derselben Netzwerkkarte befinden.
Bearbeiten: Ich habe es auch
push "route 192.168.177.0 255.255.255.0"
zu meinem server.conf
für OpenVPN hinzugefügt, aber das scheint nicht funktioniert zu haben.
Bearbeitung 2: Ich habe auch die folgenden iptables-Regeln ausprobiert:
sudo iptables -A INPUT -i tun0 -j ACCEPT
sudo iptables -A INPUT -i eth0 -j ACCEPT
sudo iptables -A INPUT -i eth1 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth1 -j ACCEPT
sudo iptables -A FORWARD -i tun0 -j ACCEPT
sowie:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
Ich kann meine Route aufgelistet sehen, wenn ich sie route print
auf dem Windows-Client ausführe:
192.168.177.0 255.255.255.0 10.8.0.1 10.8.0.2 259