ubuntuusers.de

iptables - Routing zwischen zwei Gateways mit OpenVPN

Status: Ungelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

codeworx

Anmeldungsdatum:
26. September 2017

Beiträge: Zähle...

Hallo,

meine iptables-Künste sind begrenzt. Ich versuche mein Problem deshalb erstmal zu beschreiben.

Ein Server in einem Rechenzentrum (extern) soll eine VPN-Verbindung zu einem Raspberry-Pi (lokal) herstellen, welcher sowohl am Router (lokal) hängt, als auch via 3G-Stick im Internet verbunden ist.

Server (Internet) → Fritzbox (Office) ←> (eth0) Raspberry-Pi (ppp0) ←> 3G-Internet

Ziel: Der Server im externen Rechenzentrum soll die 3G-IP-Adresse haben.

Status 1: 3G-Verbindung ist ausgeschaltet

  • Raspi ist mit Office-Internet online

  • Alles läuft, ich kann die Verbindung herstellen, der Traffic wird über die normale Internetverbindung des Raspi geleitet und ich habe die VPN-Verbindung erfolgreich hergestellt

  • Server hat Office-IP-Adresse

Status 2: 3G-Verbindung ist angeschaltet

  • Raspi ersetzt die defaultroute und "curl http://ipinfo.io" zeigt, dass die 3G-Verbindung die primäre Connection ist.

  • OpenVPN Verbindung kann hergestellt werden, sobald ich aber versuche, den Traffic über ppp0 zu routen, habe ich keine Internetverbindung.

Ich bin mir zu 99,9% sicher, dass meine iptable-rules totaler Schrott sind und ich habe noch nirgendwo einen ähnlichen Fall gefunden, so dass ich hiervon ableiten könnte, wie ich die Regeln schreiben soll.

Hier sind meine aktuellen Regeln:

iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 1194 -j ACCEPT
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -o ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i ppp0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o ppp0 -j MASQUERADE
iptables -A OUTPUT -o tun+ -j ACCEPT

Der Versuch war, eingehende Verbindungen am eth0 zu erlauben und dann den entstandenen Tunnel mit ppp0 zu verknüpfen. Ich habe nur das Gefühl, dass ich mir hierbei "den Ast auf dem ich sitze" absäge, indem ich die Inet-Verbindung auf eth0 mit ppp0 switche und somit auch den Tunnel kappe. Es müssen ja beide Internetverbindungen aktiv bleiben - über eth0 wird der Tunnel aufrecht erhalten und über ppp0 soll der ausgehende Traffic laufen und zürück durch den Tunnel.

Ich hoffe, ich konnte mich einigermaßen verständlich ausdrücken und jemand hat mein Problem verstanden, ggf. sogar eine Lösung parat ☺

Bearbeitet von redknight:

forensyntax hinzugefügt. So wird es gleich deutlicher.

encbladexp Team-Icon

Ehemaliger
Avatar von encbladexp

Anmeldungsdatum:
16. Februar 2007

Beiträge: 17529

codeworx schrieb:

Ziel: Der Server im externen Rechenzentrum soll die 3G-IP-Adresse haben.

Mir ist kein Provider bekannt der ohne Carrier Grade NAT (CGN) auskommt, dementsprechend ist man über diese Adresse eh nicht wirklich per Port Forward oder so erreichbar. Was ist das Ziel deiner Idee?

mfg Stefan

Antworten |