Посылать прямые запросы DNS на OpenWRT

на моем маршрутизаторе с OpenWRT я использую dnsmasq для отравления DNS для блокировки рекламы. Если хост находится в списке, маршрутизатор отвечает на запрос DNS с 192.168.99.99, который только и всегда служит 1x1 прозрачный gif (метод pixelserv).

однако локальные устройства могут обойти это, непосредственно используя свой собственный DNS-сервер. как я могу перенаправить эти DNS-запросы, чтобы объявления были заблокированы?.

Я пробовал такие команды (8.8.8.8 и 8.8.4.4 являются DNS сервера, 192.168.1.102 исходное устройство, 192.168.1.1 IP моего роутера):

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

Я пробовал добавлять добавление трафика правило через OpenWRT в админ панель -> источник НЭТ, соответствующие "любой TCP или UDP с IP 192.168.1.102 в локальной сети на любой хост, порт 53 в локальной сети", и с "переписать исходный IP-адрес 192.168.1.1, порт 53". Я считаю, что это осуществляется в iptables, а также в любом случае.

но я считаю, что запросы DNS по-прежнему разрешаются:

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)

возможно вполне другой метод, например через dnsmasq, будет работать? Однако я не мог найти этого.

(Я нашел некоторое объяснение о том, как перенаправить на другой удаленный DNS-сервер, но это не поможет мне здесь. Это в основном для разблокируют регионов или для помидоров или DD-WRT. Кроме того, это тесно связано с моей предыдущий вопрос)

28
задан Community
16.12.2022 11:46 Количество просмотров материала 3350
Распечатать страницу

1 ответ

использовать iptables -t nat -A PREROUTING -i br-lan -p udp --dport 53 -j DNAT --to 192.168.1.1

объяснение в iptables использует цепи для маршрутизации трафика. Мы используем iptables -t nat -A PREROUTING выберите сеть, которую мы хотим добавить новое правило. Затем мы сузим выбор, чтобы включить только трафик, выходящий в Интернет, выбрав интерфейс -i br-lan что интерфейс LAN OpenWRT. Так как мы только перенаправление DNS udp 53 добавить -p udp --dport 53. Теперь, когда мы получаем только DNS-пакеты, мы перенаправляем их на локальный DNS-сервер с помощью -j DNAT --to 192.168.1.1. Вы можете заменить назначение с любым DNS-сервером.

надеюсь, что это помогает.

2
отвечен Zalmy 2022-12-17 19:34

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх