Iptables (таблица mangle) не может обнаружить трафик пакетов UDP с ограничениями порта назначения

Iptables (таблица mangle) не может обнаружить трафик пакетов UDP с ограничениями порта назначения

Информация об операционной системе.

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

Что случилось?

Я запускаю службу (ss-redir), которая может перенаправлять UDP-трафик

Эта служба открывает порт udp 1080

Я хочу перенаправить все DNS-запросы на порт UDP 127.0.0.1:1080

Что ты сделал?

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

Что вы ожидали увидеть?

Несколько пакетов UDP прошли через цепочку PREROUTING

Точная сумма должна быть указана в первом (pkts) и втором (bytes) столбце.

Что вы увидели вместо этого?

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

Подробная конфигурация.

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

это моя услуга

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

Что ты сделал потом?

Похоже, что порт назначения DNS-запроса не 53. Пакеты, перехваченные Wireshark, указывают на то, что dport — 53, а IP-адрес назначения — 8.8.8.8.

Поэтому я добавил еще несколько правил перед этим в цепочке 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

затем беги

nslookup www.google.com

iptables -t mangle -L -nv

Вывод выглядит так:

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-пакеты по-прежнему не проходят ss-redir

Я не знаю, что я сделал не так. Этот вопрос сводит меня с ума. Кто-нибудь мне поможет?

Любые советы высоко ценится.

Большое спасибо

Связанный контент