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.