Перейти к содержанию

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

Опубликовано (изменено)

Если ваш провайдер перехватывает\логирует\подменяет DNS-запросы или вы просто хотите обезопасить DNS-трафик, то вам может изложенное ниже решение, основанное на использовании dnscrypt-proxy.

Установите необходимые пакеты:

opkg install fake-hwclock dnscrypt-proxy iptables ndmq
 

При запросе о предпочитаемом сервере dnscrypt просто нажмите Enter.

Поместите в файл /opt/etc/ndm/netfilter.d/010-intercept-dns.sh следующее содержимое:

#!/bin/sh

[ "$table" != "nat" ] && exit 0

lan_ip=$(ndmq -p 'show interface Bridge0' -P address)

iptables -t nat -I PREROUTING -p udp -m udp --dport 53 -j DNAT --to-destination $lan_ip:65053
iptables -t nat -I PREROUTING -p tcp -m tcp --dport 53 -j DNAT --to-destination $lan_ip:65053
 

и сделайте скрипт исполняемым:

chmod +x /opt/etc/ndm/netfilter.d/010-intercept-dns.sh
 

Далее, отредактируйте стартовый скрипт /opt/etc/init.d/S09dnscrypt-proxy, заменив в нём строчку

ARGS="--local-address=127.0.0.1:65053 --daemonize -R cisco"
 

на

ARGS="--local-address=$(ndmq -p 'show interface Bridge0' -P address):65053 --daemonize -R cisco"
 

И перегрузите роутер из веб-интерфейса. Всё!

 

Диагностика проблем:

 

0. Убедитесь, что на ПК не прописаны вручную в св-вах сетевого соединения сторонние DNS-серверы. Если вы в сетевых настройках ПК ничего не меняли, то можете это не проверять.

1. Очистите DNS-кеш операционной системы (для Windows - ipconfig /flushdns)

2. Очистите DNS-кеш браузера, достаточно его закрыть и открыть по новой.

3. Перейдите по этой ссылке.

Как это работает:

Скрытый текст

С помощью правила iptables любые DNS-запросы от роутера (и его клиентов) «заворачиваются» на dnscrypt-proxy. Последний шифрует DNS трафик, для провайдера трафик выглядит как HTTPS. С настройками по умолчанию для разрешения DNS-имён будет использоваться сервер OpenDNS, на сегодняшний день это сервис принадлежит компании Cisco. Можно выбрать сервер поближе к себе, на этапе установки пакета выбрав сервер из предлагаемого списка.

Зачем нужен пакет fake-hwclock:

Скрытый текст

 

На борту роутера нет часов реального времени. Этот пакет записывает системную дату роутера в процессе выключения и устанавливает её при следующем старте. Если этого не делать, то возможен следующий deadlock:

1. dnscrypt-proxy не может начать работать, т.к. срок действия полученного им сертификата будет в будущем.

2. NTP-клиент не может установить правильную системную дату, т.к. не сможет разрешить DNS-имя ntp.pool.org (или другое).

 

Что теряем при использовании этого решения:

Скрытый текст

 

1. Теряем возможности встроенного в прошивку DNS-сервера/прокси. В частности, возможность кеширования DNS-запросов на роутере и возможность обращения к ресурсом локалки по DNS-именам. Если нынче DNS-запросы и без того замечтательно кешируются операционкой ПК и браузером, то разрешение DNS-имён в локалке может стать проблемой. Скажем, придётся обращаться к NAS'у в локалке не по имени \\MyNas\, а по IP: \\192.168.1.4\.

2. В связи с тем, что мы отказываемся от провайдерских DNS-серверов, мы теряем возможность разрешения DNS-имён для локальных ресурсов провайдера. Если для установления L2TP/PPTP-соединения сервер задан DNS-именем, например, l2tp.beeline.ru, то лучше вписать в веб-интерфейс кинетика адрес сервера в виде ip.

3. Теряем в скорости работы DNS-резолвинга. Чем ближе к роутеру находится DNS-сервер, тем быстрее разрешаются DNS-имена. Отказ о провайдерского DNS и накладные расходы на шифрования трафика увеличивают время резолвинга. IMHO, этим можно принебречь. Скажем «Ростелеком» не брезгует отдавать клиентам по DHCP вместе со своими, DNS-серверы Гугла.

 

 

Изменено пользователем Александр Рыжов
  • 3 недели спустя...
  • Ответов 78
  • Создана
  • Последний ответ

Топ авторов темы

Опубликовано

Большое спасибо за решение.

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

Mar 05 12:28:51dnscrypt-proxy[347]
Unable to retrieve server certificates

Естественно, ничего не работает.

Опубликовано

При настройке выводится список известных на момент правки исходников список рабочих серверов dnscrypt. Что отнюдь не гарантирует их работоспособности в будущем.

Опубликовано
При настройке выводится список известных на момент правки исходников список рабочих серверов dnscrypt. Что отнюдь не гарантирует их работоспособности в будущем.

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

Опубликовано
Выходит, каждый раз, когда нужно обновить данный список, нужно пересобирать приложение? Возможности указать список серверов в отдельном конфиге не предусмотрено?
Нет, пересобирать не нужно.

Есть возможность. Указанный в стартовым скрипте сервер — один из списка /opt/share/dnscrypt-proxy/dnscrypt-resolvers.csv. Дописывайте в список свой сервер или указывайте все параметры нового сервера прямо в стартовом скрипте. В дкументации dnscrypt-proxy всё расписано.

  • 1 месяц спустя...
Опубликовано

файл с указанным именем надо создать по указанному пути, вставить приложенный код и сделать файл исполняемым

Опубликовано
А зачем вешать dnscrypt на другой порт и перехватывать через iptables, если можно сделать opkg dns-override и повесить на 53 порт?
dns-override существовал не всегда. Эта инструкция была сделана несколько раньше.
  • 2 месяца спустя...
Опубликовано
А зачем вешать dnscrypt на другой порт и перехватывать через iptables, если можно сделать opkg dns-override и повесить на 53 порт?

А для того, чтобы повесить dnscrypt на 53 порт нужно в стартовом скрипте /opt/etc/init.d/S09dnscrypt-proxy заменить строчку

ARGS="--local-address=127.0.0.1:65053 --daemonize -R cisco"

на

ARGS="--local-address=$(ndmq -p 'show interface Bridge0' -P address):[color=#FF0000]53[/color] --daemonize -R cisco" 

?

Если так, то с портом 53 dnscrypt не стартует.

/opt/etc/init.d/S09dnscrypt-proxy start

выдает ошибку.

  • 1 месяц спустя...
Опубликовано

Доброго времени суток! Вы конечно здесь все такие грамотные, и скорее всего разъясните мне, что я делаю не так! Прошивок кучу перепробовал... Команды в телнете ваши пишу, а в результате вот такая лажа:fuynya.jpg

Опубликовано
12 минуты назад, advokat сказал:

Доброго времени суток! Вы конечно здесь все такие грамотные, и скорее всего разъясните мне, что я делаю не так! Прошивок кучу перепробовал... Команды в телнете ваши пишу, а в результате вот такая лажа:fuynya.jpg

Для начала вам нужна флешка и http://forum.keenetic.net/topic/221--entware-keenetic/

  • 2 месяца спустя...
Опубликовано

Можно ли вместе с защитой от перехвата DNS-трафика применить блокировку рекламы на роутере из темы http://forum.keenetic.net/topic/139-блокировка-рекламы-на-роутере/? Содержимое скрипта  /opt/etc/ndm/netfilter.d/010-intercept-dns.sh одинаковое. Но что-то у меня реклама не блокируется. Адреса серверов в фале  /opt/etc/dnsmasq.conf указал от OpenDNS. 

Опубликовано (изменено)
В 19.11.2016 в 12:28, Khaninea сказал:

Можно ли вместе с защитой от перехвата DNS-трафика применить блокировку рекламы на роутере из темы http://forum.keenetic.net/topic/139-блокировка-рекламы-на-роутере/? Содержимое скрипта  /opt/etc/ndm/netfilter.d/010-intercept-dns.sh одинаковое. Но что-то у меня реклама не блокируется. Адреса серверов в фале  /opt/etc/dnsmasq.conf указал от OpenDNS. 

Да. Тогда Ваш dnsmasq.conf должен выглядеть вот так

p.s. порт #40 приведен в примере "информационно" , если вы используете, например, dnscrypt-proxy, то тогда порт должен быть 65053 

no-resolv

server=127.0.0.1#40

listen-address=127.0.0.1

 

Изменено пользователем Dorik1972
Добавил разъяснение по порту !!!
Опубликовано
5 часов назад, Dorik1972 сказал:

Да. Тогда Ваш dnsmasq.conf должен выглядеть вот так

no-resolv

server=127.0.0.1#40

listen-address=127.0.0.1

Увы, что-то не получается. Реклама продолжает "сыпаться"

Опубликовано (изменено)
3 часа назад, Khaninea сказал:

Увы, что-то не получается. Реклама продолжает "сыпаться"

Тут вопрос "философский" .... в логе на устройстве dnsmasq стартует ? hosts "затягивает"? .... pidof dnsmasq выдает номерок процесса? + попробуйте эту "таблетку" - 

  И что такое сыпаться ? Кто сказал что сей метод "наглухо" убьет всю рекламу :???: .... Идеология такова что если "попадаются" некие "рекламодатели" перечисленные в файле hosts ... то да ... Иначе .... постигайте силу "ненавязчивого" маркетинга ... Вообще сие есть аналог, например AdAway, под андроид - http://4pda.ru/forum/index.php?showtopic=275091 (кстати из нее можно почерпнуть адреса получения всегда актуальных и пополняемых hosts) ну и иже с ними

p.s. А по поводу совместного и правильного использования и настройки DnsCrypt читать в первоисточнике -> https://wiki.archlinux.org/index.php/DNSCrypt

p.s.s.  А так чтоб максимально "прибить" рекламку - пользуемся в браузере плагинами типа AdGuard и Ghostery :)

Изменено пользователем Dorik1972
  • 2 месяца спустя...
Опубликовано

После установки последней тестовой прошивки 2.09 (Версия 2.09.A.3.0-0) dnscrypt-proxy больше не проходит проверку здесь:   https://www.opendns.com/welcome/

По логу прошивки всё в порядке, сервис работает. До этой прошивки проверку dnscrypt проходил без проблем. Может кто что подскажет.

Опубликовано
2 минуты назад, SigmaPlus сказал:

После установки последней тестовой прошивки 2.09 (Версия 2.09.A.3.0-0) dnscrypt-proxy больше не проходит проверку здесь:   https://www.opendns.com/welcome/

По логу прошивки всё в порядке, сервис работает. До этой прошивки проверку dnscrypt проходил без проблем. Может кто что подскажет.

Такая же ерунда, а вы по новой пробовали устанавливать Entware и все остальное?

Опубликовано (изменено)

Господа, смотрите последние буг репорты.

Скрипты из netfilter.d не работают.

Если у вас сделано через перенаправление 53го порта а не через dns-override, то вы сейчас сидите через встроенный в прошивку dns proxy.

 

Изменено пользователем r13
  • 2 недели спустя...
Опубликовано
On 23.04.2016 at 4:11 PM, Александр Рыжов said:
KorDen said:
А зачем вешать dnscrypt на другой порт и перехватывать через iptables, если можно сделать opkg dns-override и повесить на 53 порт?

dns-override существовал не всегда. Эта инструкция была сделана несколько раньше.

Подскажите, а где конфиг основной от dnscrypt-proxy ?

Хочу запилить проброс на локальные DNS для локальных доменов.

Опубликовано (изменено)
20 minutes ago, Александр Рыжов said:

Все параметры передаются при запуске в /opt/etc/init.d/S09dnscrypt-proxy.

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

Или хотя бы намекните, как это можно реализовать )) Я уже отчаялся, и уже готов идти покупать для этого отдельный роутер (для dnscrypt) (((

Изменено пользователем cocojambo
Опубликовано

Никак: dnscrypt-proxy служит для совсем других целей. Он не кеширует запросы, не ведёт списки исключений и не обслуживает зоны. Поэтому его целесообразно использовать как апстрим для dnsmasq, bind или другого DNS-сервера, обслуживающего локалку.

  • 2 недели спустя...
Опубликовано (изменено)
В 19.11.2016 в 13:28, Khaninea сказал:

Можно ли вместе с защитой от перехвата DNS-трафика применить блокировку рекламы на роутере из темы http://forum.keenetic.net/topic/139-блокировка-рекламы-на-роутере/? Содержимое скрипта  /opt/etc/ndm/netfilter.d/010-intercept-dns.sh одинаковое. Но что-то у меня реклама не блокируется. Адреса серверов в фале  /opt/etc/dnsmasq.conf указал от OpenDNS. 

У меня аналогичный вопрос.У кого нибудь получилось решить эту проблему? Изменил настройки  dnsmasq.conf  на 

no-resolv

server=127.0.0.1#65053

listen-address=127.0.0.1

К моему сожалению не помогло:(( Роутер Giga 3 установлено entware-3x.До сего момента блокировка рекламы отлично работала, прекрасно выручала при просмотре роликов youtube на телевизоре. Жду вашего совета уважаемые форумчане!

Изменено пользователем vlad
Опубликовано (изменено)
В 03.03.2017 в 16:22, vlad сказал:

У меня аналогичный вопрос.У кого нибудь получилось решить эту проблему? Изменил настройки  dnsmasq.conf  на 

no-resolv

server=127.0.0.1#65053

listen-address=127.0.0.1

К моему сожалению не помогло:(( Роутер Giga 3 установлено entware-3x.До сего момента блокировка рекламы отлично работала, прекрасно выручала при просмотре роликов youtube на телевизоре. Жду вашего совета уважаемые форумчане!

Никого больше не интересует этот вопрос ?

Изменено пользователем vlad
Опубликовано
В 07.03.2017 в 22:49, vlad сказал:

Никого больше не интересует этот вопрос ?

Dnsmasq.conf

server=127.0.0.1#65053
no-resolv
addn-hosts=/opt/tmp/hosts0

Запуск dnscrypt-proxy c вашим DNS сервером или как ниже

... "--local-address=127.0.0.1:65053 --daemonize -R yandex"

Или чуть более подробно что нужно сделать от 08.03.17

 

Опубликовано

Поправка в Dnsmasq.conf добавить две строчки

Скрытый текст

interface=br0
bind-interfaces

результат до

tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      dnsmasq

tcp        0      0 127.0.0.1:65053         0.0.0.0:*               LISTEN      dnscrypt-proxy
tcp        0      0 :::53                   :::*                    LISTEN      dnsmasq
udp        0      0 127.0.0.1:65053         0.0.0.0:*                           dnscrypt-proxy
udp        0      0 0.0.0.0:53              0.0.0.0:*                           dnsmasq
udp        0      0 0.0.0.0:32836           0.0.0.0:*                           dnscrypt-proxy
udp        0      0 :::53                   :::*                                dnsmasq

после

tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      dnsmasq
tcp        0      0 192.168.1.1:53      0.0.0.0:*               LISTEN      dnsmasq
tcp        0      0 127.0.0.1:65053         0.0.0.0:*               LISTEN      dnscrypt-proxy
tcp        0      0 ::1:53                  :::*                    LISTEN      dnsmasq
udp        0      0 127.0.0.1:65053         0.0.0.0:*                           dnscrypt-proxy
udp        0      0 127.0.0.1:53            0.0.0.0:*                           dnsmasq
udp        0      0 192.168.1.1:53      0.0.0.0:*                           dnsmasq
udp        0      0 0.0.0.0:32836           0.0.0.0:*                           dnscrypt-proxy
udp        0      0 ::1:53                  :::*                                dnsmasq
 

Разница контроль 53 порта.

 

 

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

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

  Разрешено использовать не более 75 эмодзи.

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

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

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

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.