Александр Рыжов Posted February 19, 2016 Share Posted February 19, 2016 (edited) Если ваш провайдер перехватывает\логирует\подменяет 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-серверы Гугла. Edited September 5, 2016 by Александр Рыжов 1 1 Quote Link to comment Share on other sites More sharing options...
Reolin Posted March 5, 2016 Share Posted March 5, 2016 Большое спасибо за решение. Столкнулся с проблемой - если в настройках выбрать, например, московский сервер OpenNIC - в логе видим: Mar 05 12:28:51dnscrypt-proxy[347] Unable to retrieve server certificates Естественно, ничего не работает. Quote Link to comment Share on other sites More sharing options...
Александр Рыжов Posted March 5, 2016 Author Share Posted March 5, 2016 При настройке выводится список известных на момент правки исходников список рабочих серверов dnscrypt. Что отнюдь не гарантирует их работоспособности в будущем. Quote Link to comment Share on other sites More sharing options...
Reolin Posted March 6, 2016 Share Posted March 6, 2016 При настройке выводится список известных на момент правки исходников список рабочих серверов dnscrypt. Что отнюдь не гарантирует их работоспособности в будущем. Выходит, каждый раз, когда нужно обновить данный список, нужно пересобирать приложение? Возможности указать список серверов в отдельном конфиге не предусмотрено? Quote Link to comment Share on other sites More sharing options...
Александр Рыжов Posted March 6, 2016 Author Share Posted March 6, 2016 Выходит, каждый раз, когда нужно обновить данный список, нужно пересобирать приложение? Возможности указать список серверов в отдельном конфиге не предусмотрено?Нет, пересобирать не нужно.Есть возможность. Указанный в стартовым скрипте сервер — один из списка /opt/share/dnscrypt-proxy/dnscrypt-resolvers.csv. Дописывайте в список свой сервер или указывайте все параметры нового сервера прямо в стартовом скрипте. В дкументации dnscrypt-proxy всё расписано. Quote Link to comment Share on other sites More sharing options...
TheBB Posted April 22, 2016 Share Posted April 22, 2016 файл с указанным именем надо создать по указанному пути, вставить приложенный код и сделать файл исполняемым Quote Link to comment Share on other sites More sharing options...
KorDen Posted April 22, 2016 Share Posted April 22, 2016 А зачем вешать dnscrypt на другой порт и перехватывать через iptables, если можно сделать opkg dns-override и повесить на 53 порт? 2 Quote Link to comment Share on other sites More sharing options...
Александр Рыжов Posted April 23, 2016 Author Share Posted April 23, 2016 А зачем вешать dnscrypt на другой порт и перехватывать через iptables, если можно сделать opkg dns-override и повесить на 53 порт?dns-override существовал не всегда. Эта инструкция была сделана несколько раньше. Quote Link to comment Share on other sites More sharing options...
awoland Posted July 2, 2016 Share Posted July 2, 2016 А зачем вешать 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 Quote Link to comment Share on other sites More sharing options...
KorDen Posted July 2, 2016 Share Posted July 2, 2016 Выполните по телнету "opkg dns-override" перед стартом 1 Quote Link to comment Share on other sites More sharing options...
advokat Posted September 3, 2016 Share Posted September 3, 2016 Доброго времени суток! Вы конечно здесь все такие грамотные, и скорее всего разъясните мне, что я делаю не так! Прошивок кучу перепробовал... Команды в телнете ваши пишу, а в результате вот такая лажа: Quote Link to comment Share on other sites More sharing options...
Victor Posted September 3, 2016 Share Posted September 3, 2016 12 минуты назад, advokat сказал: Доброго времени суток! Вы конечно здесь все такие грамотные, и скорее всего разъясните мне, что я делаю не так! Прошивок кучу перепробовал... Команды в телнете ваши пишу, а в результате вот такая лажа: Для начала вам нужна флешка и http://forum.keenetic.net/topic/221--entware-keenetic/ Quote Link to comment Share on other sites More sharing options...
Khaninea Posted November 19, 2016 Share Posted November 19, 2016 Можно ли вместе с защитой от перехвата DNS-трафика применить блокировку рекламы на роутере из темы http://forum.keenetic.net/topic/139-блокировка-рекламы-на-роутере/? Содержимое скрипта /opt/etc/ndm/netfilter.d/010-intercept-dns.sh одинаковое. Но что-то у меня реклама не блокируется. Адреса серверов в фале /opt/etc/dnsmasq.conf указал от OpenDNS. Quote Link to comment Share on other sites More sharing options...
ICMP Posted November 22, 2016 Share Posted November 22, 2016 Добавьте в шапку что перед перезагрузкой нужно корректно завершить (закрыть все окна SSH,SCP) Quote Link to comment Share on other sites More sharing options...
Dorik1972 Posted November 30, 2016 Share Posted November 30, 2016 (edited) В 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 Edited December 6, 2016 by Dorik1972 Добавил разъяснение по порту !!! 1 Quote Link to comment Share on other sites More sharing options...
Khaninea Posted November 30, 2016 Share Posted November 30, 2016 5 часов назад, Dorik1972 сказал: Да. Тогда Ваш dnsmasq.conf должен выглядеть вот так no-resolv server=127.0.0.1#40 listen-address=127.0.0.1 Увы, что-то не получается. Реклама продолжает "сыпаться" Quote Link to comment Share on other sites More sharing options...
Dorik1972 Posted November 30, 2016 Share Posted November 30, 2016 (edited) 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 Edited November 30, 2016 by Dorik1972 2 Quote Link to comment Share on other sites More sharing options...
SigmaPlus Posted February 6, 2017 Share Posted February 6, 2017 После установки последней тестовой прошивки 2.09 (Версия 2.09.A.3.0-0) dnscrypt-proxy больше не проходит проверку здесь: https://www.opendns.com/welcome/ По логу прошивки всё в порядке, сервис работает. До этой прошивки проверку dnscrypt проходил без проблем. Может кто что подскажет. Quote Link to comment Share on other sites More sharing options...
ICMP Posted February 6, 2017 Share Posted February 6, 2017 2 минуты назад, SigmaPlus сказал: После установки последней тестовой прошивки 2.09 (Версия 2.09.A.3.0-0) dnscrypt-proxy больше не проходит проверку здесь: https://www.opendns.com/welcome/ По логу прошивки всё в порядке, сервис работает. До этой прошивки проверку dnscrypt проходил без проблем. Может кто что подскажет. Такая же ерунда, а вы по новой пробовали устанавливать Entware и все остальное? Quote Link to comment Share on other sites More sharing options...
r13 Posted February 6, 2017 Share Posted February 6, 2017 (edited) Господа, смотрите последние буг репорты. Скрипты из netfilter.d не работают. Если у вас сделано через перенаправление 53го порта а не через dns-override, то вы сейчас сидите через встроенный в прошивку dns proxy. Edited February 6, 2017 by r13 4 Quote Link to comment Share on other sites More sharing options...
cocojambo Posted February 18, 2017 Share Posted February 18, 2017 Господа, прошу проголосовать за DNScrypt и DNSsec из коробки, если есть такая потребность, как у меня. Quote Link to comment Share on other sites More sharing options...
cocojambo Posted February 21, 2017 Share Posted February 21, 2017 On 23.04.2016 at 4:11 PM, Александр Рыжов said: KorDen said: А зачем вешать dnscrypt на другой порт и перехватывать через iptables, если можно сделать opkg dns-override и повесить на 53 порт? dns-override существовал не всегда. Эта инструкция была сделана несколько раньше. Подскажите, а где конфиг основной от dnscrypt-proxy ? Хочу запилить проброс на локальные DNS для локальных доменов. Quote Link to comment Share on other sites More sharing options...
Александр Рыжов Posted February 21, 2017 Author Share Posted February 21, 2017 (edited) Все параметры передаются при запуске в /opt/etc/init.d/S09dnscrypt-proxy. Edited February 21, 2017 by Александр Рыжов Quote Link to comment Share on other sites More sharing options...
cocojambo Posted February 21, 2017 Share Posted February 21, 2017 (edited) 20 minutes ago, Александр Рыжов said: Все параметры передаются при запуске в /opt/etc/init.d/S09dnscrypt-proxy. Простите за назойливость, а как добавить в этот файл исключения для локальных DNS или это нельзя сделать? (погуглил, ничего нет, а самом файле всего несколько параметров без описаний). Или хотя бы намекните, как это можно реализовать )) Я уже отчаялся, и уже готов идти покупать для этого отдельный роутер (для dnscrypt) ((( Edited February 21, 2017 by cocojambo Quote Link to comment Share on other sites More sharing options...
Александр Рыжов Posted February 21, 2017 Author Share Posted February 21, 2017 Никак: dnscrypt-proxy служит для совсем других целей. Он не кеширует запросы, не ведёт списки исключений и не обслуживает зоны. Поэтому его целесообразно использовать как апстрим для dnsmasq, bind или другого DNS-сервера, обслуживающего локалку. Quote Link to comment Share on other sites More sharing options...
vlad Posted March 3, 2017 Share Posted March 3, 2017 (edited) В 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 на телевизоре. Жду вашего совета уважаемые форумчане! Edited March 3, 2017 by vlad Quote Link to comment Share on other sites More sharing options...
vlad Posted March 7, 2017 Share Posted March 7, 2017 (edited) В 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 на телевизоре. Жду вашего совета уважаемые форумчане! Никого больше не интересует этот вопрос ? Edited March 7, 2017 by vlad Quote Link to comment Share on other sites More sharing options...
vasek00 Posted March 9, 2017 Share Posted March 9, 2017 В 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 1 Quote Link to comment Share on other sites More sharing options...
vlad Posted March 12, 2017 Share Posted March 12, 2017 Спасибо за ответ. Ваши рекомендации помогли. Quote Link to comment Share on other sites More sharing options...
vasek00 Posted March 17, 2017 Share Posted March 17, 2017 Поправка в 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 порта. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.