Jump to content

Защищаем DNS запросы с помощью dnscrypt-proxy2. Бонусом блокировка рекламы.


Recommended Posts

В 12.09.2018 в 12:37, vasek00 сказал:

dnscrypt-proxy --local-address='[::1]:53'....

[2018-09-16 13:58:22] [NOTICE] Now listening to 192.168.1.1:53 [UDP]
[2018-09-16 13:58:23] [NOTICE] Now listening to 192.168.1.1:53 [TCP]
[2018-09-16 13:58:23] [NOTICE] Now listening to [::1]:53 [UDP]
[2018-09-16 13:58:23] [NOTICE] Now listening to [::1]:53 [TCP]

В 12.09.2018 в 06:11, ankar84 сказал:

Когда настроен скрипт, который добавляет правило в iptables, которое "приземляет" или можно сказать перехватывает пакеты на 53 порт udp, как это описано в инструкции, то стоит учитывать, что данное правило задано именно в iptables и распространяется на ipv4 трафик. Я не уверен, но возможно, что нечто подобное нужно делать для ipv6 версии iptables. Тогда ipv6 пакеты, которые проходят через роутер будут перехватываться и обрабатываться в dnscrypt-proxy2. 

Обратился на форум сообщества своего Linux дистрибутива. Там предположили, что следующая строчка отбрасывает IPv6 запросы

[ "$type" == "ip6tables" ] && exit 0

и поправили скрипт:

#!/bin/sh
[ "$table" != "nat" ] && exit 0
[ -z "$(iptables-save | grep " --dport 53 -j DNAT --to-destination 192.168.1.1")" ] && \
    iptables -t nat -I PREROUTING -p udp --dport 53 -j DNAT --to-destination 192.168.1.1:53 && \
    ip6tables -t nat -I PREROUTING -p udp --dport 53 -j DNAT --to-destination <ipv6_adress_proxy>:53
exit 0

Должно ли это работать?
И <ipv6_adress_proxy> нужно заменить на [::1]:53? Пробовал, не сработало. Стали пропускаться даже запросы к сторонним IPv4 DNS серверам.
Если попробовать запустить команду ip6tables вручную, то выдает следующее:

ip6tables -t nat -I PREROUTING -p udp --dport 53 -j DNAT --to-destination [::1]:53

ip6tables v1.4.21: can't initialize ip6tables table `nat': Table does not exist (do you need to insmod?)
Perhaps ip6tables or your kernel needs to be upgraded.

Из этого мне понятно только то, что таблицы "nat" не существует и возможно нужно обновить ip6tables или ядро.
Если отсутствие таблицы скорее всего поправимо, то что делать с остальным?

Возможно, эта команда и не должна отдельно работать. Если бы я в этом что-то понимал.. )

Link to comment
Share on other sites

@Вежливый Снайпер, отличные исследования!

Кроме всего прочего в инструкции я написал:

В 05.06.2018 в 23:33, ankar84 сказал:

Вероятно, скрипт можно написать значительно изящнее и ловить не UDP, но и TCP трафик, но у меня получилось только вот так. В ответах, гуру баша могут подсказать как сделать правильнее, подправлю для общего блага. Мне "приземление" только UDP трафика на 53 порт роутера помогло полностью избавиться от рекламы на всех устройствах домашней сети. Так что TCP можно и не трогать.

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

Строчка

[ "$type" == "ip6tables" ] && exit 0

явно как раз призвана пропускать обработку правил для IPv6, тут вам правильно подсказали.

22 минуты назад, Вежливый Снайпер сказал:

Должно ли это работать?

Вот тут совсем не уверен. Делал подобным образом для создания 2 правил UDP и TCP, так второе не работало. Об этом я писал в первом посте.

24 минуты назад, Вежливый Снайпер сказал:

Из этого мне понятно только то, что таблицы "nat" не существует и возможно нужно обновить ip6tables или ядро.
Если отсутствие таблицы скорее всего поправимо, то что делать с остальным?

Здесь, думаю, нам что-то прояснить может только @Le ecureuil

25 минут назад, Вежливый Снайпер сказал:

И <ipv6_adress_proxy> нужно заменить на [::1]:53? Пробовал, не сработало. Стали пропускаться даже запросы к сторонним IPv4 DNS серверам.

Я настроил dnscrypt-proxy на Link-Local IPv6 адрес роутера, так как именно к нему обращались клиенты на Windows 7-10. Это работает стабильно, хотя, вероятно, и  [::1]:53 должно работать.

P.S. Quad9 добавляют поддержку DNSCrypt-proxy на свои anycast серверы.

Чтобы их потестировать можно добавить их список вставкой в конфиг вот этого текста

[sources.'quad9-resolvers']
urls = ['https://www.quad9.net/quad9-resolvers.md']
minisign_key = 'RWQBphd2+f6eiAqBsvDZEBXBGHQBJfeG6G+wJPPKxCZMoEQYpmoysKUN'
cache_file = 'quad9-resolvers.md'
refresh_delay = 72
prefix = ''

 

  • Thanks 1
Link to comment
Share on other sites

В 13.09.2018 в 19:07, vasek00 сказал:

Либо у меня на телефоне уже многое отключено и плюсом "блокировщики" на нем или приложений мало, по запускал посмотрел не чего такого что привлекло бы внимания не заметил.

Если вы не пользуетесь серверами Google в общем списке всех DNSCrypt резолверов, то для максимальной наглядности могу порекомендовать пройти со смартфона на Андроиде расширенный тест на dnsleaktest с приземлением запросов и без него.

У меня с приземлением только выбранные мной серверы (OpenNIC и сейчас еще Quad9 тестирую), а если без приземления добавляется целая куча серверов Google из Финляндии.

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

image.png.d0b5f2907a094c95c33bb4b990d2725a.png

Screenshot_2018-09-16-16-32-53-347_com.android.chrome.thumb.png.f8f1ed6d660cb5bc770fd542e0541333.png

 

 

Edited by ankar84
Link to comment
Share on other sites

@Вежливый Снайпер @vasek00 кстати, только что обнаружил, что вот такая настройка локального DNS сервера на странице Интернет-фильтр кажется приземляет все запросы на указанный сервер:

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

image.png.33f56c2e3913c597f549f22f5c1c6f5a.png 

Ранее у меня в поле Подключение всегда было явно выбрано подключение к провайдеру. И тогда как раз пролетали DNS запросы на серверы Гугла с телефонов на Андроид без скрипта "приземления". А вот когда ставишь значение Любой - в dnsleaktest я вижу только "нужные" серверы (без Гугла). 

Правда, исходя из того, что рекламу на том же 2ip.ru я при такой настройке все же вижу, я могу и ошибаться и скрипт "приземления" все равно нужен.

Обновлено:

Отбой, не знаю как эта настройка влияет на dnsleaktest, но проверил с помощью tcpdump -i br0 port 53
и вижу вот это:

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

16:57:42.572345 IP 192.168.1.111.20589 > 192.168.1.1.domain: 54305+ A? tredman.com. (29)
16:57:42.573276 IP 192.168.1.1.domain > 192.168.1.111.20589: 54305 Refused- 0/0/0 (29)
16:57:42.575869 IP 192.168.1.111.11746 > 192.168.1.1.domain: 45400+ A? counter.yadro.ru. (34)
16:57:42.576667 IP 192.168.1.1.domain > 192.168.1.111.11746: 45400 Refused- 0/0/0 (34)
16:57:42.583501 IP6 fe80::6b1:67ff:fead:45c3.28268 > fe80::52ff:20ff:fe00:1f2e.domain: 14774+ A? counter.yadro.ru. (34)
16:57:42.594220 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.28268: 14774 Refused- 0/0/0 (34)
16:57:42.599092 IP 192.168.1.111.9817 > google-public-dns-a.google.com.domain: 14774+ A? counter.yadro.ru. (34)
16:57:42.652062 IP google-public-dns-a.google.com.domain > 192.168.1.111.9817: 14774 22/0/0 A 88.212.196.77, A 88.212.196.101, A 88.212.196.102, A 88.212.196.103, A 88.212.196.104, A 88.212.196.105, A 88.212.196.122, A 88.212.196.123, A 88.212.196.124, A 88.212.201.193, A 88.212.201.194, A 88.212.201.195, A 88.212.201.196, A 88.212.201.197, A 88.212.201.199, A 88.212.201.205, A 88.212.201.207, A 88.212.201.208, A 88.212.196.66, A 88.212.196.69, A 88.212.196.72, A 88.212.196.75 (386)
16:57:42.739665 IP 192.168.1.100.54083 > 192.168.1.1.domain: 50899+ A? ya.ru. (23)
16:57:42.740724 IP 192.168.1.1.domain > 192.168.1.100.54083: 50899 1/0/1 A 87.250.250.242 (53)
16:57:42.968863 IP 192.168.1.111.44216 > 192.168.1.1.domain: 56242+ A? retarget.ssl-services.com. (43)
16:57:42.969706 IP 192.168.1.1.domain > 192.168.1.111.44216: 56242 Refused- 0/0/0 (43)
16:57:43.072554 IP 192.168.1.111.36675 > 192.168.1.1.domain: 32619+ A? retarget.ssl-services.com. (43)
16:57:43.073551 IP 192.168.1.1.domain > 192.168.1.111.36675: 32619 Refused- 0/0/0 (43)
16:57:43.290369 IP 192.168.1.111.25880 > 192.168.1.1.domain: 10579+ A? mrelko.com. (28)
16:57:43.291186 IP 192.168.1.1.domain > 192.168.1.111.25880: 10579 Refused- 0/0/0 (28)
 

Итог: приземлять запросы нужно.

P.S. Если кому интересно, вот фрагмент дампа во время расширенного теста dnsleaktest без скрипта приземления при настройке на любое подключение DNS сервера. Выделил запросы к серверам Гугла, не знаю почему dnsleaktest не выдал их в результате теста.

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

17:03:06.423807 IP 192.168.1.111.17088 > 192.168.1.1.domain: 5710+ A? e5t9viy1bd.dnsleaktest.com. (44)
17:03:06.624353 IP 192.168.1.1.domain > 192.168.1.111.17088: 5710 NXDomain 0/1/1 (147)
17:03:06.630423 IP6 fe80::6b1:67ff:fead:45c3.52382 > fe80::52ff:20ff:fe00:1f2e.domain: 59242+ A? e5t9viy1bd.dnsleaktest.com. (44)
17:03:06.631678 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.52382: 59242 NXDomain 0/1/1 (102)
17:03:06.638174 IP 192.168.1.111.18316 > 192.168.1.1.domain: 24005+ A? z922ikhgne.dnsleaktest.com. (44)
17:03:06.838565 IP 192.168.1.1.domain > 192.168.1.111.18316: 24005 NXDomain 0/1/1 (147)
17:03:06.845866 IP 192.168.1.111.38522 > 192.168.1.1.domain: 27830+ A? pxb97fg5r4.dnsleaktest.com. (44)
17:03:06.849380 IP6 fe80::6b1:67ff:fead:45c3.61689 > fe80::52ff:20ff:fe00:1f2e.domain: 55011+ A? z922ikhgne.dnsleaktest.com. (44)
17:03:06.850451 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.61689: 55011 NXDomain 0/1/1 (102)
17:03:07.044412 IP 192.168.1.1.domain > 192.168.1.111.38522: 27830 NXDomain 0/1/1 (147)
17:03:07.050365 IP6 fe80::6b1:67ff:fead:45c3.42386 > fe80::52ff:20ff:fe00:1f2e.domain: 48966+ A? pxb97fg5r4.dnsleaktest.com. (44)
17:03:07.051599 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.42386: 48966 NXDomain 0/1/1 (102)
17:03:07.055447 IP 192.168.1.111.60283 > 192.168.1.1.domain: 57580+ A? 7pwgkxv3q1.dnsleaktest.com. (44)
17:03:07.260559 IP 192.168.1.1.domain > 192.168.1.111.60283: 57580 NXDomain 0/1/1 (147)
17:03:07.369777 IP6 fe80::6b1:67ff:fead:45c3.36896 > fe80::52ff:20ff:fe00:1f2e.domain: 38660+ A? 7pwgkxv3q1.dnsleaktest.com. (44)
17:03:07.370982 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.36896: 38660 NXDomain 0/1/1 (102)
17:03:07.382162 IP 192.168.1.111.15639 > 192.168.1.1.domain: 8561+ A? bxlixcpohl.dnsleaktest.com. (44)
17:03:07.582602 IP 192.168.1.1.domain > 192.168.1.111.15639: 8561 NXDomain 0/1/1 (147)
17:03:07.676751 IP6 fe80::6b1:67ff:fead:45c3.48871 > fe80::52ff:20ff:fe00:1f2e.domain: 46096+ A? bxlixcpohl.dnsleaktest.com. (44)
17:03:07.678127 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.48871: 46096 NXDomain 0/1/1 (102)
17:03:07.682837 IP 192.168.1.111.47540 > 192.168.1.1.domain: 2603+ A? qlhvw9svsr.dnsleaktest.com. (44)
17:03:07.888662 IP 192.168.1.1.domain > 192.168.1.111.47540: 2603 NXDomain 0/1/1 (147)
17:03:07.987459 IP6 fe80::6b1:67ff:fead:45c3.46101 > fe80::52ff:20ff:fe00:1f2e.domain: 42737+ A? qlhvw9svsr.dnsleaktest.com. (44)
17:03:07.989465 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.46101: 42737 NXDomain 0/1/1 (102)
17:03:07.994186 IP 192.168.1.111.9197 > 192.168.1.1.domain: 26003+ A? nwcm4l7xt7.dnsleaktest.com. (44)
17:03:08.199279 IP 192.168.1.1.domain > 192.168.1.111.9197: 26003 NXDomain 0/1/1 (147)
17:03:08.307903 IP6 fe80::6b1:67ff:fead:45c3.41086 > fe80::52ff:20ff:fe00:1f2e.domain: 56522+ A? nwcm4l7xt7.dnsleaktest.com. (44)
17:03:08.309237 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.41086: 56522 NXDomain 0/1/1 (102)
17:03:08.312940 IP 192.168.1.111.21369 > 192.168.1.1.domain: 43295+ A? tcmozu36qx.dnsleaktest.com. (44)
17:03:08.517672 IP 192.168.1.1.domain > 192.168.1.111.21369: 43295 NXDomain 0/1/1 (147)
17:03:08.617938 IP6 fe80::6b1:67ff:fead:45c3.46740 > fe80::52ff:20ff:fe00:1f2e.domain: 54313+ A? tcmozu36qx.dnsleaktest.com. (44)
17:03:08.619149 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.46740: 54313 NXDomain 0/1/1 (102)
17:03:08.625137 IP 192.168.1.111.50747 > 192.168.1.1.domain: 23043+ A? 4mau9mm0x6.dnsleaktest.com. (44)
17:03:08.837869 IP 192.168.1.1.domain > 192.168.1.111.50747: 23043 NXDomain 0/1/1 (147)
17:03:08.939905 IP6 fe80::6b1:67ff:fead:45c3.40951 > fe80::52ff:20ff:fe00:1f2e.domain: 49027+ A? 4mau9mm0x6.dnsleaktest.com. (44)
17:03:08.941193 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.40951: 49027 NXDomain 0/1/1 (102)
17:03:08.944566 IP 192.168.1.111.42507 > 192.168.1.1.domain: 14079+ A? 70wg12c94x.dnsleaktest.com. (44)
17:03:09.160280 IP 192.168.1.1.domain > 192.168.1.111.42507: 14079 NXDomain 0/1/1 (147)
17:03:09.279372 IP 192.168.1.100.54083 > 192.168.1.1.domain: 20117+ A? ya.ru. (23)
17:03:09.280467 IP 192.168.1.1.domain > 192.168.1.100.54083: 20117 1/0/1 A 87.250.250.242 (53)
17:03:09.284781 IP 192.168.1.111.29452 > 192.168.1.1.domain: 21418+ A? 479nc83g50.dnsleaktest.com. (44)
17:03:09.486583 IP 192.168.1.1.domain > 192.168.1.111.29452: 21418 NXDomain 0/1/1 (147)
17:03:09.586994 IP6 fe80::6b1:67ff:fead:45c3.65110 > fe80::52ff:20ff:fe00:1f2e.domain: 57346+ A? 479nc83g50.dnsleaktest.com. (44)
17:03:09.588207 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.65110: 57346 NXDomain 0/1/1 (102)
17:03:09.594202 IP 192.168.1.111.33497 > 192.168.1.1.domain: 42195+ A? pdbvmugs8h.dnsleaktest.com. (44)
17:03:09.795707 IP 192.168.1.1.domain > 192.168.1.111.33497: 42195 NXDomain 0/1/1 (147)
17:03:09.854068 IP 192.168.1.111.46801 > 192.168.1.1.domain: 51699+ A? 70wg12c94x.dnsleaktest.com. (44)
17:03:09.855250 IP 192.168.1.1.domain > 192.168.1.111.46801: 51699 NXDomain 0/1/1 (102)
17:03:09.897164 IP6 fe80::6b1:67ff:fead:45c3.65503 > fe80::52ff:20ff:fe00:1f2e.domain: 58413+ A? pdbvmugs8h.dnsleaktest.com. (44)
17:03:09.897573 IP6 fe80::6b1:67ff:fead:45c3.33827 > fe80::52ff:20ff:fe00:1f2e.domain: 46253+ A? 70wg12c94x.dnsleaktest.com. (44)
17:03:09.898712 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.33827: 46253 NXDomain 0/1/1 (102)
17:03:09.898978 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.65503: 58413 NXDomain 0/1/1 (102)
17:03:09.901092 IP 192.168.1.111.63475 > 192.168.1.1.domain: 52335+ A? 5pkzrjwhu7.dnsleaktest.com. (44)
17:03:10.101451 IP 192.168.1.1.domain > 192.168.1.111.63475: 52335 NXDomain 0/1/1 (147)
17:03:10.810981 IP 192.168.1.111.49504 > 192.168.1.1.domain: 33333+ A? 5pkzrjwhu7.dnsleaktest.com. (44)
17:03:10.812235 IP 192.168.1.1.domain > 192.168.1.111.49504: 33333 NXDomain 0/1/1 (102)
17:03:10.923218 IP6 fe80::6b1:67ff:fead:45c3.52530 > fe80::52ff:20ff:fe00:1f2e.domain: 57886+ A? 5pkzrjwhu7.dnsleaktest.com. (44)
17:03:10.924474 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.52530: 57886 NXDomain 0/1/1 (102)
17:03:11.056870 IP 192.168.1.111.16961 > 192.168.1.1.domain: 12815+ A? 87795s8mn4.dnsleaktest.com. (44)
17:03:11.258064 IP 192.168.1.1.domain > 192.168.1.111.16961: 12815 NXDomain 0/1/1 (147)
17:03:11.479157 IP6 fe80::6b1:67ff:fead:45c3.51370 > fe80::52ff:20ff:fe00:1f2e.domain: 46926+ A? 87795s8mn4.dnsleaktest.com. (44)
17:03:11.480334 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.51370: 46926 NXDomain 0/1/1 (102)
17:03:11.487195 IP 192.168.1.111.63303 > 192.168.1.1.domain: 25711+ A? l08nova54j.dnsleaktest.com. (44)
17:03:11.705241 IP 192.168.1.1.domain > 192.168.1.111.63303: 25711 NXDomain 0/1/1 (147)
17:03:11.817693 IP6 fe80::6b1:67ff:fead:45c3.35934 > fe80::52ff:20ff:fe00:1f2e.domain: 46679+ A? l08nova54j.dnsleaktest.com. (44)
17:03:11.819002 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.35934: 46679 NXDomain 0/1/1 (102)
17:03:11.824067 IP 192.168.1.111.21636 > 192.168.1.1.domain: 18129+ A? o3nyu0dj5f.dnsleaktest.com. (44)
17:03:12.026805 IP 192.168.1.1.domain > 192.168.1.111.21636: 18129 NXDomain 0/1/1 (147)
17:03:12.130691 IP6 fe80::6b1:67ff:fead:45c3.39660 > fe80::52ff:20ff:fe00:1f2e.domain: 53492+ A? o3nyu0dj5f.dnsleaktest.com. (44)
17:03:12.131843 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.39660: 53492 NXDomain 0/1/1 (102)
17:03:12.143105 IP 192.168.1.111.58162 > 192.168.1.1.domain: 19729+ A? lfgzh9zx3n.dnsleaktest.com. (44)
17:03:12.346202 IP 192.168.1.1.domain > 192.168.1.111.58162: 19729 NXDomain 0/1/1 (147)
17:03:12.461161 IP6 fe80::6b1:67ff:fead:45c3.56311 > fe80::52ff:20ff:fe00:1f2e.domain: 59295+ A? lfgzh9zx3n.dnsleaktest.com. (44)
17:03:12.462404 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.56311: 59295 NXDomain 0/1/1 (102)
17:03:12.471027 IP 192.168.1.111.34341 > 192.168.1.1.domain: 2073+ A? 4bxeces6rr.dnsleaktest.com. (44)
17:03:12.619876 IP 192.168.1.100.54083 > 192.168.1.1.domain: 9028+ A? ya.ru. (23)
17:03:12.621400 IP 192.168.1.1.domain > 192.168.1.100.54083: 9028 1/0/1 A 87.250.250.242 (53)
17:03:12.673776 IP 192.168.1.1.domain > 192.168.1.111.34341: 2073 NXDomain 0/1/1 (147)
17:03:12.776474 IP6 fe80::6b1:67ff:fead:45c3.48379 > fe80::52ff:20ff:fe00:1f2e.domain: 36934+ A? 4bxeces6rr.dnsleaktest.com. (44)
17:03:12.777862 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.48379: 36934 NXDomain 0/1/1 (102)
17:03:12.780401 IP 192.168.1.111.52022 > 192.168.1.1.domain: 31366+ A? xyv45dg9ao.dnsleaktest.com. (44)
17:03:12.986200 IP 192.168.1.1.domain > 192.168.1.111.52022: 31366 NXDomain 0/1/1 (147)
17:03:13.173810 IP6 fe80::6b1:67ff:fead:45c3.62147 > fe80::52ff:20ff:fe00:1f2e.domain: 44522+ A? xyv45dg9ao.dnsleaktest.com. (44)
17:03:13.173969 IP 192.168.1.111.15590 > 192.168.1.1.domain: 758+ A? h1veok3q0w.dnsleaktest.com. (44)
17:03:13.175281 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.62147: 44522 NXDomain 0/1/1 (102)
17:03:13.377504 IP 192.168.1.1.domain > 192.168.1.111.15590: 758 NXDomain 0/1/1 (147)
17:03:13.483235 IP6 fe80::6b1:67ff:fead:45c3.36979 > fe80::52ff:20ff:fe00:1f2e.domain: 61239+ A? h1veok3q0w.dnsleaktest.com. (44)
17:03:13.484521 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.36979: 61239 NXDomain 0/1/1 (102)
17:03:13.494636 IP 192.168.1.111.26516 > 192.168.1.1.domain: 21263+ A? xx1ilcl4yr.dnsleaktest.com. (44)
17:03:13.692552 IP 192.168.1.1.domain > 192.168.1.111.26516: 21263 NXDomain 0/1/1 (147)
17:03:13.777009 IP6 fe80::6b1:67ff:fead:45c3.1712 > fe80::52ff:20ff:fe00:1f2e.domain: 40499+ A? xx1ilcl4yr.dnsleaktest.com. (44)
17:03:13.778618 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.1712: 40499 NXDomain 0/1/1 (102)
17:03:13.781391 IP 192.168.1.111.52921 > 192.168.1.1.domain: 6067+ A? tlvftikpv3.dnsleaktest.com. (44)
17:03:13.980122 IP 192.168.1.1.domain > 192.168.1.111.52921: 6067 NXDomain 0/1/1 (147)
17:03:14.112051 IP6 fe80::6b1:67ff:fead:45c3.45283 > fe80::52ff:20ff:fe00:1f2e.domain: 49016+ A? tlvftikpv3.dnsleaktest.com. (44)
17:03:14.112212 IP 192.168.1.111.6188 > 192.168.1.1.domain: 44361+ A? ty7almrarb.dnsleaktest.com. (44)
17:03:14.113383 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.45283: 49016 NXDomain 0/1/1 (102)
17:03:14.313848 IP 192.168.1.1.domain > 192.168.1.111.6188: 44361 NXDomain 0/1/1 (147)
17:03:14.418023 IP6 fe80::6b1:67ff:fead:45c3.53714 > fe80::52ff:20ff:fe00:1f2e.domain: 35430+ A? ty7almrarb.dnsleaktest.com. (44)
17:03:14.419306 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.53714: 35430 NXDomain 0/1/1 (102)
17:03:14.425088 IP 192.168.1.111.37980 > 192.168.1.1.domain: 40470+ A? 7h5x1ixqc8.dnsleaktest.com. (44)
17:03:14.624478 IP 192.168.1.1.domain > 192.168.1.111.37980: 40470 NXDomain 0/1/1 (147)
17:03:14.751292 IP6 fe80::6b1:67ff:fead:45c3.60045 > fe80::52ff:20ff:fe00:1f2e.domain: 38234+ A? 7h5x1ixqc8.dnsleaktest.com. (44)
17:03:14.751458 IP 192.168.1.111.3185 > 192.168.1.1.domain: 29987+ A? isqkpuhaxf.dnsleaktest.com. (44)
17:03:14.753421 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.60045: 38234 NXDomain 0/1/1 (102)
17:03:14.953921 IP 192.168.1.1.domain > 192.168.1.111.3185: 29987 NXDomain 0/1/1 (147)
17:03:15.058262 IP6 fe80::6b1:67ff:fead:45c3.1910 > fe80::52ff:20ff:fe00:1f2e.domain: 34155+ A? isqkpuhaxf.dnsleaktest.com. (44)
17:03:15.059386 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.1910: 34155 NXDomain 0/1/1 (102)
17:03:15.064935 IP 192.168.1.111.33525 > 192.168.1.1.domain: 28809+ A? ejfl7iet3z.dnsleaktest.com. (44)
17:03:15.262530 IP 192.168.1.1.domain > 192.168.1.111.33525: 28809 NXDomain 0/1/1 (147)
17:03:15.369933 IP6 fe80::6b1:67ff:fead:45c3.47113 > fe80::52ff:20ff:fe00:1f2e.domain: 54018+ A? ejfl7iet3z.dnsleaktest.com. (44)
17:03:15.371517 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.47113: 54018 NXDomain 0/1/1 (102)
17:03:15.376854 IP 192.168.1.111.63535 > 192.168.1.1.domain: 2289+ A? qhic9pw8bg.dnsleaktest.com. (44)
17:03:15.582820 IP 192.168.1.1.domain > 192.168.1.111.63535: 2289 NXDomain 0/1/1 (147)
17:03:15.600533 IP6 fe80::6b1:67ff:fead:45c3.46453 > fe80::52ff:20ff:fe00:1f2e.domain: 48885+ A? qhic9pw8bg.dnsleaktest.com. (44)
17:03:15.601888 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.46453: 48885 NXDomain 0/1/1 (102)
17:03:15.607267 IP 192.168.1.111.33433 > 192.168.1.1.domain: 59234+ A? cv0pdd5m10.dnsleaktest.com. (44)
17:03:15.826134 IP 192.168.1.1.domain > 192.168.1.111.33433: 59234 NXDomain 0/1/1 (147)
17:03:15.919472 IP6 fe80::6b1:67ff:fead:45c3.41062 > fe80::52ff:20ff:fe00:1f2e.domain: 57314+ A? cv0pdd5m10.dnsleaktest.com. (44)
17:03:15.920575 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.41062: 57314 NXDomain 0/1/1 (102)
17:03:15.921415 IP 192.168.1.111.35927 > google-public-dns-a.google.com.domain: 57886+ A? 5pkzrjwhu7.dnsleaktest.com. (44)
17:03:15.933865 IP 192.168.1.111.1736 > 192.168.1.1.domain: 63922+ A? ggzhmr5ekj.dnsleaktest.com. (44)
17:03:15.941493 IP 192.168.1.100.54083 > 192.168.1.1.domain: 20538+ A? ya.ru. (23)
17:03:15.943225 IP 192.168.1.1.domain > 192.168.1.100.54083: 20538 1/0/1 A 87.250.250.242 (53)
17:03:16.120978 IP google-public-dns-a.google.com.domain > 192.168.1.111.35927: 57886 NXDomain 0/1/0 (91)
17:03:16.135135 IP 192.168.1.1.domain > 192.168.1.111.1736: 63922 NXDomain 0/1/1 (147)
17:03:16.287449 IP6 fe80::6b1:67ff:fead:45c3.38308 > fe80::52ff:20ff:fe00:1f2e.domain: 56387+ A? ggzhmr5ekj.dnsleaktest.com. (44)
17:03:16.288663 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.38308: 56387 NXDomain 0/1/1 (102)
17:03:17.014017 IP 192.168.1.111.17100 > 192.168.1.1.domain: 28812+ A? fiuin8za09.dnsleaktest.com. (44)
17:03:17.172334 IP 192.168.1.111.59356 > google-public-dns-a.google.com.domain: 53492+ A? o3nyu0dj5f.dnsleaktest.com. (44)
17:03:17.214836 IP 192.168.1.1.domain > 192.168.1.111.17100: 28812 NXDomain 0/1/1 (147)
17:03:17.311343 IP6 fe80::6b1:67ff:fead:45c3.53087 > fe80::52ff:20ff:fe00:1f2e.domain: 39041+ A? fiuin8za09.dnsleaktest.com. (44)
17:03:17.312425 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.53087: 39041 NXDomain 0/1/1 (102)
17:03:17.317945 IP 192.168.1.111.7500 > 192.168.1.1.domain: 24290+ A? aq84zh27cf.dnsleaktest.com. (44)
17:03:17.409813 IP google-public-dns-a.google.com.domain > 192.168.1.111.59356: 53492 NXDomain 0/1/0 (91)
17:03:17.518172 IP 192.168.1.1.domain > 192.168.1.111.7500: 24290 NXDomain 0/1/1 (147)
17:03:17.608031 IP6 fe80::6b1:67ff:fead:45c3.55562 > fe80::52ff:20ff:fe00:1f2e.domain: 46627+ A? aq84zh27cf.dnsleaktest.com. (44)
17:03:17.609335 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.55562: 46627 NXDomain 0/1/1 (102)
17:03:17.614135 IP 192.168.1.111.58374 > 192.168.1.1.domain: 33458+ A? pg4vcajjdy.dnsleaktest.com. (44)
17:03:17.816807 IP 192.168.1.1.domain > 192.168.1.111.58374: 33458 NXDomain 0/1/1 (147)
17:03:17.919504 IP6 fe80::6b1:67ff:fead:45c3.42705 > fe80::52ff:20ff:fe00:1f2e.domain: 48561+ A? pg4vcajjdy.dnsleaktest.com. (44)
17:03:17.920673 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.42705: 48561 NXDomain 0/1/1 (102)
17:03:17.925639 IP 192.168.1.111.61376 > 192.168.1.1.domain: 41830+ A? qxbot2wslb.dnsleaktest.com. (44)
17:03:18.122884 IP 192.168.1.1.domain > 192.168.1.111.61376: 41830 NXDomain 0/1/1 (147)
17:03:18.496815 IP 192.168.1.111.53744 > google-public-dns-a.google.com.domain: 61239+ A? h1veok3q0w.dnsleaktest.com. (44)
17:03:18.694796 IP google-public-dns-a.google.com.domain > 192.168.1.111.53744: 61239 NXDomain 0/1/0 (91)
17:03:18.835744 IP 192.168.1.111.20007 > 192.168.1.1.domain: 62226+ A? qxbot2wslb.dnsleaktest.com. (44)
17:03:18.837523 IP 192.168.1.1.domain > 192.168.1.111.20007: 62226 NXDomain 0/1/1 (102)
17:03:18.938782 IP6 fe80::6b1:67ff:fead:45c3.59626 > fe80::52ff:20ff:fe00:1f2e.domain: 51602+ A? qxbot2wslb.dnsleaktest.com. (44)
17:03:18.939927 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.59626: 51602 NXDomain 0/1/1 (102)
17:03:18.949180 IP 192.168.1.111.59985 > 192.168.1.1.domain: 47683+ A? 5p84qz0ikg.dnsleaktest.com. (44)
17:03:19.121643 IP 192.168.1.111.61343 > google-public-dns-a.google.com.domain: 49016+ A? tlvftikpv3.dnsleaktest.com. (44)
17:03:19.147283 IP 192.168.1.1.domain > 192.168.1.111.59985: 47683 NXDomain 0/1/1 (147)
17:03:19.179229 IP6 fe80::6b1:67ff:fead:45c3.61211 > fe80::52ff:20ff:fe00:1f2e.domain: 34060+ A? 5p84qz0ikg.dnsleaktest.com. (44)
17:03:19.180461 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.61211: 34060 NXDomain 0/1/1 (102)
17:03:19.265675 IP 192.168.1.100.54083 > 192.168.1.1.domain: 16425+ A? ya.ru. (23)
17:03:19.266872 IP 192.168.1.1.domain > 192.168.1.100.54083: 16425 1/0/1 A 87.250.250.242 (53)
17:03:19.318060 IP google-public-dns-a.google.com.domain > 192.168.1.111.61343: 49016 NXDomain 0/1/0 (91)
17:03:19.856733 IP 192.168.1.111.37958 > 192.168.1.1.domain: 45695+ A? etn5mw5jl6.dnsleaktest.com. (44)
17:03:20.058691 IP 192.168.1.1.domain > 192.168.1.111.37958: 45695 NXDomain 0/1/1 (147)
17:03:20.065195 IP6 fe80::6b1:67ff:fead:45c3.46355 > fe80::52ff:20ff:fe00:1f2e.domain: 45443+ A? etn5mw5jl6.dnsleaktest.com. (44)
17:03:20.066349 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.46355: 45443 NXDomain 0/1/1 (102)
17:03:20.173581 IP 192.168.1.111.7591 > 192.168.1.1.domain: 26137+ A? tegpu0gc2n.dnsleaktest.com. (44)
17:03:20.376577 IP 192.168.1.1.domain > 192.168.1.111.7591: 26137 NXDomain 0/1/1 (147)
17:03:20.381754 IP6 fe80::6b1:67ff:fead:45c3.43859 > fe80::52ff:20ff:fe00:1f2e.domain: 45919+ A? tegpu0gc2n.dnsleaktest.com. (44)
17:03:20.383074 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.43859: 45919 NXDomain 0/1/1 (102)
17:03:21.937753 IP6 fe80::6b1:67ff:fead:45c3.52530 > fe80::52ff:20ff:fe00:1f2e.domain: 57886+ A? 5pkzrjwhu7.dnsleaktest.com. (44)
17:03:21.939476 IP6 fe80::52ff:20ff:fe00:1f2e.domain > fe80::6b1:67ff:fead:45c3.52530: 57886 NXDomain 0/1/1 (102)
 

 

Edited by ankar84
Link to comment
Share on other sites

1 час назад, Вежливый Снайпер сказал:

Если отсутствие таблицы скорее всего поправимо, то что делать с остальным?

нет, отсутствие таблицы nat для ipv6 не попровимо. эта таблица существует только в более свежих версиях ядра. 

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

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

Если вы не пользуетесь серверами Google в общем списке всех DNSCrypt резолверов, то для максимальной наглядности могу порекомендовать пройти со смартфона на Андроиде расширенный тест на dnsleaktest с приземлением запросов и без него.

У меня с приземлением только выбранные мной серверы (OpenNIC и сейчас еще Quad9 тестирую), а если без приземления добавляется целая куча серверов Google из Финляндии.

Это хорошо или плохо?

Screenshot_20180916-132219_Samsung Internet.jpg

Screenshot_20180916-132138_Samsung Internet.jpg

Link to comment
Share on other sites

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

Это хорошо или плохо?

Гугла не видно, значит хорошо, если у вас в настройках DNSCrypt выбраны Яндекс и Cloudflare.

Откройте, пожалуйста, страничку 2ip.ru

У меня с приземлением вот так:

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

Screenshot_2018-09-16-17-44-15-982_com.android.chrome.thumb.png.b9c89024b4a53ce9cbf856feb7e8f4fd.png

А без приземления вот так:

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

Screenshot_2018-09-16-17-46-15-911_com.android.chrome.thumb.png.228d41d03dcdd5350ab4a415c033fffb.png

 

Edited by ankar84
Link to comment
Share on other sites

2 часа назад, ankar84 сказал:

Гугла не видно, значит хорошо, если у вас в настройках DNSCrypt выбраны Яндекс и Cloudflare. 

Откройте, пожалуйста, страничку 2ip.ru

В DNSCrypt = ['cloudflare', '....', 'adguard-dns', 'yandex'] и в текущий момент времени

Цитата

[2018-09-16 13:29:46] [NOTICE] Server with the lowest initial latency: yandex (rtt: 17ms)
[2018-09-16 14:29:50] [NOTICE] Server with the lowest initial latency: adguard-dns (rtt: 21ms)
[2018-09-16 15:29:52] [NOTICE] Server with the lowest initial latency: yandex (rtt: 18ms)

Повторюсь он в связке с dnsmasq.

Screenshot_2.jpg

Link to comment
Share on other sites

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

Повторюсь он в связке с dnsmasq.

Возможно всё блокируется именно там.

P.S. Завидую вашим пингам до серверов.

Link to comment
Share on other sites

21 час назад, ankar84 сказал:

Я настроил dnscrypt-proxy на Link-Local IPv6 адрес роутера, так как именно к нему обращались клиенты на Windows 7-10. Это работает стабильно, хотя, вероятно, и  [::1]:53 должно работать.

Буду иметь ввиду.

20 часов назад, ankar84 сказал:

Правда, исходя из того, что рекламу на том же 2ip.ru я при такой настройке все же вижу, я могу и ошибаться и скрипт "приземления" все равно нужен.

Вчера, во время переустановки Entware и сброса настроек роутера тоже так прописал. В любом случае, со скриптом спокойнее. Знаешь, что хоть ipv4 запросы будут 100% обрабатываться.

20 часов назад, r13 сказал:

нет, отсутствие таблицы nat для ipv6 не попровимо. эта таблица существует только в более свежих версиях ядра. 

Очень печальные новости.

cast @Le ecureuil

Как дальше жить? %)

Link to comment
Share on other sites

2 часа назад, Вежливый Снайпер сказал:

Как дальше жить? %)

настраивать на link-local адресе а не на loopback ;) 

Link to comment
Share on other sites

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

настраивать на link-local адресе а не на loopback ;)

После сообщений @ankar84 попробовал так сделать - плодов не принесло. Вся проблема ведь в перехватывании DNS запросов IPv6, для чего нужно более новое ядро, как Вы сами и сказали.

Или я что-то не так понимаю? У меня проводное подключение 100 Мбит/с, dnscrypt настраивал на прослушивание link-local интерфейса br0. Запросы вида "nslookup snippets.cdn.mozilla.net 2001:4860:4860::8888" успешно проходят, хотя при использовании любых IPv4 DNS домен блокируется правилами dnscrypt.

Link to comment
Share on other sites

54 минуты назад, Вежливый Снайпер сказал:

Запросы вида "nslookup snippets.cdn.mozilla.net 2001:4860:4860::8888" успешно проходят, хотя при использовании любых IPv4 DNS домен блокируется правилами dnscrypt.

Если задача это заблокировать, то можно просто блокировать все IPv6 запросы в dnscrypt-proxy

#########################
#        Filters        #
#########################

## Immediately respond to IPv6-related queries with an empty response
## This makes things faster when there is no IPv6 connectivity, but can
## also cause reliability issues with some stub resolvers.
## Do not enable if you added a validating resolver such as dnsmasq in front
## of the proxy.

block_ipv6 = true

Если задача все же пользоваться разрешением имен с помощью IPv6 DNS серверов, то еще нужно подумать.

Хотя ведь это заблокирует запросы. что пришли на DNSCrypt, а тут явно указан внешний DNS сервер. Тогда все же нужно перехватывать. Либо отключать IPv6 совсем.

Link to comment
Share on other sites

В 05.06.2018 в 19:33, ankar84 сказал:

[sources.'opennic']   url = 'http://download.dnscrypt.info/resolvers-list/v2/opennic.md'   minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3'   cache_file = 'opennic.md'   format = 'v2'   refresh_delay = 24   prefix = ''

После замены sources на opennic всё перестаёт работать.

Link to comment
Share on other sites

10 часов назад, HuduGuru сказал:

После замены sources на opennic всё перестаёт работать.

Файл opennic.md создался рядом с файлом конфига?

Если ранее работало с общим списком серверов, то там где уже расположен файл public-resolvers.md

Если просто запустить командой из скрипта /opt/etc/init.d/S09dnscrypt-proxy2 как это сделано вот тут ? Что-то типа

# dnscrypt-proxy -config /opt/etc/dnscrypt-proxy.toml

Таким образом можно отловить синтаксические ошибки файла конфигурации - в ошибке, если она есть, будет указан ее номер строки в конфиге.

Или еще вариант - можно использовать общий список public-resolvers.md, но нужные (серверы проекта OpenNIC) указать вот так:

server_names = ['doh-ibksturm', 'fvz-anyone', 'fvz-anytwo', 'ibksturm', 'opennic-ethservices', 'opennic-famicoman', 'opennic-tumabox', 'opennic-luggs', 'opennic-luggs2', 'opennic-onic', 'publicarray-au', 'publicarray-au2', 'publicarray-au-doh']

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

Link to comment
Share on other sites

В 10.08.2018 в 08:47, ankar84 сказал:

Вчера поставил Entware на свой новый роутер Keenetic Giga (KN-1010) и решил ставить dnscrypt-proxy2 по своей же инструкции. И в процессе у меня появились некоторые

В моем случае все файлы отсюда расположены вот тут /opt/etc/dnscrypt-proxy/generate-domains-blacklists/

Приветствую! 

Поставил всё как описано на свой KN-1810!

Но папки /opt/etc/dnscrypt-proxy/generate-domains-blacklists/ не создаётся и при его запуске имеем ошибку во второй строчке!ошибка.JPG

log-ов, белых и черных списков нет!!! 

поделитесь, пожалуйста,  своими файлами конфигурации dnscrypt-proxy.tomlи файлами скриптов /opt/etc/cron.weekly/generate-blacklist и  /opt/etc/ndm/netfilter.d/10-ClientDNS-Redirect.sh.  Заменю у себя, может пойдёт...

Да и совсем забыл, так , дополнить !!

У меня PPoE соединение и всё равно вылазили ДНС гугл и др. от ростелекома пока не выполнил*

interface PPPoE0 ipcp no name-servers

system configuration save

* - подсказала поддержка кинетика

Edited by vikrk
добавил сведения по PPoE
Link to comment
Share on other sites

Доброго дня, @vikrk

14 часа назад, vikrk сказал:

Но папки /opt/etc/dnscrypt-proxy/generate-domains-blacklists/ не создаётся и при его запуске имеем ошибку во второй строчке!

Все верно, данная папка не создается автоматически. Все дело в том, что у меня в конфигурации для dnscrypt-proxy используется несколько сопутствующих файла (блеклис, вайтлист, cloacking правила, форварды, скрипт генерации блеклиста) поэтому я создал отдельную папку внутри /opt/etc/ и назвал ее dnscrypt-proxy (на самом деле сейчас для краткости переделал в /opt/etc/dnscrypt/). Сделал я это и с функциональной стороны  - все файлы рядом и с эстетической - ну, не нравится мне когда куча файлов от DNSCrypt лежит в корне /op/etc/

А по умолчанию скрипт запуска в /opt/etc/init.d/ запускает демона dnscrypt-proxy с параметром

dnscrypt-proxy -config /opt/etc/dnscrypt-proxy.toml

В моем случае это нужно исправить на

dnscrypt-proxy -config /opt/etc/dnscrypt/dnscrypt-proxy.toml

Прошу обратить внимание - это нужно будет делать каждый раз при обновлении пакета dnscrypt-proxy2 если вы так же перенесете все данные в одну папку.

14 часа назад, vikrk сказал:

поделитесь, пожалуйста,  своими файлами конфигурации dnscrypt-proxy.tomlи файлами скриптов /opt/etc/cron.weekly/generate-blacklist и  /opt/etc/ndm/netfilter.d/10-ClientDNS-Redirect.sh.  Заменю у себя, может пойдёт.

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

 

14 часа назад, vikrk сказал:

У меня PPoE соединение и всё равно вылазили ДНС гугл и др. от ростелекома пока не выполнил*

Да, совершенно верно. Все эти моменты хорошо расписаны в статье Использование публичных DNS-серверов в интернет-центре

Link to comment
Share on other sites

22 минуты назад, ankar84 сказал:

скрипт запуска в /opt/etc/init.d/ запускает демона dnscrypt-proxy с параметром

А это что такое подскажите?

это про это ...

/opt/etc/init.d/S09dnscrypt-proxy2 start
Edited by vikrk
Link to comment
Share on other sites

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

А это что такое подскажите?

Это именно 

Цитата

скрипт запуска в /opt/etc/init.d/ запускает демона dnscrypt-proxy с параметром

И его нужно отредактировать, если для хранения файлов dnscrypt-proxy используется выделенная папка

vi /opt/etc/init.d/S09dnscrypt-proxy2

Вместо vi можно использовать любой установленный текстовый редактор, или вообще отредактировать из Windows в Notepad++ (рекомендую именно его) через SMB шару.

Link to comment
Share on other sites

42 минуты назад, ankar84 сказал:

из Windows в Notepad++ (рекомендую именно его)

Через него не всегда видны лишние проблемы при копировании...

Использую МС - там при вставке чего то лишнего выделяется черным на синем фоне

Link to comment
Share on other sites

21 час назад, vikrk сказал:

всё равно даёт ошибку

~ # ls -la /opt/etc/dnscrypt/
drwxr-xr-x    2 root     root          4096 Sep 27 21:59 .
drwxr-xr-x   19 root     root          4096 Sep 14 10:16 ..
-rw-r--r--    1 root     root       2138019 Sep 17 04:04 blacklist-domains.txt
-rwxrw-rw-    1 root     root           194 Sep 14 23:04 cloaking-rules.txt
-rwxrw-rw-    1 root     root         15433 Sep 16 17:56 dnscrypt-proxy.toml
-rw-r--r--    1 root     root          3758 Aug 10 21:28 domains-blacklist-all.conf
-rwxrw-rw-    1 root     root          3070 Aug 10 21:31 domains-blacklist-local-additions.txt
-rwxrw-rw-    1 root     root          5147 Aug 10 21:34 domains-blacklist.conf
-rw-r--r--    1 root     root           229 Aug 10 21:28 domains-time-restricted.txt
-rwxrw-rw-    1 root     root           381 Aug 28 23:16 domains-whitelist.txt
-rwxrw-rw-    1 root     root           165 Sep 15 11:06 forwarding-rules.txt
-rwxr-xr-x    1 root     root          5808 Aug 10 21:28 generate-domains-blacklist.py
-rw-r--r--    1 root     root          4233 Sep 27 21:59 opennic.md
-rw-r--r--    1 root     root           298 Sep 27 21:59 opennic.md.minisig
-rw-r--r--    1 root     root          1809 Sep 16 15:28 quad9-resolvers.md
-rw-r--r--    1 root     root           306 Sep 16 15:28 quad9-resolvers.md.minisig

Скрипт запуска

~ # cat /opt/etc/init.d/S09dnscrypt-proxy2
#!/bin/sh

ENABLED=yes
PROCS=dnscrypt-proxy
ARGS="-config /opt/etc/dnscrypt/dnscrypt-proxy.toml"
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

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

Конфиг

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

~ # cat /opt/etc/dnscrypt/dnscrypt-proxy.toml

##############################################
#                                            #
#        dnscrypt-proxy configuration        #
#                                            #
##############################################

## This is an example configuration file.
## You should adjust it to your needs, and save it as "dnscrypt-proxy.toml"
##
## Online documentation is available here: https://dnscrypt.info/doc


##################################
#         Global settings        #
##################################

## List of servers to use
##
## Servers from the "public-resolvers" source (see down below) can
## be viewed here: https://dnscrypt.info/public-servers
##
## If this line is commented, all registered servers matching the require_* filters
## will be used.
##
## The proxy will automatically pick the fastest, working servers from the list.
## Remove the leading # first to enable this; lines starting with # are ignored.

# server_names = ['scaleway-fr', 'google', 'yandex', 'cloudflare']

## List of local addresses and ports to listen to. Can be IPv4 and/or IPv6.
## Note: When using systemd socket activation, choose an empty set (i.e. [] ).

listen_addresses = ['192.168.1.1:53', '[fe80::52ff:20ff:fe00:1f2e%br0]:53']
#listen_addresses = ['127.0.0.1:5353']


## Maximum number of simultaneous client connections to accept

max_clients = 250

## Switch to a non-privileged system user after listening sockets have been created.
## Two processes will be running.
## The first one will keep root privileges, but is only a supervisor, that does nothing
## except create the sockets, manage the service, and restart it if it crashes.
## The second process is the service itself, and that one will always run as a different
## user.
## Note (1): this feature is currently unsupported on Windows.
## Note (2): this feature is not compatible with systemd socket activation.

user_name = 'nobody'


## Require servers (from static + remote sources) to satisfy specific properties

# Use servers reachable over IPv4
ipv4_servers = true

# Use servers reachable over IPv6 -- Do not enable if you don't have IPv6 connectivity
ipv6_servers = false

# Use servers implementing the DNSCrypt protocol
dnscrypt_servers = true

# Use servers implementing the DNS-over-HTTPS protocol
doh_servers = true

## Require servers defined by remote sources to satisfy specific properties

# Server must support DNS security extensions (DNSSEC)
require_dnssec = false

# Server must not log user queries (declarative)
require_nolog = false

# Server must not enforce its own blacklist (for parental control, ads blocking...)
require_nofilter = false


## Always use TCP to connect to upstream servers.
## This can be can be useful if you need to route everything through Tor.
## Otherwise, leave this to `false`, as it doesn't improve security
## (dnscrypt-proxy will always encrypt everything even using UDP), and can
## only increase latency.

force_tcp = false


## HTTP / SOCKS proxy
## Uncomment the following line to route all TCP connections to a local Tor node
## Tor doesn't support UDP, so set `force_tcp` to `true` as well.

# proxy = "socks5://127.0.0.1:9050"

## How long a DNS query will wait for a response, in milliseconds

timeout = 2500

## Keepalive for HTTP (HTTPS, HTTP/2) queries, in seconds

keepalive = 30


## Load-balancing strategy: 'p2' (default), 'ph', 'fastest' or 'random'

lb_strategy = 'p2'


## Log level (0-6, default: 2 - 0 is very verbose, 6 only contains fatal errors)

# log_level = 2


## log file for the application

# log_file = 'dnscrypt-proxy.log'


## Use the system logger (syslog on Unix, Event Log on Windows)

use_syslog = true


## Delay, in minutes, after which certificates are reloaded

cert_refresh_delay = 240


## DNSCrypt: Create a new, unique key for every single DNS query
## This may improve privacy but can also have a significant impact on CPU usage
## Only enable if you don't have a lot of network load

# dnscrypt_ephemeral_keys = false


## DoH: Disable TLS session tickets - increases privacy but also latency

# tls_disable_session_tickets = false


## DoH: Use a specific cipher suite instead of the server preference
## 49199 = TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
## 49195 = TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
## 52392 = TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305
## 52393 = TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305
##
## On non-Intel CPUs such as MIPS routers and ARM systems (Android, Raspberry Pi...),
## the following suite improves performance.
## This may also help on Intel CPUs running 32-bit operating systems.
##
## Keep tls_cipher_suite empty if you have issues fetching sources or
## connecting to some DoH servers. Google and Cloudflare are fine with it.

tls_cipher_suite = [52392, 49199]


## Fallback resolver
## This is a normal, non-encrypted DNS resolver, that will be only used
## for one-shot queries when retrieving the initial resolvers list, and
## only if the system DNS configuration doesn't work.
## No user application queries will ever be leaked through this resolver,
## and it will not be used after IP addresses of resolvers URLs have been found.
## It will never be used if lists have already been cached, and if stamps
## don't include host names without IP addresses.
## It will not be used if the configured system DNS works.
## A resolver supporting DNSSEC is recommended. This may become mandatory.
##
## People in China may need to use 114.114.114.114:53 here.
## Other popular options include 8.8.8.8 and 1.1.1.1.

fallback_resolver = '9.9.9.9:53'


## Never let dnscrypt-proxy try to use the system DNS settings;
## unconditionally use the fallback resolver.

ignore_system_dns = true


## Maximum time (in seconds) to wait for network connectivity before
## initializing the proxy.
## Useful if the proxy is automatically started at boot, and network
## connectivity is not guaranteed to be immediately available.
## Use 0 to disable.

netprobe_timeout = 30


## Offline mode - Do not use any remote encrypted servers.
## The proxy will remain fully functional to respond to queries that
## plugins can handle directly (forwarding, cloaking, ...)

# offline_mode = false


## Automatic log files rotation

# Maximum log files size in MB
log_files_max_size = 10

# How long to keep backup files, in days
log_files_max_age = 7

# Maximum log files backups to keep (or 0 to keep all backups)
log_files_max_backups = 1



#########################
#        Filters        #
#########################

## Immediately respond to IPv6-related queries with an empty response
## This makes things faster when there is no IPv6 connectivity, but can
## also cause reliability issues with some stub resolvers.
## Do not enable if you added a validating resolver such as dnsmasq in front
## of the proxy.

block_ipv6 = false



##################################################################################
#        Route queries for specific domains to a dedicated set of servers        #
##################################################################################

## Example map entries (one entry per line):
## example.com 9.9.9.9
## example.net 9.9.9.9,8.8.8.8,1.1.1.1

#forwarding_rules = '/opt/etc/dnscrypt/forwarding-rules.txt'


###############################
#        Cloaking rules       #
###############################

## Cloaking returns a predefined address for a specific name.
## In addition to acting as a HOSTS file, it can also return the IP address
## of a different name. It will also do CNAME flattening.
##
## Example map entries (one entry per line)
## example.com     10.1.1.1
## www.google.com  forcesafesearch.google.com

cloaking_rules = '/opt/etc/dnscrypt/cloaking-rules.txt'


###########################
#        DNS cache        #
###########################

## Enable a DNS cache to reduce latency and outgoing traffic

cache = true

## Cache size

#cache_size = 512
cache_size = 2048

## Minimum TTL for cached entries

cache_min_ttl = 600


## Maximum TTL for cached entries

cache_max_ttl = 86400


## Minimum TTL for negatively cached entries

cache_neg_min_ttl = 60


## Maximum TTL for negatively cached entries

cache_neg_max_ttl = 600


###############################
#        Query logging        #
###############################

## Log client queries to a file

[query_log]

  ## Path to the query log file (absolute, or relative to the same directory as the executable file)

  # file = 'query.log'


  ## Query log format (currently supported: tsv and ltsv)

  format = 'tsv'


  ## Do not log these query types, to reduce verbosity. Keep empty to log everything.

  # ignored_qtypes = ['DNSKEY', 'NS']



############################################
#        Suspicious queries logging        #
############################################

## Log queries for nonexistent zones
## These queries can reveal the presence of malware, broken/obsolete applications,
## and devices signaling their presence to 3rd parties.

[nx_log]

  ## Path to the query log file (absolute, or relative to the same directory as the executable file)

  # file = 'nx.log'


  ## Query log format (currently supported: tsv and ltsv)

  format = 'tsv'



######################################################
#        Pattern-based blocking (blacklists)        #
######################################################

## Blacklists are made of one pattern per line. Example of valid patterns:
##
##   example.com
##   =example.com
##   *sex*
##   ads.*
##   ads*.example.*
##   ads*.example[0-9]*.com
##
## Example blacklist files can be found at https://download.dnscrypt.info/blacklists/
## A script to build blacklists from public feeds can be found in the
## `utils/generate-domains-blacklists` directory of the dnscrypt-proxy source code.

[blacklist]

  ## Path to the file of blocking rules (absolute, or relative to the same directory as the executable file)

  # blacklist_file = 'blacklist.txt'
blacklist_file = '/opt/etc/dnscrypt/blacklist-domains.txt'

  ## Optional path to a file logging blocked queries

  # log_file = 'blocked.log'


  ## Optional log format: tsv or ltsv (default: tsv)

  # log_format = 'tsv'



###########################################################
#        Pattern-based IP blocking (IP blacklists)        #
###########################################################

## IP blacklists are made of one pattern per line. Example of valid patterns:
##
##   127.*
##   fe80:abcd:*
##   192.168.1.4

[ip_blacklist]

  ## Path to the file of blocking rules (absolute, or relative to the same directory as the executable file)

  # blacklist_file = 'ip-blacklist.txt'


  ## Optional path to a file logging blocked queries

  # log_file = 'ip-blocked.log'


  ## Optional log format: tsv or ltsv (default: tsv)

  # log_format = 'tsv'



######################################################
#   Pattern-based whitelisting (blacklists bypass)   #
######################################################

## Whitelists support the same patterns as blacklists
## If a name matches a whitelist entry, the corresponding session
## will bypass names and IP filters.
##
## Time-based rules are also supported to make some websites only accessible at specific times of the day.

[whitelist]

  ## Path to the file of whitelisting rules (absolute, or relative to the same directory as the executable file)

  # whitelist_file = 'whitelist.txt'
whitelist_file = '/opt/etc/dnscrypt/domains-whitelist.txt'

  ## Optional path to a file logging whitelisted queries

  # log_file = 'whitelisted.log'


  ## Optional log format: tsv or ltsv (default: tsv)

  # log_format = 'tsv'



##########################################
#        Time access restrictions        #
##########################################

## One or more weekly schedules can be defined here.
## Patterns in the name-based blocklist can optionally be followed with @schedule_name
## to apply the pattern 'schedule_name' only when it matches a time range of that schedule.
##
## For example, the following rule in a blacklist file:
## *.youtube.* @time-to-sleep
## would block access to YouTube only during the days, and period of the days
## define by the 'time-to-sleep' schedule.
##
## {after='21:00', before= '7:00'} matches 0:00-7:00 and 21:00-0:00
## {after= '9:00', before='18:00'} matches 9:00-18:00

[schedules]

  # [schedules.'time-to-sleep']
  # mon = [{after='21:00', before='7:00'}]
  # tue = [{after='21:00', before='7:00'}]
  # wed = [{after='21:00', before='7:00'}]
  # thu = [{after='21:00', before='7:00'}]
  # fri = [{after='23:00', before='7:00'}]
  # sat = [{after='23:00', before='7:00'}]
  # sun = [{after='21:00', before='7:00'}]

  # [schedules.'work']
  # mon = [{after='9:00', before='18:00'}]
  # tue = [{after='9:00', before='18:00'}]
  # wed = [{after='9:00', before='18:00'}]
  # thu = [{after='9:00', before='18:00'}]
  # fri = [{after='9:00', before='17:00'}]



#########################
#        Servers        #
#########################

## Remote lists of available servers
## Multiple sources can be used simultaneously, but every source
## requires a dedicated cache file.
##
## Refer to the documentation for URLs of public sources.
##
## A prefix can be prepended to server names in order to
## avoid collisions if different sources share the same for
## different servers. In that case, names listed in `server_names`
## must include the prefixes.
##
## If the `urls` property is missing, cache files and valid signatures
## must be already present; This doesn't prevent these cache files from
## expiring after `refresh_delay` hours.

[sources]

  ## An example of a remote source from https://github.com/DNSCrypt/dnscrypt-resolvers

  #[sources.'public-resolvers']
  #urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v2/public-resolvers.md', 'https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md']
  #cache_file = '/opt/etc/dnscrypt/public-resolvers.md'
  #minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3'
  #refresh_delay = 72
  #prefix = ''

  [sources.'opennic']
  urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v2/opennic.md', 'https://download.dnscrypt.info/resolvers-list/v2/opennic.md']
  minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3'
  cache_file = '/opt/etc/dnscrypt/opennic.md'
  refresh_delay = 72
  prefix = ''

  #[sources.'quad9-resolvers']
  #urls = ['https://www.quad9.net/quad9-resolvers.md']
  #minisign_key = 'RWQBphd2+f6eiAqBsvDZEBXBGHQBJfeG6G+wJPPKxCZMoEQYpmoysKUN'
  #cache_file = '/opt/etc/dnscrypt/quad9-resolvers.md'
  #refresh_delay = 72
  #prefix = ''

  ## Another example source, with resolvers censoring some websites not appropriate for children
  ## This is a subset of the `public-resolvers` list, so enabling both is useless

  #  [sources.'parental-control']
  #  urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v2/parental-control.md', 'https://download.dnscrypt.info/resolvers-list/v2/parental-control.md']
  #  cache_file = 'parental-control.md'
  #  minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3'



## Optional, local, static list of additional servers
## Mostly useful for testing your own servers.

[static]

  # [static.'google']
  # stamp = 'sdns://AgUAAAAAAAAAAAAOZG5zLmdvb2dsZS5jb20NL2V4cGVyaW1lbnRhbA'

~ #

 

Скрипт генерации блек листа в кроне

~ # cat /opt/etc/cron.daily/1-generate-blacklist
#!/opt/bin/sh
cd /opt/etc/dnscrypt/
python generate-domains-blacklist.py -i > list.txt.tmp && mv -f list.txt.tmp /opt/etc/dnscrypt/blacklist-domains.txt
/opt/etc/init.d/S09dnscrypt-proxy2 restart

Скрипт приземления клиентских запросов

~ # cat /opt/etc/ndm/netfilter.d/01-ClientDNS-Redirect.sh
#!/bin/sh
[ "$type" == "ip6tables" ] && exit 0
[ "$table" != "nat" ] && exit 0
[ -z "$(iptables-save | grep " --dport 53 -j DNAT --to-destination 192.168.1.1")" ] && iptables -t nat -I PREROUTING -p udp --dport 53 -j DNAT --to-destination 192.168.1.1:53
exit 0

Если нужны какие-то еще, пишите, дополню.

  • Thanks 1
Link to comment
Share on other sites

6to4 пока что убрал..

А вот как dnscrypt выбирает через какой сервер послать запрос - понять не могу..
В конфиге прописано 6 серверов. ВСЕГДА наименьшая задержка у cloudflare, но почему подобные запросы практически каждый раз проходят через разные резолверы?

$ dnscrypt-proxy -resolve dnscrypt.info

через раз резолвится у cloudflare (от домена не зависит)
и по логам начальная задержка у CF меньше и по пингу в консоли смотрю

# grep latency /opt/var/log/dnscrypt-proxy.log
 

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

[2018-09-28 04:06:23] [NOTICE] Server with the lowest initial latency: cloudflare (rtt: 53ms)
[2018-09-28 05:06:24] [NOTICE] Server with the lowest initial latency: cloudflare (rtt: 50ms)
[2018-09-28 06:06:26] [NOTICE] Server with the lowest initial latency: cloudflare (rtt: 50ms)
[2018-09-28 07:06:28] [NOTICE] Server with the lowest initial latency: cloudflare (rtt: 51ms)
[2018-09-28 08:06:30] [NOTICE] Server with the lowest initial latency: cloudflare (rtt: 49ms)
[2018-09-28 09:06:32] [NOTICE] Server with the lowest initial latency: cloudflare (rtt: 52ms)
[2018-09-28 10:06:34] [NOTICE] Server with the lowest initial latency: cloudflare (rtt: 51ms)
[2018-09-28 11:06:36] [NOTICE] Server with the lowest initial latency: cloudflare (rtt: 50ms)
[2018-09-28 12:06:38] [NOTICE] Server with the lowest initial latency: cloudflare (rtt: 54ms)

периодически возникает у CF ошибка

Цитата

[INFO] Server [cloudflare] returned temporary error code [2] -- Upstream server may be experiencing connectivity issues

но не так уж и часто. да и когда ее нет, запросы так же через раз идут к CF

во время написания поста решил на место CF прописать второй самый быстрый для меня сервис "cs-fi", запросы так и продолжают гулять через разные "Resolver IP", которые принадлежат разным серисам:

Resolver IP:    89.233.43.71 (unicast.censurfridns.dk.)
Resolver IP:    209.250.235.170 (209.250.235.170.vultr.com.)
Resolver IP:    185.117.118.20 (stadi.deepdns.cryptostorm.net.)

это нормальное поведение для dnscrypt-proxy? только сильно нуба не пинайте, может быть чего не понимаю )

___

Чтобы не плодить лишних сообщений, отвечу тут:

@ankar84

О как все просто оказалось. Большое спасибо очередной раз за помощь )

Edited by Вежливый Снайпер
Link to comment
Share on other sites

@Вежливый Снайпер, все ответы даны вот тут Load-Balancing-Options

Цитата

The 4 possible values of the lb_strategyparameter are:

  • fastest (always pick the fastest server in the list)
  • p2 (randomly choose between the top 2 fastest servers)
  • ph (randomly choose between the top fastest half of all servers)
  • random (just pick any random server from the list)

This setting is a string, so you use lb_strategy = 'p2' in the configuration file.

The default strategy is p2 so dnscrypt-proxy will pick one of the two fastest servers. It will compare how fast that server was with a randomly choosen server and if that random server is faster, the random server will move up. The same is true for all strategies - random servers will move up in the list when they are faster than the server that was just queried.

 

Edited by ankar84
  • Thanks 1
Link to comment
Share on other sites

  • 2 weeks later...
В 16.09.2018 в 11:57, ankar84 сказал:

Я настроил dnscrypt-proxy на Link-Local IPv6 адрес роутера, так как именно к нему обращались клиенты на Windows 7-10. Это работает стабильно, хотя, вероятно, и  [::1]:53 должно работать.

Настроил как Вы показали, но лог показывает вот такое:

Цитата

[FATAL] listen udp [fe80::c0a8:101%br0]:53: bind: cannot assign requested address

не подскажете, почему?

Link to comment
Share on other sites

14 часа назад, rotor сказал:

fe80::c0a8:101

Подскажите, вот это выше ваш действительный Link-Local IPv6 адрес роутера?

Могу ошибаться, но может быть имя интерфейса у вас не br0.

Получается ли работать с IPv6, если указать сервер как было по-умолчанию в файле конфигурации  [::1]:53?

Link to comment
Share on other sites

В 15.10.2018 в 12:14, ankar84 сказал:

Подскажите, вот это выше ваш действительный Link-Local IPv6 адрес роутера?

Назначил сам в соответствии с адресом в локальной сети 192.168.1.1 генератором адресов IPV6. Назначил согласно теме "IPv6 DNS сервер".

вот при такой настройке listen_addresses = ['192.168.1.1:53','[::1]:53'] - стартует. Как я понимаю, [::1] адрес соответствует 127.0.0.1.

В 15.10.2018 в 12:14, ankar84 сказал:

Могу ошибаться, но может быть имя интерфейса у вас не br0. 

Вроде так же - br0. Согласно конфигурации он соответствует локальной сети "Home network (Wired and wireless hosts)"

Edited by rotor
Link to comment
Share on other sites

Подскажите пожалуйста, что за странный трафик в логе:

[2018-10-16 23:53:20] 191.96.249.112 aids.gov ANY FORWARD

Домены каждый раз разные, IP один. Его внесение в ip-blacklist ничего не дает. Подозреваю, что это какой-то служебный трафик, но хотелось бы знать наверняка.

Заранее благодарствую.

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