Iptables (Mangle-Tabelle) kann UDP-Paketverkehr mit Einschränkungen des Zielports nicht erkennen

Iptables (Mangle-Tabelle) kann UDP-Paketverkehr mit Einschränkungen des Zielports nicht erkennen

Informationen zum Betriebssystem.

Linux RaspberryPi 4.14.98-v7+ oder Linux Debian-Stretch-1 4.9.0-11-AMD64

Was ist passiert?

Ich starte einen Dienst (ss-redir), der UDP-Verkehr umleiten kann

Dieser Dienst öffnet den UDP-Port 1080

Ich möchte alle DNS-Abfragen auf den UDP-Port 127.0.0.1:1080 umleiten

Was hast du gemacht?

ip route add local default dev lo table 100
ip rule add fwmark 1 lookup 100
iptables -t mangle -A PREROUTING -p udp --dport 53 -j TPROXY --on-port 1080 --tproxy-mark 0x01/0x01
nslookup www.google.com

Was haben Sie erwartet zu sehen?

Mehrere UDP-Pakete haben die PREROUTING-Kette durchlaufen

Der genaue Betrag sollte in der ersten (Pakete) und zweiten (Bytes) Spalte angezeigt werden.

Was haben Sie stattdessen gesehen?

pkts bytes target     prot opt in     out     source               destination         
    0     0 TPROXY     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:53 TPROXY redirect 0.0.0.0:1080 mark 0x1/0x1

Konfiguration im Detail.

root@User:~# cat /etc/resolv.conf
nameserver 8.8.8.8

das ist mein Service

root@User:~# netstat -ntulp 
udp        0      0 0.0.0.0:1080            0.0.0.0:*                           3771/ss-redir

Was hast du dann getan?

Es scheint, dass der Zielport der DNS-Abfrage nicht 53 ist. Die von Wireshark erfassten Pakete zeigen an, dass der D-Port 53 und die Ziel-IP 8.8.8.8 ist.

Daher habe ich vor dieser Regel der PREROUTING-Kette noch einige andere Regeln hinzugefügt:

iptables -t mangle -I PREROUTING --prot udp -d myserverip/32 -j RETURN
iptables -t mangle -I PREROUTING --prot udp -d 192.168.128.10/32 -j RETURN
iptables -t mangle -I PREROUTING --prot udp -d 127.0.0.0/24 -j RETURN

dann renne

nslookup www.google.com

iptables -t mangle -L -nv

Die Ausgabe sieht folgendermaßen aus:

Chain PREROUTING (policy ACCEPT 90 packets, 6699 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0   RETURN     udp  --  *      *       0.0.0.0/0             myserverip  
    1    29   RETURN     udp  --  *      *       0.0.0.0/0            127.0.0.0/24        
    0     0   RETURN     udp  --  *      *       0.0.0.0/0            192.168.128.10      
    0     0   TPROXY     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:53 TPROXY redirect 0.0.0.0:1080 mark 0x1/0x1

UDP-Pakete passieren immer noch nicht ss-redir

Ich weiß nicht, was ich falsch gemacht habe. Diese Frage macht mich verrückt. Kann mir jemand helfen?

Jeder Ratschlag wird sehr geschätzt.

Vielen Dank

verwandte Informationen