%20n%C3%A3o%20pode%20detectar%20tr%C3%A1fego%20de%20pacotes%20UDP%20com%20restri%C3%A7%C3%B5es%20de%20porta%20de%20destino.png)
Informações do sistema operacional.
Linux raspberrypi 4.14.98-v7+ ou Linux debian-stretch-1 4.9.0-11-amd64
O que aconteceu?
Eu inicio um serviço (ss-redir) que pode redirecionar o tráfego udp
Este serviço abre a porta udp 1080
Quero redirecionar todas as consultas de DNS para a porta udp 127.0.0.1:1080
O que você fez?
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
O que você esperava ver?
Vários pacotes UDP passaram pela cadeia PREROUTING
A quantidade exata deve ser mostrada na primeira coluna (pacotes) e na segunda (bytes)
O que você viu em vez disso?
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
Configuração em detalhes.
root@User:~# cat /etc/resolv.conf
nameserver 8.8.8.8
este é o meu serviço
root@User:~# netstat -ntulp
udp 0 0 0.0.0.0:1080 0.0.0.0:* 3771/ss-redir
O que voce fez em seguida?
Parece que a porta de destino da consulta DNS não é 53, os pacotes foram capturados pelo wireshark indicam que o dport é 53 e o ip de destino é 8.8.8.8.
Então adicionei algumas outras regras antes daquela na cadeia 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
então corra
nslookup www.google.com
iptables -t mangle -L -nv
A saída é semelhante a esta:
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
Pacotes UDP ainda não passam por ss-redir
Não sei o que fiz de errado. Essa pergunta está me deixando louco. Alguém vai me ajudar?
Qualquer conselho é muito apreciado.
Muito obrigado