Hallöchen,
ich habe eine, zumindest für mich noch dezent komplexe, Sache vor.
Folgendes ist geplant: Ich möchte bestimmten Traffic von Clients meines VPN Netzes ins Internet anhand der IP als Kriterium über das Interface eines anderen vServer leiten.
Der Grund dafür ist simpel: der Betreiber einer Website die ich öfter nutze meint, dass er die IP meines Servers sperren muss, weil vermutlich mit der IP mal irgendwas verbotenes gemacht wurde, von dem er aber selbst nicht sagen will, was es war. Und seine supertolle IP Sperre möchte ich jetzt einfach umgehen, indem ich die Zugriffe über einen anderen Server leite.
Server1 (hostet mein VPN Netz) = 10.8.0.1
Server2 = 10.8.0.3
Client = 10.8.0.5
Ziel im Internet (Beispielhaft) = 1.2.3.4
Wenn der Client jetzt auf das Ziel zugreifen will, dann läuft der Traffic ja zunächst nach tun0 von Server1, und wird dann auf ens3 von Server1 geleitet, und geht von dort aus an das Ziel.
Ich möchte, dass alle Anfragen des Clients auf das Ziel von tun0 von Server1 per VPN an tun0 von Server2 weitergeleitet werden, und erst dieser den Traffic dann auf sein ens3 weitergibt, von wo aus dieser dann ins Netz geht.
Bisher bin ich schonmal so weit, dass ich den Traffic auf das Ziel von Server1 per IP Route auf den zweiten Server umleite (auf Server1: ip route add 1.2.3.4 via 10.8.0.3)
Soweit so gut, scheint an sich auch zu klappen.
Das Problem ist jetzt Server2. IPv4 Forwarding ist mit sysctl aktiviert, und ich habe eigentlich auch die korrekten Firewall Regeln definiert.
iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
iptables -A FORWARD -i ens3 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o ens3 -j ACCEPT
#Die Regeln sind was Sicherheit betrifft noch optimierbar, das ist mir bewusst, das ist grad nur die "Debugging-Version"
Hab ich irgendwo einen Fehler gemacht? War das mit der IP Route evtl. schon falsch, oder habe ich grundsätzlich einen Denkfehler?
Ich bin für jede Hilfe, Kritik und Anregung dankbar.