Jump to content

Защита от перехвата DNS-трафика с помощью dnscrypt-proxy


Recommended Posts

38 минут назад, vasek00 сказал:

Поправка в 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 порта.

 

 

Какой командой результат посмотреть ? 

Link to comment
Share on other sites

У меня другие результаты,dnsmasq слушает несколько портов.

LISTEN      827/dnsmasq
tcp        0      0 192.168.1.19:53         0.0.0.0:*            

LISTEN      827/dnsmasq
tcp        0      0 0.0.0.0:21              0.0.0.0:*

LISTEN      827/dnsmasq
tcp        0      0 fe80::5a8b:f3ff:fe66:e00c:53 :::*

827/dnsmasq
udp        0      0 192.168.1.19:53         0.0.0.0:*                          

827/dnsmasq
udp        0      0 192.168.1.19:51769      0.0.0.0:*           

827/dnsmasq
udp        0      0 fe80::5a8b:f3ff:fe66:e00c:53 :::*                                827/dnsmasq

это нормально ?

Link to comment
Share on other sites

Интернет ---- роутер ------ клиенты

Итак у нас клиент делает запрос на 53 порт, но клиент то из локальный сети сегмента роутера (192.168.1.х) он то и нужен

tcp        0      0 192.168.1.19:53         0.0.0.0:*   
udp        0      0 192.168.1.19:53         0.0.0.0:*

Далее dnsmasq куда отдаст описано ранее (на dnscrypt-proxy)

Тем самым освобождаем входной порт udp 53 от контроля => для защиты от некоего флуда на него можно повесить правила с использованием iptables на входной интернета .... udp --dport 53 ... --match string  либо для всех, либо оставить для своих локальных сервисов чуть-чуть.

У вас не понятно причем тут 21 порт, у меня FTP отключен на роутере, fe80::5a8b:f3ff:fe66:e00c:53 - это IPv6.

  • Thanks 1
Link to comment
Share on other sites

31 минуту назад, vlad сказал:

server=127.0.0.1#65053

no-resolv

addn-hosts=/opt/etc/hosts

interface=br0

bind-interfaces

 

конфиг dnsmasq

Надеюсь последняя версия (opkg update, opkg upgrade) и в /opt/etc/init.d/...dnsmasq параметр не трогали

ARGS=""

по умолчанию его конфиг должен лежать /opt/etc/

на 65053 весит

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

 

Edited by vasek00
Link to comment
Share on other sites

Внимательнее посмотрел строки,dnsmasq и dnscrypt слушают порты которые настроил. Извиняюсь за путаницу ,предыдущие сообщения удалю.

tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      827/dnsmasq
tcp        0      0 192.168.1.19:53         0.0.0.0:*               LISTEN      827/dnsmasq

tcp        0      0 127.0.0.1:65053         0.0.0.0:*               LISTEN      834/dnscrypt-proxy

udp        0      0 127.0.0.1:65053         0.0.0.0:*                           834/dnscrypt-proxy

udp        0      0 127.0.0.1:53            0.0.0.0:*                           827/dnsmasq
udp        0      0 192.168.1.19:53         0.0.0.0:*                           827/dnsmasq

udp        0      0 0.0.0.0:34535           0.0.0.0:*                           834/dnscrypt-proxy

 

Остался только один вопрос с IPv6 !!

Почему его dnsmasq слушает и откуда он взялся? 

udp     0      0 fe80::5a8b:f3ff:fe66:e00c:53 :::*                                827/dnsmasq

tcp        0      0 fe80::5a8b:f3ff:fe66:e00c:53 :::*                    LISTEN      827/dnsmasq

Edited by vlad
Link to comment
Share on other sites

7 минут назад, vasek00 сказал:

IPv6 потому что он весит на br0 и не только, да и в конфиге он есть


!
ipv6 subnet Default
    bind Home
    number 0
    mode slaac
!

 

Спасибо за разъяснения и помощь.

Link to comment
Share on other sites

  • 2 weeks later...

Доброго времени всем.

 

Ребят ,может кто подсказать как установить и настроить этот dnscrypt на моем Keenetic Ultra II, пошагово что делать.

У меня роутер без доп-настроек, из коробки, прошивка обновилась до v2.08(AAUX.0)C1, что мне нужно делать, чтобы установить и настроить DNSCrypt на роутере (я не *никсоид, но по мануалу смогу команды писать, но про *никс вообще ничего не знаю, поэтому и мануалы нужны пошаговые).

А то сейчас я использую DNSCrypt на ПК (Windows 10 x64), но с ним там траблы из-за АВ. Антивирусные программы не дают его использовать, поэтому, приходится выгружать АВ, потом запускать DNSCrypt, куда-то заходить, потом выгружать DNSCrypt (возвращая дефолтные DNS-ы провайдера) и снова запускать АВ.

  • Thanks 1
Link to comment
Share on other sites

4 часа назад, AlexBBB сказал:

Доброго времени всем.

 

Ребят ,может кто подсказать как установить и настроить этот dnscrypt на моем Keenetic Ultra II, пошагово что делать.

У меня роутер без доп-настроек, из коробки, прошивка обновилась до v2.08(AAUX.0)C1, что мне нужно делать, чтобы установить и настроить DNSCrypt на роутере (я не *никсоид, но по мануалу смогу команды писать, но про *никс вообще ничего не знаю, поэтому и мануалы нужны пошаговые).

А то сейчас я использую DNSCrypt на ПК (Windows 10 x64), но с ним там траблы из-за АВ. Антивирусные программы не дают его использовать, поэтому, приходится выгружать АВ, потом запускать DNSCrypt, куда-то заходить, потом выгружать DNSCrypt (возвращая дефолтные DNS-ы провайдера) и снова запускать АВ.

Вам сюда 

 

  • Thanks 1
Link to comment
Share on other sites

  • 1 month later...

кто-то может сказать почему у меня не получается запустить?

Opkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: exit code 2.
 
 
Делал все четко как в первом посте.
Edited by angel0chek
Link to comment
Share on other sites

11 час назад, angel0chek сказал:

кто-то может сказать почему у меня не получается запустить?

Opkg::Manager: /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: exit code 2.
 
 
Делал все четко как в первом посте.

пакет iptables установлен? тогда попробуй сменить кодировку файла на UNIX

Edited by stalin
Link to comment
Share on other sites

Маленький вопрос по dnscrypt-proxy функционал можно расширить с помощью плагинов, что-то типа https://github.com/jedisct1/dnscrypt-proxy/tree/master/src :

- возвращает пустой ответ на запросы AAAA -> libdcplugin_example-ldns-aaaa-blocking

блокировка конкретных доменов и IP-адресов ->  libdcplugin_example-ldns-blocking

- запись клиентских запросов -> libdcplugin_example-logging

- libdcplugin_example-ldns-forwarding

 "This plugin redirects queries for specific zones to a set of non-DNSCrypt resolvers. This can be useful for private zones that can only be resolved by a local DNS server."

- dnscrypt-plugin-masquerade https://github.com/gchehab/dnscrypt-plugin-masquerade

- dnscrypt-plugin-geoip-block https://github.com/jedisct1/dnscrypt-plugin-geoip-block

 

Есть ли что-то для тек.релиза от Entware, интересен был бы libdcplugin_example-ldns-blocking

Запуск

dnscrypt-proxy ...--plugin=libdcplugin_example_ldns_blocking.so --domains=/etc/domain.lst --ips=/etc/blocking.ips --logfile=/var/log/dnscrypt.block.log ...

 

Link to comment
Share on other sites

  • 2 months later...

На релизе dnscrypt-proxy 1.9.5 есть возможность использовать списки блокировки используя plugins

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

/opt/lib/dnscrypt-proxy # ls -l
-rwxr-xr-x    1 root     root          8408 Jun 13 15:54 libdcplugin_example_cache.so
-rwxr-xr-x    1 root     root          4052 Jun 13 15:54 libdcplugin_example_ldns_aaaa_blocking.so
-rwxr-xr-x    1 root     root         16640 Jun 13 15:54 libdcplugin_example_ldns_blocking.so
-rwxr-xr-x    1 root     root          8368 Jun 13 15:54 libdcplugin_example_ldns_forwarding.so
-rwxr-xr-x    1 root     root          5836 Jun 13 15:54 libdcplugin_example_ldns_opendns_deviceid.so
-rwxr-xr-x    1 root     root          5568 Jun 13 15:54 libdcplugin_example_ldns_opendns_set_client_ip.so
-rwxr-xr-x    1 root     root          7228 Jun 13 15:54 libdcplugin_example_logging.so
/opt/lib/dnscrypt-proxy #

например строка запуска

ARGS="--local-address=127.0.0.2:65053 --daemonize –edns-payload-size=1252 -R cisco -l /opt/tmp/dnscrypt-proxy.65053.log -m 7 \

--plugin=libdcplugin_example_ldns_blocking.so,--ips=/opt/tmp/blk-ips,--domains=/opt/tmp/blk-names"

где в файлах /opt/tmp/blk-names и /opt/tmp/blk-ips естественно лежат имена и адреса нужных для блокировки в формате - адреса IPv4 и IPv6, а для имен групповые символы (*) пример *xxx**.example.comads.*

простой пример блокировки youtube.com -> в файле /opt/tmp/blk-names прописать youtube.com

Можно использовать как альтернативу в место dnsmasq

addn-hosts=/opt/tmp/hosts0
addn-hosts=/opt/tmp/malwaredom_block.host
addn-hosts=/opt/tmp/mvps_block.host

Другие примеры:

# dnscrypt-proxy --plugin=libdcplugin_example_ldns_opendns_set_client_ip.so,192.30.252.130

# dnscrypt-proxy --plugin=libdcplugin_example_ldns_opendns_deviceid.so,/opt/etc/umbrella-password.txt

 

так же возможен вариант например использовать не один а два резолва:

ARGS1="--local-address=127.0.0.2:65053 --daemonize .... -R cisco -l /opt/tmp/dnscrypt-proxy.65053.log -m 7 ...."
ARGS2="--local-address=127.0.0.2:65153 --daemonize .... -R ns0.dnscrypt.is -l /opt/tmp/dnscrypt-proxy.65153.log -m 7 ...."

тогда в dnsmasq конфиге

server=127.0.0.2#65053
server=127.0.0.2#65153

А если добавить в конфиг строчку all-servers то можно получить одновременно запрос на все сервера которые имеются в строчках server (порождает чуток избыточный трайик, но по моему у кого безлим не принципиально). А если еще и два канала то запросы можно развернуть один на один канал, другой на другой (хоть он например и в резерве весит) информация по IP для маршрута можно взять из файла dnscrypt-resolvers-conf ищется нужная запись и на против нее поиск Ip адреса или любым приложением которое есть в opkg или в системе.

Edited by vasek00
Link to comment
Share on other sites

При первом приближение все работает на два канала при

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

dnsmasq.conf

...

server=127.0.0.2#65053
server=127.0.0.2#65153
all-servers


dnscrypt-proxy

dnscrypt-proxy --local-address=127.0.0.2:65053 --daemonize –edns-payload-size=1252 -R cisco \

-l /opt/tmp/dnscrypt-proxy.65053.log -m 7 --plugin=libdcplugin_example_ldns_blocking.so,--ips=/opt/tmp/blk-ips,--domains=/opt/tmp/blk-names

dnscrypt-proxy --local-address=127.0.0.2:65153 --daemonize –edns-payload-size=1252 -R dnscrypt.eu-dk \

-l /opt/tmp/dnscrypt-proxy.65153.log -m 7 --plugin=libdcplugin_example_ldns_blocking.so,--ips=/opt/tmp/blk-ips,--domains=/opt/tmp/blk-names

 

плюс :

1. стат. маршрут на dnscrypt.eu-dk через WEB для host - 77.66.84.233

2. в итоге два канала и маршрут, где провайдер1 ppp0 один приоритет 1000 и ppp1 провайдер2 приоритет 800, в данном случае основной ppp0 резервный ppp1

/opt/etc/init.d # ip ro
default dev ppp0  scope link
77.66.84.233 dev ppp1  scope link
...

IP_prov_II dev ppp1  scope link
...

/opt/etc/init.d #

По dnsmasq запросы имеют такой вид

Aug 19 14:12:01 dnsmasq[2088]: query[A] wendang.baidu.com from 192.168.1.2
Aug 19 14:12:01 dnsmasq[2088]: forwarded wendang.baidu.com to 127.0.0.2
Aug 19 14:12:01 dnsmasq[2088]: forwarded wendang.baidu.com to 127.0.0.2
Aug 19 14:12:01 dnsmasq[2088]: query[A] incoming.telemetry.mozilla.org from 192.168.1.2
Aug 19 14:12:01 dnsmasq[2088]: forwarded incoming.telemetry.mozilla.org to 127.0.0.2
Aug 19 14:12:01 dnsmasq[2088]: forwarded incoming.telemetry.mozilla.org to 127.0.0.2

По dnscrypt-proxy логу

65053.log

...

Sat Aug 19 14:55:30 2017    127.0.0.1    forum.keenetic.net    A
Sat Aug 19 14:55:30 2017    127.0.0.1    r270260.tryinvision.com    A
Sat Aug 19 14:55:37 2017    127.0.0.1    app-measurement.com    A
Sat Aug 19 14:56:04 2017    127.0.0.1    incoming.telemetry.mozilla.org    A

65153.log

...

Sat Aug 19 14:55:30 2017    127.0.0.1    forum.keenetic.net    A
Sat Aug 19 14:55:30 2017    127.0.0.1    r270260.tryinvision.com    A
Sat Aug 19 14:55:37 2017    127.0.0.1    app-measurement.com    A
Sat Aug 19 14:56:04 2017    127.0.0.1    incoming.telemetry.mozilla.org    A

В данном случае все запросы для dnscrypt-proxy идут от dnsmasq

В итоге, запрос от клиента локальной сети попадает на роутер  c него уходят запросы сразу же на два resolv - cisco и dnscrypt.eu-dk и два есть прихода ответов на эти запросы, очередность запросов всегда одна а вот очередность прихода ответов на эти запросы бывают разные (т.е. то с одного канала первым приходит, то со второго канала приходит)

Link to comment
Share on other sites

Не большой тест на примере двух resolv и двух каналах при применении dnscrypt при сравнении работы на одном канале и с одним resolv на cisco и близко не было к такому результату.

Скрины с клиента в локальной сети роутера и с установленном на нем IP DNS -роутера.

Bench-1.jpg

Bench.jpg

  • Upvote 1
Link to comment
Share on other sites

  • 1 month later...
В 19.08.2017 в 12:12, vasek00 сказал:

ARGS1="--local-address=127.0.0.2:65053 --daemonize .... -R cisco -l /opt/tmp/dnscrypt-proxy.65053.log -m 7 ...." ARGS2="--local-address=127.0.0.2:65153 --daemonize .... -R ns0.dnscrypt.is -l /opt/tmp/dnscrypt-proxy.65153.log -m 7 ...."

У меня такой вариант не сработал. Вы пробовали именно так запускать?

Link to comment
Share on other sites

4 часа назад, vlad сказал:

У меня такой вариант не сработал. Вы пробовали именно так запускать?

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

#!/bin/sh

PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENABLED=yes
PROCS=dnscrypt-proxy
ARGS="--local-address=127.0.0.2:65053 --daemonize –edns-payload-size=1252 -R cisco -l /opt/tmp/dnscrypt-proxy.65053.log -m 7"
PREARGS=""
DESC=

. /opt/etc/init.d/rc.func

dnscrypt-proxy --local-address=127.0.0.2:65153 --daemonize –edns-payload-size=1252 -R fvz-anyone -l /opt/tmp/dnscrypt-proxy.65153.log -m 7

И в dnsmasq.conf

server=127.0.0.2#65053
server=127.0.0.2#65153
all-servers

Сейчас - это не сравнимо с тем DNS Benchmark, небо и земля.

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

Сравнение

Server IP;System Resolver;Status;Nets Blocked;Cached Min;Cached Avg;Cached Max;Cached Std;Cached Sent;Cached Rcvd;Uncached Min;Uncached Avg;Uncached Max;Uncached Std;Uncached Sent;Uncached Rcvd;Dotcom Min;Dotcom Avg;Dotcom Max;Dotcom Std;Dotcom Sent;Dotcom Rcvd;Reverse DNS;Owner;Start Time (utc);Duration (sec)

KII-KII;Yes;Online;--------;0,000;0,001;0,001;0,000;30;30;0,056;0,111;0,412;0,085;30;30;0,046;0,052;0,080;0,011;30;30;MY-KEEN;Local Network Nameserver;2017-09-20 05:06:26;78,014
   8.   8.   4.   4;No;Online;--------;0,014;0,015;0,015;0,000;30;30;0,032;0,071;0,292;0,053;30;30;0,042;0,050;0,076;0,011;30;30;google-public-dns-b.google.com;GOOGLE - Google Inc., US;2017-09-20 05:06:26;78,014
   8.   8.   8.   8;No;Online;--------;0,014;0,015;0,015;0,000;30;30;0,032;0,091;0,328;0,079;30;30;0,041;0,055;0,075;0,012;30;30;google-public-dns-a.google.com;GOOGLE - Google Inc., US;2017-09-20 05:06:26;78,014
 129. 250.  35. 250;No;Online;--------;0,054;0,054;0,055;0,000;30;30;0,055;0,074;0,240;0,040;30;30;0,061;0,085;0,234;0,046;30;30;x.ns.gin.ntt.net;NTT-COMMUNICATIONS-2914 - NTT America, Inc., US;2017-09-20 05:06:26;78,014
   4.   2.   2.   1;No;Redirects ALL;--------;0,054;0,054;0,055;0,000;31;31;0,055;0,085;0,314;0,054;31;31;0,063;0,063;0,066;0,001;31;31;a.resolvers.level3.net;LEVEL3 - Level 3 Communications, Inc., US;2017-09-20 05:06:26;78,014
   4.   2.   2.   3;No;Redirects ALL;--------;0,054;0,054;0,056;0,000;31;31;0,055;0,085;0,311;0,052;31;31;0,063;0,065;0,074;0,002;31;31;c.resolvers.level3.net;LEVEL3 - Level 3 Communications, Inc., US;2017-09-20 05:06:26;78,014

 

Edited by vasek00
Link to comment
Share on other sites

5 часов назад, vasek00 сказал:

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


#!/bin/sh

PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENABLED=yes
PROCS=dnscrypt-proxy
ARGS="--local-address=127.0.0.2:65053 --daemonize –edns-payload-size=1252 -R cisco -l /opt/tmp/dnscrypt-proxy.65053.log -m 7"
PREARGS=""
DESC=

. /opt/etc/init.d/rc.func

dnscrypt-proxy --local-address=127.0.0.2:65153 --daemonize –edns-payload-size=1252 -R fvz-anyone -l /opt/tmp/dnscrypt-proxy.65153.log -m 7

И в dnsmasq.conf


server=127.0.0.2#65053
server=127.0.0.2#65153
all-servers

Сейчас - это не сравнимо с тем DNS Benchmark, небо и земля.

  Показать содержимое

Сравнение

Server IP;System Resolver;Status;Nets Blocked;Cached Min;Cached Avg;Cached Max;Cached Std;Cached Sent;Cached Rcvd;Uncached Min;Uncached Avg;Uncached Max;Uncached Std;Uncached Sent;Uncached Rcvd;Dotcom Min;Dotcom Avg;Dotcom Max;Dotcom Std;Dotcom Sent;Dotcom Rcvd;Reverse DNS;Owner;Start Time (utc);Duration (sec)

KII-KII;Yes;Online;--------;0,000;0,001;0,001;0,000;30;30;0,056;0,111;0,412;0,085;30;30;0,046;0,052;0,080;0,011;30;30;MY-KEEN;Local Network Nameserver;2017-09-20 05:06:26;78,014
   8.   8.   4.   4;No;Online;--------;0,014;0,015;0,015;0,000;30;30;0,032;0,071;0,292;0,053;30;30;0,042;0,050;0,076;0,011;30;30;google-public-dns-b.google.com;GOOGLE - Google Inc., US;2017-09-20 05:06:26;78,014
   8.   8.   8.   8;No;Online;--------;0,014;0,015;0,015;0,000;30;30;0,032;0,091;0,328;0,079;30;30;0,041;0,055;0,075;0,012;30;30;google-public-dns-a.google.com;GOOGLE - Google Inc., US;2017-09-20 05:06:26;78,014
 129. 250.  35. 250;No;Online;--------;0,054;0,054;0,055;0,000;30;30;0,055;0,074;0,240;0,040;30;30;0,061;0,085;0,234;0,046;30;30;x.ns.gin.ntt.net;NTT-COMMUNICATIONS-2914 - NTT America, Inc., US;2017-09-20 05:06:26;78,014
   4.   2.   2.   1;No;Redirects ALL;--------;0,054;0,054;0,055;0,000;31;31;0,055;0,085;0,314;0,054;31;31;0,063;0,063;0,066;0,001;31;31;a.resolvers.level3.net;LEVEL3 - Level 3 Communications, Inc., US;2017-09-20 05:06:26;78,014
   4.   2.   2.   3;No;Redirects ALL;--------;0,054;0,054;0,056;0,000;31;31;0,055;0,085;0,311;0,052;31;31;0,063;0,065;0,074;0,002;31;31;c.resolvers.level3.net;LEVEL3 - Level 3 Communications, Inc., US;2017-09-20 05:06:26;78,014

 

Работает. Спасибо. Рекламу не редет если использовать два резолвера. 

Link to comment
Share on other sites

1 час назад, vlad сказал:

Работает. Спасибо. Рекламу не редет если использовать два резолвера. 

За рекламой ее блокировкой следит у меня Dnsmasq, для него есть два списка "malwaredom_block" - 1157 записей, "mvps_block" - 13237 записей, так что хватает. Можете включить лог и посмотреть что получается, только потом выключить

#log-queries
#log-facility=/opt/var/log/dnsmasq.log
#log-async=25

Два резолвера при "all-servers" - отсылка запроса. Запрос DNS от клиента получение его dnsmasq проверка на разрешение из списка если ок то отсылка его на два адреса резолвера, а с какого придет быстрей ответ тот и берется в работу для отправки клиенту.

Так что вопрос не ясен по поводу блокировки рекламы.

 

Edited by vasek00
Link to comment
Share on other sites

  • 2 months later...

Спасибо за такие полезные штуки! Всё работает замечательно!

Однако, на сколько я понял, всё что происходит внутри роутера в entware (curl, ping, ...), использует DNS из прошивки, и с этим пока ничего не поделать, верно? Или всё-таки есть решение?

Link to comment
Share on other sites

17 часов назад, dippnsk сказал:

Однако, на сколько я понял, всё что происходит внутри роутера в entware (curl, ping, ...), использует DNS из прошивки, и с этим пока ничего не поделать, верно? Или всё-таки есть решение?

Не знаю кто как у меня DNSMasq и DNScrypt-proxy (два сервиса + два канала)

Инет1------DNScrypt-proxy-----DNSmasq-----Клиент
Инет2------DNScrypt-proxy-----+

Dnsmasq.conf
...
server=127.0.0.2#65053
server=127.0.0.2#65153
cache-size=1500
all-servers
...
addn-hosts=/opt/tmp/hosts0
addn-hosts=/opt/tmp/malwaredom_block.host
addn-hosts=/opt/tmp/mvps_block.host

DNScrypt-proxy
--------------
dnscrypt-proxy --local-address=127.0.0.2:65053 --daemonize –edns-payload-size=1252 -R cisco -l /opt/tmp/dnscrypt-proxy.65053.log -m 7
dnscrypt-proxy --local-address=127.0.0.2:65153 --daemonize –edns-payload-size=1252 -R fvz-anyone -l /opt/tmp/dnscrypt-proxy.65153.log -m 7

/ # ip ro add 185.121.177.177/32 via IP_инет2 dev ppp1
/ # ip ro
default dev ppp0  scope link 
...
185.121.177.177 via IP_инет2 dev ppp1 
...
хх.106.хх.хх dev ppp1 proto kernel scope link src IP_инет2 

/ # traceroute 185.121.177.177
traceroute to 185.121.177.177 (185.121.177.177), 30 hops max, 38 byte packets
 1  vpn.....net (хх.106.хх.хх)  0.411 ms  0.402 ms  1.176 ms
 2  .........net (хх.106.хх.хх)  0.434 ms  0.430 ms  0.383 ms
/ # traceroute 208.67.220.220
traceroute to 208.67.220.220 (208.67.220.220), 30 hops max, 38 byte packets
 1  YY.......ru (YY.YY.YY.1)  4.064 ms  3.977 ms  3.928 ms

Для одного канала но на два сервиса
-----------------------------------
Инет1------DNScrypt-proxy-----DNSmasq-----Клиент
Инет1------DNScrypt-proxy-----+

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

На клиенте проверка DNSBench

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

 Final benchmark results, sorted by nameserver performance:
 (average cached name retrieval speed, fastest to slowest)

  192.168.1.100       |  Min  |  Avg  |  Max  |Std.Dev|Reliab%|
  ----------------+-------+-------+-------+-------+-------+
  + Cached Name   | 0,000 | 0,000 | 0,001 | 0,000 | 100,0 |
  + Uncached Name | 0,057 | 0,132 | 0,341 | 0,087 | 100,0 |
  + DotCom Lookup | 0,057 | 0,065 | 0,071 | 0,004 | 100,0 |
  ---<-------->---+-------+-------+-------+-------+-------+
                         MyK
                Local Network Nameserver

    8.  8.  8.  8 |  Min  |  Avg  |  Max  |Std.Dev|Reliab%|
  ----------------+-------+-------+-------+-------+-------+
  - Cached Name   | 0,014 | 0,015 | 0,015 | 0,000 | 100,0 |
  - Uncached Name | 0,044 | 0,111 | 0,377 | 0,083 | 100,0 |
  - DotCom Lookup | 0,053 | 0,061 | 0,082 | 0,010 | 100,0 |
  ---<-------->---+-------+-------+-------+-------+-------+
             google-public-dns-a.google.com
                 GOOGLE - Google LLC, US

    8.  8.  4.  4 |  Min  |  Avg  |  Max  |Std.Dev|Reliab%|
  ----------------+-------+-------+-------+-------+-------+
  - Cached Name   | 0,015 | 0,015 | 0,015 | 0,000 | 100,0 |
  - Uncached Name | 0,044 | 0,111 | 0,372 | 0,077 | 100,0 |
  - DotCom Lookup | 0,055 | 0,065 | 0,083 | 0,011 | 100,0 |
  ---<-------->---+-------+-------+-------+-------+-------+
             google-public-dns-b.google.com
                 GOOGLE - Google LLC, US

  156.154. 70.  1 |  Min  |  Avg  |  Max  |Std.Dev|Reliab%|
  ----------------+-------+-------+-------+-------+-------+
  - Cached Name   | 0,055 | 0,056 | 0,056 | 0,000 | 100,0 |
  - Uncached Name | 0,056 | 0,107 | 0,328 | 0,074 | 100,0 |
  - DotCom Lookup | 0,057 | 0,072 | 0,145 | 0,020 | 100,0 |
  ---<-------->---+-------+-------+-------+-------+-------+
                   rdns1.ultradns.net
              ULTRADNS - NeuStar, Inc., US

  198.153.192.  1 |  Min  |  Avg  |  Max  |Std.Dev|Reliab%|
  ----------------+-------+-------+-------+-------+-------+
  - Cached Name   | 0,055 | 0,056 | 0,057 | 0,000 | 100,0 |
  - Uncached Name | 0,057 | 0,112 | 0,338 | 0,079 | 100,0 |
  - DotCom Lookup | 0,057 | 0,080 | 0,147 | 0,031 | 100,0 |
  ---<-------->---+-------+-------+-------+-------+-------+   

Внутриний так и оставил (при opkg dns-override), то что от провадера получил, хотя отключаеться строчками через cli тут на форуме уже писалось про это. Торрент не используется, а для "мелочи" от локальных сервисов запросы сойдет.

Где обсуждалось

 

Edited by vasek00
Link to comment
Share on other sites

  • 4 weeks later...

@vasek00, до яндексовских серверов не меряли? Они используются в Я.Браузере, спуфингом по спискам блокировок не занимаются, да и ближе не найти.

 

PS По dnscrypt вроде была тема рядом.

Link to comment
Share on other sites

41 минуту назад, Александр Рыжов сказал:

@vasek00, до яндексовских серверов не меряли? Они используются в Я.Браузере, спуфингом по спискам блокировок не занимаются, да и ближе не найти.

PS По dnscrypt вроде была тема рядом.

По теме не доглядел, исправил.

В моем списке серверов yandex нет, так как давно с сентября 2017 от него ушел из-за проблем с UDP на TCP работал стабильно, сейчас по нему не в курсе. По ping до 77.88.8.78

Обмен пакетами с 77.88.8.78 по с 32 байтами данных:
Ответ от 77.88.8.78: число байт=32 время=22мс TTL=53
Ответ от 77.88.8.78: число байт=32 время=22мс TTL=53
Ответ от 77.88.8.78: число байт=32 время=22мс TTL=53

 

Link to comment
Share on other sites

  • 5 months later...

Большое спасибо автору. Йота блокирует смену DNS. Мне только частично с помощью официального саппорта (keenetic) удалось обойти ограничение.
С Entware и вашей инструкцией по dnscrypt-proxy ограничения обошлись полностью. Отдельное спасибо KorDen и awoland за важные замечания к инструкции.
Без модификации файла S09dnscrypt-proxy и команды "opkg dns-override" в telnet'е у меня лично не работало.

P.S. Вы вроде как рулите этим пакетом. Добавьте в csv пожалуйста DNS от Cloudflare:

Cloudflare DNS (anycast) - aka 1.1.1.1 / 1.0.0.1 https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md

Или подскажите, как это сделать самостоятельно. Все, что я нагуглил не понимаю как вставлять в конфиги. Особенно моменты, где говорится про .toml файлы. Пожалуйста, если не будете обновлять .csv, ткните ламера в нужный ман носом, был бы очень признателен :)

Link to comment
Share on other sites

Признаться, решение устарело по двум аспектам: как по версии dnscrypt-proxy, так и по использованию финта с заворачиванием DNS-трафика с помощью правила iptables.

Современные версии прошивки умеют освобождать порт UDP53 для работы собственных резолверов, а современные версии dnscrypt-proxy2 умеют использовать несколько резолверов из списка, ранжировать серверы по отзывчивости и использовать DNS-over-HTTPS, полностью маскируя DNS трафик.

Когда дойдут руки, обязательно обновлю архив.

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
Reply to this topic...

×   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...