Iptables (tabla mangle) no puede detectar el tráfico de paquetes udp con restricciones de puerto de destino

Iptables (tabla mangle) no puede detectar el tráfico de paquetes udp con restricciones de puerto de destino

Información del sistema operativo.

Linux raspberrypi 4.14.98-v7+ o Linux debian-stretch-1 4.9.0-11-amd64

¿Qué pasó?

Inicio un servicio (ss-redir) que puede redirigir el tráfico udp

Este servicio abre el puerto udp 1080.

Quiero redirigir todas las consultas de DNS al puerto udp 127.0.0.1:1080

¿Qué hiciste?

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

¿Qué esperabas ver?

Varios paquetes UDP han pasado por la cadena PREROUTING

La cantidad exacta debe mostrarse en la primera columna (paquetes) y segunda (bytes).

¿Qué viste en su lugar?

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

Configuración en detalle.

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

este es mi servicio

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

¿Entonces que hiciste?

Parece que el puerto de destino de la consulta DNS no es 53, los paquetes fueron capturados por Wireshark indican que el puerto es 53 y la IP de destino es 8.8.8.8.

Entonces agregué algunas otras reglas antes de esa en la cadena PREROUTING:

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

entonces corre

nslookup www.google.com

iptables -t mangle -L -nv

La salida se ve así:

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

Los paquetes UDP aún no pasan ss-redir

No sé qué hice mal. Esta pregunta me está volviendo loco. ¿Alguien me ayudará?

Cualquier consejo es muy apreciado.

Muchas gracias

información relacionada