Skip to content

Перехват стороннего DNS трафика

gSpot edited this page Nov 2, 2024 · 2 revisions

При использовании DNS-шифрования (dnscrypt-proxy, https-dns-proxy и пр.), а также в режимах обхода блокировок *-fqdn, необходимо чтобы все хосты в локальной сети всегда использовали DNS-сервер роутера для разрешения DNS-запросов. Некоторые мобильные устройства могут делать DNS-запросы в обход роутера, даже при наличии корректной конфигурации (например, Android устройства могут обращаться к DNS-серверам Google). Решить проблему можно принудительным перенаправлением всего локального DNS-трафика на DNS-сервер роутера. Следующие команды добавят правило dnsproxy-dns-leaks в конфигурацию межсетевого экрана:

uci add firewall redirect
uci set firewall.@redirect[-1].src="lan"
uci set firewall.@redirect[-1].src_dport="53"
uci set firewall.@redirect[-1].target="DNAT"
uci set firewall.@redirect[-1].dest_ip="`uci get network.lan.ipaddr|sed 's-/.*$--'`"
uci set firewall.@redirect[-1].name="dnsproxy-dns-leaks"
uci commit firewall

В актуальных сейчас версиях пакета https-dns-proxy правила перехвата DNS трафика добавляются автоматически при включении соответствующей опции, поэтому описанные выше операции являются избыточными. Нужно учитавать ещё один важный момент касательно стороннего DNS-трафика. Все современные боаузеры и мобильные устройства имеют встроенную функцию шифрования DNS (она может называться "DNS через HTTPS" и т.п. ), её необходимо отключить, чтобы все устройства и приложения в сети использовали исключительно DNS-сервер роутера.