En mi enrutador con OpenWRT, uso dnsmasq para el envenenamiento de DNS para bloquear anuncios. Si el host está en la lista, el enrutador responde a la solicitud de DNS con 192.168.99.99, que solo y siempre sirve un gif transparente 1x1 (el método pixelserv).
Sin embargo, los dispositivos locales pueden omitir esto utilizando directamente su propio servidor DNS. ¿Cómo puedo redireccionar estas solicitudes de DNS para bloquear los anuncios? .
Probé comandos como estos (8.8.8.8 y 8.8.4.4 son los servidores DNS, 192.168.1.102 el dispositivo fuente, 192.168.1.1 la IP de mi enrutador):
iptables -t nat -A PREROUTING -d 8.8.8.8 -j DNAT --to-destination 192.168.1.1
iptables -t nat -A PREROUTING -d 8.8.4.4 -j DNAT --to-destination 192.168.1.1
# or:
iptables -t nat -A PREROUTING -i wlan0 -s 192.168.1.102 -p udp --dport 53 -j REDIRECT --to-port 53
iptables -t nat -A PREROUTING -i wlan0 -s 192.168.1.102 -p tcp --dport 53 -j REDIRECT --to-post 53
Intenté agregar una regla de tráfico mediante el panel de administración de OpenWrt - & gt; Fuente NAT, que coincida con "Cualquier TCP, UDP de IP 192.168.1.102 en lan Para cualquier host, puerto 53 en lan", con la acción "Reescribir en la fuente IP 192.168.1.1, puerto 53". Creo que esto se efectúa también en iptables de cualquier manera.
Pero encuentro que las consultas de DNS todavía se están resolviendo:
root@OpenWrt:~# tcpdump -vvv -i wlan0 port 53
Chromecast.lan.42591 > google-public-dns-a.google.com.domain: [udp sum ok] 57897+ A? pubads.g.doubleclick.net. (42)
google-public-dns-a.google.com.domain > Chromecast.lan.42591: [udp sum ok] 57897 q: A? pubads.g.doubleclick.net. 5/0/0 pubads.g.doubleclick.net. [5h59m59s] CNAME partnerad.l.doubleclick.net., partnerad.l.doubleclick.net. [4m59s] A 74.125.136.157, partnerad.l.doubleclick.net. [4m59s] A 74.125.136.156, partnerad.l.doubleclick.net. [4m59s] A 74.125.136.155, partnerad.l.doubleclick.net. [4m59s] A 74.125.136.154 (132)
Tal vez un método completamente diferente, por ejemplo a través de dnsmasq, ¿funcionaría? Sin embargo, no pude encontrar esto.
(He encontrado alguna explicación sobre cómo redireccionar a otro servidor DNS remoto, pero eso no me ayudará aquí. Es principalmente para regiones de desbloqueo o para Tomate o DD-WRT . Además, esto está estrechamente relacionado con mi Pregunta anterior )
iptables -t nat -A PREROUTING -i br-lan -p udp --dport 53 -j DNAT --to 192.168.1.1