Jump to content
  • 0

Неотключаемый перехват DNS-запросов в отдельном сегменте


ValdikSS

Question

Не могу понять, каким образом можно отключить перехват (перенаправление) DNS-запросов на внутренний кеширующий резолвер роутера.

У меня настроен отдельный сегмент сети, в который я подключаюсь через отдельную сеть Wi-Fi. В сегменте установлена отдельная политика доступа, в которую помещён только WireGuard VPN с перенаправлением всего трафика в туннель.

Проблема заключается в том, что все DNS-запросы от клиентов в этом сегменте на любой IP-адрес и порт 53 перенаправляются на внутренний резолвер роутера, на тот IP-адрес, который указан в секции «Профили DNS» раздела «Интернет-фильтр» для интерфейса WireGuard.

Если удалить DNS для интерфейса WireGuard из «Профилей DNS», то DNS на клиентах сегмента перестаёт работать вовсе, независимо от адреса DNS-сервера.

Иными словами, указав какой-то конкретный DNS в настройках подключения WireGuard (он автоматически дублируется в «Профили DNS»), на клиентских машинах возможно использование только этого DNS, причём трафик до него идёт через внутренний резолвер роутера.
Если не указывать никакого DNS в настройках WireGuard, а настроить DNS на компьютерах в сегменте вручную, то DNS-резолв не работает ни на какие адреса.

Изначально у меня был установлен компонент «Фильтрация контента и блокировка рекламы при помощи облачных сервисов», но после его удаления ничего не изменилось.

 

Viva (KN-1910) RU, ОС 3.9.8.

Edited by ValdikSS
  • Upvote 1
Link to comment
Share on other sites

Recommended Posts

  • 0
44 минуты назад, marfo4ka сказал:

Вы уверены в корректности своего высказывания?

У меня:

  1. Применён `opkg dns-override`.
  2. Один системный профиль DNS с DoT серверами.
  3. В котором разрешён транзит запросов.
  4. Контентный фильтр выключен.
  5. Компоненты «NextDNS» и «SkyDNS» отключены.

Как только я создаю тестовую политику доступа, закидываю туда одного клиента, то в `iptables-save | grep " 53 "` появляется:

-A _NDM_HOTSPOT_DNSREDIR -i br0 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_DNSREDIR -i br0 -p tcp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m tcp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_DNSREDIR -i br1 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_DNSREDIR -i br1 -p tcp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m tcp --dport 53 -j REDIRECT --to-ports 41100

`dns-proxy no intercept enable` сообщает `disable intercept for system profile`, при этом в `show dns-proxy` кроме системного виден ещё один профиль Policy0, у которого:

dns_tcp_port = 41100
dns_udp_port = 41100

Навскидку, есть такой костыль (постоянно портит отбирающие правила), но хотелось бы адекватного поведения из коробки.

утверждение было актуально на момент его публикации.

но таки проверил на актуальной 4.1.2 - никакого перехвата нет:


~ # iptables-save |grep _NDM_HOTSPOT_DNSREDIR
:_NDM_HOTSPOT_DNSREDIR - [0:0]
-A _NDM_DNS_REDIRECT -j _NDM_HOTSPOT_DNSREDIR
~ #
 

Edited by Denis P
Link to comment
Share on other sites

  • 0
21 минуту назад, Denis P сказал:

утверждение было актуально на момент его публикации.

но таки проверил на актуальной 4.1.2 - никакого перехвата нет

Перехват есть, 4.1.2. Вероятно, у вас иная конфигурация, для которой перехват не применяется. См. https://forum.keenetic.com/topic/16431-неотключаемый-перехват-dns-запросов-в-отдельном-сегменте/?do=findComment&comment=167233

# iptables-save | grep _NDM_HOTSPOT_DNSREDIR
:_NDM_HOTSPOT_DNSREDIR - [0:0]
-A _NDM_DNS_REDIRECT -j _NDM_HOTSPOT_DNSREDIR
-A _NDM_HOTSPOT_DNSREDIR -i br0 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_DNSREDIR -i br0 -p tcp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m tcp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_DNSREDIR -i br0 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 1900 -j REDIRECT --to-ports 41300
-A _NDM_HOTSPOT_DNSREDIR -i br0 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 5351 -j REDIRECT --to-ports 41301
-A _NDM_HOTSPOT_DNSREDIR -i br0 -p tcp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m tcp --dport 1900 -j REDIRECT --to-ports 41300
-A _NDM_HOTSPOT_DNSREDIR -i br1 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_DNSREDIR -i br1 -p tcp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m tcp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_DNSREDIR -i br1 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 1900 -j REDIRECT --to-ports 41300
-A _NDM_HOTSPOT_DNSREDIR -i br1 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 5351 -j REDIRECT --to-ports 41301
-A _NDM_HOTSPOT_DNSREDIR -i br1 -p tcp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m tcp --dport 1900 -j REDIRECT --to-ports 41300
-A _NDM_HOTSPOT_DNSREDIR -i br2 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_DNSREDIR -i br2 -p tcp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m tcp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_DNSREDIR -i br2 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 1900 -j REDIRECT --to-ports 41300
-A _NDM_HOTSPOT_DNSREDIR -i br2 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 5351 -j REDIRECT --to-ports 41301
-A _NDM_HOTSPOT_DNSREDIR -i br2 -p tcp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m tcp --dport 1900 -j REDIRECT --to-ports 41300
-A _NDM_HOTSPOT_DNSREDIR -i ovpn_br1 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_DNSREDIR -i ovpn_br1 -p tcp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m tcp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_DNSREDIR -i ovpn_br1 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 1900 -j REDIRECT --to-ports 41300
-A _NDM_HOTSPOT_DNSREDIR -i ovpn_br1 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 5351 -j REDIRECT --to-ports 41301
-A _NDM_HOTSPOT_DNSREDIR -i ovpn_br1 -p tcp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m tcp --dport 1900 -j REDIRECT --to-ports 41300

 

Link to comment
Share on other sites

  • 0
14 минуты назад, ValdikSS сказал:

Перехват есть, 4.1.2. Вероятно, у вас иная конфигурация, для которой перехват не применяется. См. https://forum.keenetic.com/topic/16431-неотключаемый-перехват-dns-запросов-в-отдельном-сегменте/?do=findComment&comment=167233

# iptables-save | grep _NDM_HOTSPOT_DNSREDIR
:_NDM_HOTSPOT_DNSREDIR - [0:0]
-A _NDM_DNS_REDIRECT -j _NDM_HOTSPOT_DNSREDIR
-A _NDM_HOTSPOT_DNSREDIR -i br0 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_DNSREDIR -i br0 -p tcp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m tcp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_DNSREDIR -i br0 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 1900 -j REDIRECT --to-ports 41300
-A _NDM_HOTSPOT_DNSREDIR -i br0 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 5351 -j REDIRECT --to-ports 41301
-A _NDM_HOTSPOT_DNSREDIR -i br0 -p tcp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m tcp --dport 1900 -j REDIRECT --to-ports 41300
-A _NDM_HOTSPOT_DNSREDIR -i br1 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_DNSREDIR -i br1 -p tcp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m tcp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_DNSREDIR -i br1 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 1900 -j REDIRECT --to-ports 41300
-A _NDM_HOTSPOT_DNSREDIR -i br1 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 5351 -j REDIRECT --to-ports 41301
-A _NDM_HOTSPOT_DNSREDIR -i br1 -p tcp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m tcp --dport 1900 -j REDIRECT --to-ports 41300
-A _NDM_HOTSPOT_DNSREDIR -i br2 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_DNSREDIR -i br2 -p tcp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m tcp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_DNSREDIR -i br2 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 1900 -j REDIRECT --to-ports 41300
-A _NDM_HOTSPOT_DNSREDIR -i br2 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 5351 -j REDIRECT --to-ports 41301
-A _NDM_HOTSPOT_DNSREDIR -i br2 -p tcp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m tcp --dport 1900 -j REDIRECT --to-ports 41300
-A _NDM_HOTSPOT_DNSREDIR -i ovpn_br1 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_DNSREDIR -i ovpn_br1 -p tcp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m tcp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_DNSREDIR -i ovpn_br1 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 1900 -j REDIRECT --to-ports 41300
-A _NDM_HOTSPOT_DNSREDIR -i ovpn_br1 -p udp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m udp --dport 5351 -j REDIRECT --to-ports 41301
-A _NDM_HOTSPOT_DNSREDIR -i ovpn_br1 -p tcp -m mark --mark 0xffffaaa -m pkttype --pkt-type unicast -m tcp --dport 1900 -j REDIRECT --to-ports 41300

 

Конкретно в моем случае речь про

opkg dns-override

проверил на нескольких локациях, в дополнительных профилях перехвата нет

Link to comment
Share on other sites

  • 0
Posted (edited)
12 минуты назад, Denis P сказал:

Конкретно в моем случае речь про

opkg dns-override

Не работает! Применил opkg dns-override, сохранил конфигурацию, перезагрузился, на всякий случай дважды, убедился, что в выводе show run есть строка opkg dns-override, и всё равно перехватывающие правила есть.

Edited by ValdikSS
Link to comment
Share on other sites

  • 0
2 часа назад, ValdikSS сказал:

Не работает! Применил opkg dns-override, сохранил конфигурацию, перезагрузился, на всякий случай дважды, убедился, что в выводе show run есть строка opkg dns-override, и всё равно перехватывающие правила есть.

да, действительно воспроизводится, если в дополнительном сегменте назначить политику не по умолчанию.

Если же политику назначать отдельным клиентам, подобного поведения нет

Edited by Denis P
Link to comment
Share on other sites

  • 0
22 часа назад, Denis P сказал:

да, действительно воспроизводится, если в дополнительном сегменте назначить политику не по умолчанию.

Если же политику назначать отдельным клиентам, подобного поведения нет

Это, скажем так, известная особенность. Альтернативой ей может быть просто блокировка всего DNS в политике.

Предложите ваше видение, как dns-override должен сосуществовать с политиками.

Link to comment
Share on other sites

  • 0
2 часа назад, Le ecureuil сказал:

Это, скажем так, известная особенность. Альтернативой ей может быть просто блокировка всего DNS в политике.

Предложите ваше видение, как dns-override должен сосуществовать с политиками.

предполагалось что dns-override полностью отключает прокси для клиентов и запросы должны ходить напрямую к тем днс, которые указаны в подключении из "не основной" политики

собственно как и чекбокс "транзит запросов"

Edited by Denis P
Link to comment
Share on other sites

  • 0
19 часов назад, Denis P сказал:

предполагалось что dns-override полностью отключает прокси для клиентов и запросы должны ходить напрямую к тем днс, которые указаны в подключении из "не основной" политики

собственно как и чекбокс "транзит запросов"

А как вы прописываете DNS в "не основную" политику?

Link to comment
Share on other sites

  • 0
1 час назад, Le ecureuil сказал:

А как вы прописываете DNS в "не основную" политику?

Точно так же как и описано в первом посте темы, указанием dns сервер'а в wg подключении

Edited by Denis P
Link to comment
Share on other sites

  • 0
В 02.04.2024 в 13:13, Denis P сказал:

Точно так же как и описано в первом посте темы, указанием dns сервер'а в wg подключении

Ну вот смотрите.

Приходит DNS запрос из локальной сети от клиента 192.168.1.5 на 192.168.1.1:53 (этот клиент в основной политике) и приходит DNS запрос из локальной сети от клиента 192.168.1.6 на 192.168.1.1:53 (этот клиент в политике Wireguard). Подскажите, как без редиректа второго клиента "разделить" потоки DNS запросов и обслуживать их "персонально"? Сейчас для разделения весь трафик DNS с хоста 192.168.1.6 направляется редиректом в другой порт, а там слушает другой экземпляр DNS-proxy с другими апстримами. Если убрать редирект, они пойдут все в основной.

Link to comment
Share on other sites

  • 0
2 минуты назад, Le ecureuil сказал:

Ну вот смотрите.

Приходит DNS запрос из локальной сети от клиента 192.168.1.5 на 192.168.1.1:53 (этот клиент в основной политике) и приходит DNS запрос из локальной сети от клиента 192.168.1.6 на 192.168.1.1:53 (этот клиент в политике Wireguard). Подскажите, как без редиректа второго клиента "разделить" потоки DNS запросов и обслуживать их "персонально"? Сейчас для разделения весь трафик DNS с хоста 192.168.1.6 направляется редиректом в другой порт, а там слушает другой экземпляр DNS-proxy с другими апстримами. Если убрать редирект, они пойдут все в основной.

Если бы было именно так, то и проблемы бы не было.

А проблема в том, что запросы на любой_ip_адрес:53 перенаправляются на 192.168.1.1:53.

Link to comment
Share on other sites

  • 0
В 04.04.2024 в 12:29, ValdikSS сказал:

Если бы было именно так, то и проблемы бы не было.

А проблема в том, что запросы на любой_ip_адрес:53 перенаправляются на 192.168.1.1:53.

Ok, теперь стало понятнее. Попробуем это решить.

Link to comment
Share on other sites

  • 0
В 04.04.2024 в 12:29, ValdikSS сказал:

Если бы было именно так, то и проблемы бы не было.

А проблема в том, что запросы на любой_ip_адрес:53 перенаправляются на 192.168.1.1:53.

Готово, в следующей 4.2 будет.

  • Upvote 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...