[linux, iptables] Umleitung von HTTPS traffic auf anderes Interface klappt nicht

17/03/2014 - 23:35 von Lars Uhlmann | Report spam
Ich möchte hilfsweise ausgehenden HTTPS-Traffic aus einem internen
RFC1918-Netz auf ein bestimmtes Interfaces umleiten.

Vielleicht die Problemerlàuterung vorab, bevor ich das Setup beschreibe:
Die Umleitung funktioniert soweit, als daß HTTPS-Pakete richtig
umgeleitet werden und den Router auch über das neue Interface verlassen.
Antwortpakete kommen an, werden aber nicht mehr richtig zurückgeleitet.

Das Setup sieht so also aus:

# ip route show
| default via 10.0.0.1 dev eth1
| 10.0.0.0/30 dev eth1 proto kernel scope link src 10.0.0.2
| 10.5.0.0/24 via 10.5.0.2 dev tun_vpn_tcp
| 10.5.0.2 dev tun_vpn_tcp proto kernel scope link src 10.5.0.1
| X.X.X.8/29 dev eth2 proto kernel scope link src X.X.X.12
| 172.20.0.0/24 dev eth3 proto kernel scope link src 172.20.0.254

# ip rule show
| 0: from all lookup local
| 32763: from all fwmark 0x443 lookup rt_service_redirect
| 32764: from all to X.X.X.8/29 lookup rt_bind_interface
| 32765: from X.X.X.8/29 lookup rt_bind_interface
| 32766: from all lookup main
| 32767: from all lookup default

die betreffende Routingtabelle:

# ip route show table rt_service_redirect
| default via X.X.X.9 dev eth2

die Umleitung:

| # (1) set default policy
| iptables -P FORWARD DROP
|
| # (2) mark ingressing HTTPS traffic
| iptables -t mangle -A PREROUTING -i eth3 -p tcp --dport 443 -j MARK --set-mark 0x443
|
| # (3) accept marked HTTPS traffic
| iptables -A FORWARD -m mark --mark 0x443 -j ACCEPT
|
| # (4) masquerade egressing HTTPS traffic
| iptables -t nat -A POSTROUTING -o eth2 -m mark --mark 0x443 -j MASQUERADE
|
| # (5) allow returning HTTPS traffic
| iptables -A FORWARD -i eth2 -o eth3 -p tcp --sport 443 -j ACCEPT
|
| # (6) add lookup rule for marked HTTPS traffic
| ip rule add fwmark 0x443 table rt_service_redirect

Die Regeln (2) bis (4) bzw. (6) funktionieren, was anhand der Paketzàhler und
von »tcpdump« bestàtigt wird. Nur die Paketzàhler zu (5) bleiben bei Null und
»tcpdump« zeigt auch nur die ausgehenden SYN-Pakete. Warum könnte das
Masquerading fehlschlagen?

Lars
 

Lesen sie die antworten

#1 Sven Hartge
18/03/2014 - 01:42 | Warnen spam
Lars Uhlmann wrote:

Ich möchte hilfsweise ausgehenden HTTPS-Traffic aus einem internen
RFC1918-Netz auf ein bestimmtes Interfaces umleiten.

Vielleicht die Problemerlàuterung vorab, bevor ich das Setup
beschreibe: Die Umleitung funktioniert soweit, als daß HTTPS-Pakete
richtig umgeleitet werden und den Router auch über das neue Interface
verlassen. Antwortpakete kommen an, werden aber nicht mehr richtig
zurückgeleitet.



Setze einmal

net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0

und schaue, ob sich das Verhalten àndert.



Sigmentation fault. Core dumped.

Ähnliche fragen