Перейти к содержимому
  • 0

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


ValdikSS

Вопрос

Не могу понять, каким образом можно отключить перехват (перенаправление) 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.

Изменено пользователем ValdikSS
Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0
7 минут назад, ANDYBOND сказал:

Более приоритетной настройкой в тех же профилях DNS является настройка соотношения сетей или даже конкретных зарегистрированных устройств с определённым профилем DNS

У меня нет профилей DNS. Они были раньше (с ними была та же проблема), за них отвечает компонент «Фильтрация контента и блокировка рекламы при помощи облачных сервисов». Сейчас только один, системный.

8 минут назад, ANDYBOND сказал:

В системном профиле транзит разрешён по умолчанию.

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

 

Ссылка на комментарий
Поделиться на других сайтах

  • 0
8 минут назад, ANDYBOND сказал:

Даже после перезагрузки маршрутизатора (на примере системного профиля)? Просто бага в том, что перезагрузка нужна, чтоб изменения вступили в силу.

Установил компонент, включил «Публичные DNS-резолверы и настраиваемые профили» в «Режиме фильтрации». Для всех сегментов указан единственный «Системный» профиль DNS, у которого включён транзит.

Результат: в стандартном «домашнем» сегменте всё работает корректно, в сегменте VPN — перехват запросов и перенаправление на VPN-резолвер (который стоит последним в списке системного профиля DNS) через кеширующий резолвер на роутере.

Создал отдельный профиль DNS со включённым транзитом, указал в нём единственный DNS-резолвер, задал сегменту использовать этот профиль, перезагрузил роутер — запросы в VPN-сегменте всё так же перехватываются.

Устройства в VPN-сегменте все незарегистрированные.

Ссылка на комментарий
Поделиться на других сайтах

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

Установил компонент, включил «Публичные DNS-резолверы и настраиваемые профили» в «Режиме фильтрации». Для всех сегментов указан единственный «Системный» профиль DNS, у которого включён транзит.

Результат: в стандартном «домашнем» сегменте всё работает корректно, в сегменте VPN — перехват запросов и перенаправление на VPN-резолвер (который стоит последним в списке системного профиля DNS) через кеширующий резолвер на роутере.

Создал отдельный профиль DNS со включённым транзитом, указал в нём единственный DNS-резолвер, задал сегменту использовать этот профиль, перезагрузил роутер — запросы в VPN-сегменте всё так же перехватываются.

Устройства в VPN-сегменте все незарегистрированные.

dns-proxy filter profile DnsProfile0 intercept no enable

Или

dns-proxy intercept no enable

Ссылка на комментарий
Поделиться на других сайтах

  • 0
1 минуту назад, ANDYBOND сказал:

В каждом профиле серверы должны быть разные, иначе они (повторяющиеся) будут использоваться для основного (в конкретный момент) подключения.

Как только я удаляю DNS-сервер из стандартного профиля, DNS-резолвинг перестаёт работать в сегменте VPN, независимо от того, что указано в профиле DNS, который я назначаю сегменту VPN.

Я уже и совершенно разные адреса указал, и маршруты через VPN-интерфейс до них прописал — ничего. Единственное изменение только в том, что локальный резолвер теперь мне отвечает REFUSED, вместо просто отсутствия ответа.

Баг я завёл еще вчера, пока никто не ответил, поэтому написал сюда.

Ссылка на комментарий
Поделиться на других сайтах

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

dns-proxy intercept no enable

Уже установлено.

!
dns-proxy
    rebind-protect auto
    filter profile DnsProfile0 description VPN
    filter profile DnsProfile0 dns53 upstream 8.8.8.8
    filter profile DnsProfile0 dns53 upstream 8.8.4.4
    filter profile DnsProfile0 intercept no enable
    filter assign interface profile Bridge2 DnsProfile0
    filter engine public
!

 

Ссылка на комментарий
Поделиться на других сайтах

  • 0
# iptables -t nat -vnL

...
Chain _NDM_HOTSPOT_DNSREDIR (1 references)
...
 1122 70308 REDIRECT   udp  --  br2    *       0.0.0.0/0            0.0.0.0/0            mark match 0xffffd00 PKTTYPE = unicast udp dpt:53 redir ports 41100
    4   208 REDIRECT   tcp  --  br2    *       0.0.0.0/0            0.0.0.0/0            mark match 0xffffd00 PKTTYPE = unicast tcp dpt:53 redir ports 41100

После удаления этих правил всё работает корректно.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
5 минут назад, ANDYBOND сказал:

А как указан адрес сервера в VPN (буквенный или числовой)? И о каком протоколе речь?

WireGuard, везде указано IP-адресами.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
7 минут назад, ANDYBOND сказал:

https://help.keenetic.com/hc/ru/articles/6179082606994-Дополнительные-DNS-серверы

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

Указать конкретный интерфейс можно только в системном профиле. Запись DNS VPN'а и так указана с интерфейсом, если её удалить — резолвинг в сегменте перестаёт работать.

Интерфейс у резолверов, добавляемых в отдельный профиль DNS, назначить нельзя. Да и вообще, они, похоже, никак не используются: резолвинг идёт только через адрес, прописанный в настройках VPN-подключения, а не где либо еще. Несмотря на то, что у меня заведён отдельный профиль DNS, который назначен сегменту, адреса из профиля банально не используются.

Для теста я указываю 8.8.8.8 и 8.8.4.4, которые доступны через все интерфейсы. Уже пробовал добавлять маршруты до этих адресов через VPN-интерфейс — не помогает.

Проблема в том, что я не могу отключить перехват запросов. Мне вообще в этом сегменте не нужен кеширующий резолвер роутера (и соответствующие настройки на роутере), я бы просто выдавал сторонний адрес через DHCP, и дело с концами.

Изменено пользователем ValdikSS
Ссылка на комментарий
Поделиться на других сайтах

  • 0
1 минуту назад, ANDYBOND сказал:

Как вариант на сегодня и сейчас: указать гуглевские DNS первым способом (в DHCP сегмента) в статье: https://help.keenetic.com/hc/ru/articles/360011440720

Это также не работает из-за перехвата трафика. Вернее, эти настройки работают ровно так, как и должны: выдают заданный DNS-сервер по DHCP, только перехват от этого не отключается. Независимо от того, какой адрес там указан (может быть и такой, на котором DNS-резолвера вовсе нет), DNS-запросы будут идти через кеширующий резолвер роутера. Посмотрите на правило iptables выше — оно просто перехватывает все запросы на порт 53 UDP/TCP на внутренний резолвер.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Перехват трафика должен включаться если задействован один из (любой) режимов фильтрации.
Транзит запросов нужен только в случае включенного перехвата трафика, для того чтобы разрешать имена в адреса через явно указанные на устройствах сервисы.
Система "никуда ничего не посылает", только запрос и только туда куда указано по указанным настройкам. Складируется только в локальный кеш (это нормальное поведение любого резолвера, вести кеш).
Пожалуйста, если вы идите другое поведение, опишите как воспроизвести. Здесь или в обращении в Техническую поддержку.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
19 минут назад, corniger сказал:

Пожалуйста, если вы идите другое поведение, опишите как воспроизвести. Здесь или в обращении в Техническую поддержку.

Я пробовал все возможные настройки и не смог отключить перехват DNS. Выключал все возможные фильтры, удалял компонент «Фильтрация контента и блокировка рекламы при помощи облачных сервисов», без которого вообще нет галочки транзита DNS (в надежде, что именно этот компонент перехватывает запросы и сбоит) — без толку.

Обращение в техподдержку завёл до этой темы, отправил selftest. Пока без ответов.

Шаги воспроизведения:

  1. Настроить клиент WireGuard с перенаправлением всего трафика (разрешенные подсети: 0.0.0.0/0), задать в настройках подключения адрес DNS 8.8.8.8
  2. В разделе "приоритеты подключений" создать политику доступа "vpn"
  3. Настроить отдельный сетевой сегмент "vpn", с выделенными сетями Wi-Fi для сегмента, включить в сегменте DHCP и NAT, указать политику "vpn"
  4. Подключаемся к этой сети с незарегистрированного компьютера. Выполняем на компьютере резолв DNS через адрес, на котором нет DNS-резолвера (например, 6.6.6.6): nslookup ya.ru 6.6.6.6

Результат: DNS-ответ успешно возвращается.

Ожидаемый результат: Таймаут DNS-запроса.

 

Ссылка на комментарий
Поделиться на других сайтах

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

Перехват трафика должен включаться если задействован один из (любой) режимов фильтрации.
Транзит запросов нужен только в случае включенного перехвата трафика, для того чтобы разрешать имена в адреса через явно указанные на устройствах сервисы.
Система "никуда ничего не посылает", только запрос и только туда куда указано по указанным настройкам. Складируется только в локальный кеш (это нормальное поведение любого резолвера, вести кеш).
Пожалуйста, если вы идите другое поведение, опишите как воспроизвести. Здесь или в обращении в Техническую поддержку.

Днс для политик перехватывается всегда, @Le ecureuil говорил что так и задумано. 

Ссылка на комментарий
Поделиться на других сайтах

  • 0
1 минуту назад, ANDYBOND сказал:

А веб-интерфейс просто врёт. Понял.

Не, настройка в веб актуальна только для default политики, и для нее она действительно работает.

Ссылка на комментарий
Поделиться на других сайтах

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

Действительно нигде не работает в линейке прошивок 3.9.х.

Эта тема подтверждает что работает для политики по умолчанию, но с ньюансами...

 

Изменено пользователем r13
Ссылка на комментарий
Поделиться на других сайтах

  • 0
8 минут назад, ANDYBOND сказал:

А сообщеия выше с алгоритмами воспроизведения ошибки подтверждают практику и факты, что не работает. Но, ясное дело, фанатизм мешает некоторым принять факты. Была просьба о содействии (а не в фанатизме) - я откликнулся. Бодаться с фанатами - пустая трата времени: они ж фанаты.

Так в первом посте, а так же в тестовом примере и идет речь о том что при использовании политик работает безусловный перехват днс

Изменено пользователем r13
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Цитата

Добрый день. Удалось выяснить, что для политик перехват не отключается. Сделано специально чтобы не утекли запросы не туда, потому нужно запросы в политику перехватить и отправить на свой, особый экземпляр dns-proxy Я создам идею, чтобы этот функционал был хотя бы управляемым через cli. Спасибо

 

Ссылка на комментарий
Поделиться на других сайтах

  • 0

почему-то все успешно забыли про

opkg dns-override

который отключает встроенный dns-proxy и оставляет его только для собственных нужд.

С ним в доп. политиках никакого перехвата нет, такие дела.

Изменено пользователем Denis P
Ссылка на комментарий
Поделиться на других сайтах

  • 0
28 минут назад, ANDYBOND сказал:

Потому что "все" не используют opkg, а лишь прошивку, и ведут речь именно о функционале штатном, а не о стороннем.

Это не обязательно относится к opkg, перед тем как что-то писать, лучше еще раз подумать. 

Изменено пользователем Denis P
Ссылка на комментарий
Поделиться на других сайтах

  • 0
В 08.07.2023 в 06:25, ANDYBOND сказал:

В версии 4.0.0 исправлено. Спасибо. Да, изменения вступают в силу только после перезагрузки маршрутизатора, но для меня это некритично. Или интерфейс перезапустить, но этот метод я не практикую: предпочитаю перезагрузку.

Обновился до 4.0.4, у меня ничего не изменилось — как перехватывались запросы, так и продолжают, независимо от галочки «транзит запросов». Устройство перезагружал. Что нужно сделать, чтобы отключить перехват?

Ссылка на комментарий
Поделиться на других сайтах

  • 0
38 минут назад, Petrak сказал:

А как вообще проверить перехват? Какие команды для этого нужны?

Например,

nslookup ya.ru 3.3.3.3

Эта команда выполнит лукап ya.ru через резолвер на IP-адресе 3.3.3.3. На этом адресе нет резолвера, при обычной настройке команда должна завершаться с ошибкой. Если же выдаётся IP-адрес домена ya.ru — запрос был перехвачен роутером.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
3 часа назад, ANDYBOND сказал:

Эта команда выполнит лукап ya.ru через резолвер на IP-адресе 3.3.3.3. На этом адресе нет резолвера, при обычной настройке команда должна завершаться с ошибкой. Если же выдаётся IP-адрес домена ya.ru — запрос был перехвачен роутером.

А можно как-то проверить перехват dns провайдером или кем-то ещё?

Ссылка на комментарий
Поделиться на других сайтах

  • 0
11 минуту назад, ANDYBOND сказал:

Можно. Метод точно тот же.

Т.е в ответ я должен получить ip запрашиваемого сайта, а если он не соответствует то провайдер перехватил. Так да?

Ссылка на комментарий
Поделиться на других сайтах

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

Спасибо за статью, а если вас не затруднит, вы не могли бы привести наглядный пример как работает перехват провайдером?

Ссылка на комментарий
Поделиться на других сайтах

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

Спасибо за статью, а если вас не затруднит, вы не могли бы привести наглядный пример как работает перехват провайдером?

Как это относится к обсуждаемой теме?

Ссылка на комментарий
Поделиться на других сайтах

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

Как это относится к обсуждаемой теме?

Прочитал про перехват, решил спросить.

Ссылка на комментарий
Поделиться на других сайтах

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.

Гость
Ответить на вопрос...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу
×
×
  • Создать...