(dnat|redirect) mit Masquerade funktioniert nicht

(dnat|redirect) mit Masquerade funktioniert nicht

Ich habe ein Problem. Bis vor kurzem hat es noch einwandfrei funktioniert. Jetzt funktioniert es nicht mehr. Auf einem anderen Testserver funktioniert es jedoch einwandfrei.

Ich leite den gesamten Datenverkehr an Tor weiter und dieser Teil funktioniert einwandfrei. Das Problem liegt meiner Meinung nach an der Maskerade, da sie den DNSAT/Redirect-Port 9040 nach dem Empfang der Antwort nicht auf den Ursprungsport 80/443 zurücksetzt.

  • http://ipinfo.io:9040

  • Software:

    • 1.6.1-2ubuntu2
    • Ubuntu 16.04/18.04 das gleiche Ergebnis
    • tor 0.3.2.9-1build1
  • Vernetzung

    • virbr1 – 192.168.2.0/24 – nur Host
    • eno1 - 192.168.1.0/24 - Internet
  • Iptables:

    • /sbin/iptables -t nat -A POSTROUTING -o virbr1 -j MASQUERADE
    • /sbin/iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE # auf einem anderen Server funktioniert auch ohne, das war nur zum Testen
    • /sbin/iptables -t nat -A PREROUTING -p udp --source 192.168.2.6 ! --destination 192.168.2.1 -j DNAT --to-destination 192.168.2.1:9040 # getestet REDIRECT --to-ports 9040, das gleiche

*filter :INPUT ACCEPT [174876:86417485] :FORWARD DROP [0:0] :OUTPUT ACCEPT [170612:89138010] :DOCKER - [0:0] :DOCKER-ISOLATION - [0:0] :DOCKER-USER - [0:0] -A FORWARD -d 192.168.2.8/32 -i virbr1 -o virbr1 -j ACCEPT -A FORWARD -s 192.168.2.8/32 -i virbr1 -o virbr1 -j ACCEPT -A FORWARD -d 192.168.2.0/24 -o virbr1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A FORWARD -s 192.168.2.0/24 -i virbr1 -j ACCEPT -A FORWARD -i virbr1 -o virbr1 -j ACCEPT -A OUTPUT -s 192.168.2.8/32 -j DROP COMMIT # Completed on Tue Feb 20 09:32:11 2018 # Generated by iptables-save v1.6.1 on Tue Feb 20 09:32:11 2018 *nat :PREROUTING ACCEPT [193:19723] :INPUT ACCEPT [193:19723] :OUTPUT ACCEPT [129:12889] :POSTROUTING ACCEPT [124:11792] :DOCKER - [0:0] -A PREROUTING -s 192.168.2.8/32 -p tcp -m tcp --dport 53 -j DNAT --to-destination 192.168.2.1:5353 -A PREROUTING -s 192.168.2.8/32 -p udp -m udp --dport 53 -j DNAT --to-destination 192.168.2.1:5353 -A PREROUTING -s 192.168.2.8/32 ! -d 192.168.2.1/32 -p tcp -j DNAT --to-destination 192.168.2.1:9040 -A PREROUTING -s 192.168.2.8/32 ! -d 192.168.2.1/32 -p udp -j DNAT --to-destination 192.168.2.1:9040 -A POSTROUTING -o tun5 -j MASQUERADE -A POSTROUTING -o virbr1 -j MASQUERADE COMMIT # Completed on Tue Feb 20 09:32:11 2018 # Generated by iptables-save v1.6.1 on Tue Feb 20 09:32:11 2018 *mangle :PREROUTING ACCEPT [3538365:1832890486] :INPUT ACCEPT [3538362:1832890258] :FORWARD ACCEPT [3:228] :OUTPUT ACCEPT [3495644:1711746305] :POSTROUTING ACCEPT [3496898:1711973811] -A POSTROUTING -o virbr1 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill -A POSTROUTING -o virbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill -A POSTROUTING -o virbr1 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill COMMIT

  • /proc/sys/net/ipv4/ip_forwardist eingestellt auf1

  • Überwachung mitconntrack -L

    • tcp 6 431973 HERGESTELLT src=192.168.2.6 dst=172.217.16.4 sport=49215 dport=443 src=192.168.2.1 dst=192.168.2.6 sport=9040 dport=49215 [VERSICHERT] mark=0 use=1
    • tcp 6 431983 HERGESTELLT src=192.168.2.6 dst=104.81.60.33 sport=49226 dport=80 src=192.168.2.1 dst=192.168.2.6 sport=9040 dport=49226 [VERSICHERT] mark=0 use=1
    • tcp 6 431972 HERGESTELLT src=192.168.2.6 dst=64.233.184.154 sport=49211 dport=443 src=192.168.2.1 dst=192.168.2.6 sport=9040 dport=49211 [VERSICHERT] mark=0 use=1
    • tcp 6 431972 HERGESTELLT src=192.168.2.6 dst=54.192.185.106 sport=49216 dport=80 src=192.168.2.1 dst=192.168.2.6 sport=9040 dport=49216 [VERSICHERT] mark=0 use=1
    • tcp 6 431973 HERGESTELLT src=192.168.2.6 dst=216.58.208.46 sport=49194 dport=80 src=192.168.2.1 dst=192.168.2.6 sport=9040 dport=49194 [VERSICHERT] mark=0 use=1
    • tcp 6 74 TIME_WAIT src=192.168.2.6 dst=178.255.83.1 sport=49190 dport=80 src=192.168.2.1 dst=192.168.2.6 sport=9040 dport=49190 [VERSICHERT] mark=0 use=1

PS: Auf einem anderen Server mit dem gleichen Betriebssystem, der gleichen iptables-Version und den gleichen iptables-Regeln funktioniert es einwandfrei.

Dank im Voraus

Antwort1

ok, ich habe das Problem gelöst.

es hängt mit dem Docker-Update und der Änderung des Kernel-Netzwerkfilters zusammen, weitere Details hier https://forums.fedoraforum.org/showthread.php?312824-Bridge-broken-after-docker-install&p=1785664#post1785664

das Setzen auf 0 scheint mein Problem zu lösen

net.bridge.bridge-nf-call-ip6tables=0 net.bridge.bridge-nf-call-iptables=0 net.bridge.bridge-nf-call-arptables=0

Danke

verwandte Informationen