Jump to content

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


Recommended Posts

В 19.04.2019 в 15:51, Михаил Лукьянов сказал:

В качестве альтернативы/дополнения предлагаю использовать блоклист на базе  RuAdList + EasyList (я так понимаю делает один из членов их команды) http://cdn.raletag.gq/rueasyhosts.txt

Я в изначальном файле domains-blacklist.conf из шапки раскомментировал RU AdList и добавил ещё один источник:

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

# RU AdList
https://easylist-downloads.adblockplus.org/advblock.txt

# Adblock
# Adblock EasyList Lite
https://cdn.adblockcdn.com/filters/easylist_lite.txt

 

Блокирует неплохо, но частенько пропускает огромный верхний баннер на lenta.ru (использую его как один из проверочных для блокировщиков рекламы) и ещё несколько внутри страницы.

Надо будет попробовать добавить ваш источник, спасибо.

  • Thanks 1
Link to comment
Share on other sites

В 19.04.2019 в 18:51, Михаил Лукьянов сказал:

Блокировка рекламы в шапке ориентирована на англоязычную аудиторию, русскоязычная реклама просачивается - например мой любимый adblockotsosal.ru :). В качестве альтернативы/дополнения предлагаю использовать блоклист на базе  RuAdList + EasyList (я так понимаю делает один из членов их команды)

Вообще, как и @Albram я разблокировал RuAdList + EasyList сразу и добавил просто множество еще разных списков доменов с рекламой. И её в моем домашнем окружении практически нет. За исключением видео рекламы на YouTube. Если у кого-то есть способы полностью от нее избавится, прошу ими поделиться.

В 19.04.2019 в 18:51, Михаил Лукьянов сказал:

Хотел на форуме спросить почему так, но меня так и не пустили туда :) пришлось подделывать юзерагента:

Так как (я написал выше) я добавил множество дополнительных списков, я тоже столкнулся с проблемой загрузки некоторых из них. На проблемных списках стояли ограничения по юзер агенту. И даже у автора dnscrypt-proxy2 есть issue (и даже два), где его просят добавить возможность указания юзер агента в его скрипт на python. На этот запрос он отвечает, что если владельцы списка решили не давать его различным средствам автоматизации (скриптам на python как пример), то это их право и он не хочет его нарушать.

Но для себя в борьбе с рекламой на YouTube я решил прикинуться Хромом на Windows 10

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

def load_from_url(url):
    sys.stderr.write("Loading data from [{}]\n".format(url))
    #req = urllib2.Request(url)
    headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36'}
    req = urllib2.Request(url, None, headers)
    trusted = False    
    if req.get_type() == "file":
        trusted = True
    response = None
    try:
        response = urllib2.urlopen(req, timeout=int(args.timeout))
    except urllib2.URLError as err:
        raise Exception("[{}] could not be loaded: {}\n".format(url, err))
    if trusted is False and response.getcode() != 200:
        raise Exception("[{}] returned HTTP code {}\n".format(url, response.getcode()))
    content = response.read()

    return (content, trusted) 

А вот мой текущий список всех листов блокировки ( @Михаил Лукьянов спасибо за #raletag list )

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


##################################################################################
#                                                                                #
#   Generate a black list of domains using public data sources, and the local    #
#   domains-blacklist-local-additions.txt file.                                  #
#                                                                                #
#   The default configuration is just indicative, and corresponds to the one     #
#   used to produce the public "mybase" set.                                     #
#                                                                                #
#   Comment out the URLs of the sources you wish to disable, leave the ones      #
#   you would like enabled uncommented.  Then run the script to build the        #
#   dnscrypt-blacklist-domains.txt file:                                         #
#                                                                                #
#   $  generate-domains-blacklist.py > dnscrypt-blacklist-domains.txt            #
#                                                                                #
#   Domains that should never be blocked can be put into a file named            #
#   domains-whitelist.txt.                                                       #
#                                                                                #
#   That blacklist file can then be used in the dnscrypt-proxy.toml file:        #
#                                                                                #
#   [blacklist]                                                                  #
#                                                                                #
#   blacklist_file = 'dnscrypt-blacklist-domains.txt'                            #
#                                                                                #
##################################################################################

# Local additions
file:domains-blacklist-local-additions.txt
#file:hosts.alive.txt

#raletag list
http://cdn.raletag.gq/rueasyhosts.txt

#From uBlock
#https://tgc.cloud/downloads/hosts.txt
https://tgc.cloud/downloads/hosts.alive.txt

#YouTube Video Ads Blocklist Hosts
https://raw.githubusercontent.com/anudeepND/youtubeadsblacklist/master/hosts.txt

#Anudeep Youtube (Domains)
https://raw.githubusercontent.com/deathbybandaid/piholeparser/master/Subscribable-Lists/ParsedBlacklists/Anudeep-Youtube.txt
https://raw.githubusercontent.com/deathbybandaid/piholeparser/master/Subscribable-Lists/ParsedBlacklists/Henning-VanRaumle-Youtube.txt

#YouTube Video Ads Blocklist Domains
https://raw.githubusercontent.com/anudeepND/youtubeadsblacklist/master/domainlist.txt

#YouTube Video Ads Blocklist Hosts
https://raw.githubusercontent.com/anudeepND/youtubeadsblacklist/master/hosts.txt

#StevenBlack
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts

# Bambenek malware C2s
https://osint.bambenekconsulting.com/feeds/c2-dommasterlist.txt

# hpHosts’ Ad and tracking servers
https://hosts-file.net/.\ad_servers.txt

# Malware domains
https://mirror1.malwaredomains.com/files/justdomains

# Abuse.ch Ransomware Tracker
https://ransomwaretracker.abuse.ch/downloads/RW_DOMBL.txt

# Malware Domain List
http://www.malwaredomainlist.com/mdlcsv.php?inactive=off

# Adblock Warning Removal List
https://easylist-downloads.adblockplus.org/antiadblockfilters.txt

# EasyList
https://easylist-downloads.adblockplus.org/easylist_noelemhide.txt

# EasyList China
#https://easylist-downloads.adblockplus.org/easylistchina.txt

# RU AdList
https://easylist-downloads.adblockplus.org/advblock.txt

# Fanboy’s Social Blocking List
https://easylist-downloads.adblockplus.org/fanboy-social.txt

# Peter Lowe’s Ad and tracking server list
https://pgl.yoyo.org/adservers/serverlist.php

# Spam404
https://raw.githubusercontent.com/Dawsey21/Lists/master/adblock-list.txt

# CJX Annoyance List
https://raw.githubusercontent.com/cjx82630/cjxlist/master/cjxlist.txt

# EU: Prebake - Filter Obtrusive Cookie Notices
https://raw.githubusercontent.com/liamja/Prebake/master/obtrusive.txt

# Malvertising filter list by Disconnect
https://s3.amazonaws.com/lists.disconnect.me/simple_malvertising.txt

# Malware filter list by Disconnect
https://s3.amazonaws.com/lists.disconnect.me/simple_malware.txt

# Basic tracking list by Disconnect
https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt

# Sysctl list (ads)
http://sysctl.org/cameleon/hosts

# KAD host file (fraud/adware) - https://github.com/azet12/KADhosts
https://raw.githubusercontent.com/azet12/KADhosts/master/KADhosts.txt

# BarbBlock list (spurious and invalid DMCA takedowns)
https://ssl.bblck.me/blacklists/domain-list.txt

# Dan Pollock's hosts list
http://someonewhocares.org/hosts/hosts

# NoTracking's list - blocking ads, trackers and other online garbage
https://raw.githubusercontent.com/notracking/hosts-blocklists/master/domains.txt

# CoinBlockerLists: blocks websites serving cryptocurrency miners - https://zerodot1.github.io/CoinBlockerLists/ - Contains false positives
# https://raw.githubusercontent.com/ZeroDot1/CoinBlockerLists/master/list_browser.txt

# Websites potentially publishing fake news
# https://raw.githubusercontent.com/marktron/fakenews/master/fakenews

# Quidsup NoTrack - Contains too many false positives to be enabled by default
# https://raw.githubusercontent.com/quidsup/notrack/master/trackers.txt

# Dynamic DNS services, sadly often used by malware
# https://mirror1.malwaredomains.com/files/dynamic_dns.txt

# Block pornography
# https://raw.githubusercontent.com/Clefspeare13/pornhosts/master/0.0.0.0/hosts
# https://raw.githubusercontent.com/Sinfonietta/hostfiles/master/pornography-hosts
# http://securemecca.com/Downloads/hosts.txt

# Block gambling sites
# https://raw.githubusercontent.com/Sinfonietta/hostfiles/master/gambling-hosts

# Block social media sites
# https://raw.githubusercontent.com/Sinfonietta/hostfiles/master/social-hosts

#10ZiN Host Database (Full)
#https://tgc.cloud/downloads/hosts.txt

#AdAway
#https://adaway.org/hosts.txt

#1Hosts
#https://1hos.cf/

#Adguard DNS (hosts)
https://raw.githubusercontent.com/r-a-y/mobile-hosts/master/AdguardDNS.txt

#Adguard Mobile Ads (hosts)
https://raw.githubusercontent.com/r-a-y/mobile-hosts/master/AdguardMobileAds.txt

#Adguard Specific Apps (hosts)
https://raw.githubusercontent.com/r-a-y/mobile-hosts/master/AdguardApps.txt

#Energized Blu Go Protection
#https://raw.githubusercontent.com/EnergizedProtection/block/master/bluGo/formats/hosts

#Energized Spark Protection
#https://raw.githubusercontent.com/EnergizedProtection/block/master/spark/formats/hosts

#Energized Ultimate Protection
#https://raw.githubusercontent.com/EnergizedProtection/block/master/ultimate/formats/hosts

#Energized Blu Protection
#https://raw.githubusercontent.com/EnergizedProtection/block/master/blu/formats/hosts

#MoaAB: Mother of All AD-BLOCKING
#https://adblock.mahakala.is/

#The Hosts File Project Hosts
#https://hostsfile.mine.nu/hosts0.txt

#CHEF-KOCH's uMatrix Filter List
#https://raw.githubusercontent.com/CHEF-KOCH/CKs-FilterList/master/uMatrix/CK's-uMatrix-FilterList.txt

Большинство списков взято с ресурса https://filterlists.com/ который я уже рекомендовал в этой теме.

  • Thanks 3
Link to comment
Share on other sites

  • 4 weeks later...

На днях случайно заметил на роутере коннекты извне (в основном из Китая) на 53 порт. IP у меня внешний, потому решил проверить, и действительно 53 порт оказался открыт всем желающим. Создал в Web-интерфейсе (версия 2.15.C.3.0-2) правило на PPPoE интерфейсе "запретить UDP с любого IP и порта на "мой IP" порт 53" и поместил его в начало цепочки. Правило создалось в таблице filter в цепочке @PPPoE0. Но оно не работает. Т.е. и с этим правилом коннекты на 53-ий порт извне проходят. Видимо срабатывает какое-то правило раньше этого.

Выглядит это так:

на компе, подключенном через другого провайдера, делаю nslookup ya.ru <мой IP> и на роутере в разделе Диагностика появляется коннект:

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

Источник		Адрес назначения				Служба
83.xxx.xxx.xxx
:46168	Keenetic_Ultra (Broadband connection (PPPoE))	xxx.xxx.xxx.xxx	UDP/53
:24072	Keenetic_Ultra (Broadband connection (PPPoE))	xxx.xxx.xxx.xxx	UDP/53
:58071	Keenetic_Ultra (Broadband connection (PPPoE))	xxx.xxx.xxx.xxx	UDP/53

 

В Entware во время коннекта:

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

~ # netstat -unp
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
udp        0      0 127.0.0.1:57982         127.0.0.1:54321         ESTABLISHED 161/ndm

~ # netstat -ulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
udp        0      0 127.0.0.1:1026          0.0.0.0:*                           447/nqnd
udp        0      0 127.0.0.1:1027          0.0.0.0:*                           447/nqnd
udp        0      0 127.0.0.1:41231         0.0.0.0:*                           161/ndm
udp        0      0 127.0.0.1:41232         0.0.0.0:*                           161/ndm
udp        0      0 127.0.0.1:41234         0.0.0.0:*                           161/ndm
udp        0      0 0.0.0.0:54321           0.0.0.0:*                           524/ndnproxy
....

 

В конфигурации отключено использование dns и dns6 серверов провайдера на всех публичных интерфейсах (PPPoE, IPoE) и прошивочный dns сервер переведен в режим opkg dns-override, но, судя по выводу из Entware, срабатывает именно он. DNS-crypt настраивался по методике из этой темы.

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

 

 

Link to comment
Share on other sites

9 часов назад, Albram сказал:

судя по выводу из Entware, срабатывает именно он

Вывод не информативен, нужно посмотреть так:

netstat -apn | grep ":53 "

Стоковый DNS сервер никогда наружу не смотрит, поэтому 99% вероятности что это неправильно настроен dnscrypt-proxy. Покажите

grep listen_address /opt/etc/dnscrypt-proxy.toml

Как должно быть (пример):

listen_addresses = ['127.0.0.1:53','192.168.1.1:53','[fe80::127b:efff:fe5d:ffcc%br0]:53']

Как не должно быть:

listen_addresses = ['0.0.0.0:53']

 

Link to comment
Share on other sites

52 минуты назад, Михаил Лукьянов сказал:

Вывод не информативен, нужно посмотреть так:


netstat -apn | grep ":53 "

Стоковый DNS сервер никогда наружу не смотрит, поэтому 99% вероятности что это неправильно настроен dnscrypt-proxy.

 

Dnscrypt слушает на двух локальных адресах:

~ # grep listen_address /opt/etc/dnscrypt/dnscrypt-proxy.toml
listen_addresses = ['192.168.1.1:53', '[fe80::xxxx:xxxx:xxxx:49d8%br0]:53']
~ #

Вывод netstat -apn | grep “:53” во время коннекта позже пришлю, сейчас нет возможности.

Link to comment
Share on other sites

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

listen_addresses = ['192.168.1.1:53', '[fe80::xxxx:xxxx:xxxx:49d8%br0]:53']

Насколько я помню ndm в качестве ресолвера использует lo интерфейс независимо от того что указано в веб интерфейсе. Не получив ответа с 127.0.0.1:53 система аварийно запускает родной DNS сервер причем без текущего конфига с прослушиванием по всем интерфейсам. О - отказоустойчивость🙂

Нужно вернуть '127.0.0.1:53' в /opt/etc/dnscrypt-proxy.toml где росло. Какой смысл его было убирать?

Link to comment
Share on other sites

ndm в качестве резолвера продолжает использовать собственную службу ndnproxy дальше, общаясь с ней по RPC.

При `opkg dns-override` встроенная служба ndnproxy лишь перестаёт слушать порты TCP53/UDP53.

ЕМНИП.

Link to comment
Share on other sites

1 час назад, Михаил Лукьянов сказал:

Насколько я помню ndm в качестве ресолвера использует lo интерфейс независимо от того что указано в веб интерфейсе. Не получив ответа с 127.0.0.1:53 система аварийно запускает родной DNS сервер причем без текущего конфига с прослушиванием по всем интерфейсам. О - отказоустойчивость🙂

Нужно вернуть '127.0.0.1:53' в /opt/etc/dnscrypt-proxy.toml где росло. Какой смысл его было убирать?

Вернул, не помогло.

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

~ # grep listen_address /opt/etc/dnscrypt/dnscrypt-proxy.toml
listen_addresses = ['127.0.0.1:53', '192.168.1.1:53', '[fe80::xxxx:xxxx:xxxx:49d8%br0]:53']
~ #

~ # netstat -apn | grep ':53 '
tcp        0      0 192.168.1.1:53          0.0.0.0:*               LISTEN      24486/dnscrypt-prox
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      24486/dnscrypt-prox
tcp        0      0 fe80::xxxx:xxxx:xxxx:49d8:53 :::*                    LISTEN      24486/dnscrypt-prox
udp        0      0 192.168.1.1:53          0.0.0.0:*                           24486/dnscrypt-prox
udp        0      0 127.0.0.1:53            0.0.0.0:*                           24486/dnscrypt-prox
udp        0      0 fe80::xxxx:xxxx:xxxx:49d8:53 :::*                                24486/dnscrypt-prox

 

Убрал этот адрес ещё в самом начале настроек, что-то было связано с тем, что когда он был в конфиге один, не резолвились хосты с роутера, потом добавил к нему 192.168..... всё стало нормально, попробовал его убрал, ничего не изменилось, так и оставил из-за тяги к минимализму)

 

1 час назад, Александр Рыжов сказал:

ndm в качестве резолвера продолжает использовать собственную службу ndnproxy дальше, общаясь с ней по RPC.

При `opkg dns-override` встроенная служба ndnproxy лишь перестаёт слушать порты TCP53/UDP53. 

Т.е. чтобы запретить ndnproxy слушать на внешнем интерфейсе нужно изменить здесь?

udp        0      0 0.0.0.0:54321           0.0.0.0:*                           524/ndnproxy
udp        0      0 :::50272                :::*                                524/ndnproxy

 

Edited by Albram
Link to comment
Share on other sites

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

Это нечто другое. У вас файервол отключен? Если нет, то по поводу того, что службы слушают 0.0.0.0 я бы не переживал.

Файерволл включен и на ipv4 и на ipv6.

Edited by Albram
Link to comment
Share on other sites

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

Это нечто другое. У вас файервол отключен? Если нет, то по поводу того, что службы слушают 0.0.0.0 я бы не переживал.

Так там снаружи можно к DNS подключиться. С включенным фаерволом.

Link to comment
Share on other sites

Вероятно, @Albram что-то навертел самостоятельно. Здоровый кинетик с своему DNS-проксику доступа при включенном файерволе не предоставит.

Проверил на PPPoE и без и с опцией `opkg dns-override`.

 

@Михаил Лукьянов, актуальная инструкция в первом посте?

Link to comment
Share on other sites

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

актуальная инструкция в первом посте?

Да. У меня так настроено. Наружу ничего не светит. nmapом на всякий случай проверил - всё чисто.

Link to comment
Share on other sites

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

Вероятно, @Albram что-то навертел самостоятельно. Здоровый кинетик с своему DNS-проксику доступа при включенном файерволе не предоставит.

Проверил на PPPoE и без и с опцией `opkg dns-override`.

Видимо да. Сейчас остановил dnscrypt-proxy и отключил opkg dns-override, Доступ извне к DNS серверу пропал.

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

~ # netstat -apn | grep ':53 '
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      7027/ndnproxy
tcp        0      0 :::53                   :::*                    LISTEN      7027/ndnproxy
udp        0      0 0.0.0.0:53              0.0.0.0:*                           7027/ndnproxy
udp        0      0 :::53                   :::*                                7027/ndnproxy

 

 

Link to comment
Share on other sites

Настроил dnscrypt-proxy2 по инструкции, все работает все прекрасно, вот только клиенты по Ipsec туннелю не могут резолвить днс адреса.

При этом в настройках туннеля на кинетике указан адрес 192.168.10.1 (адрес кинетика в локальной сети)

Пробовал в настройках клиента тот же адрес указать - не помогло.

При этом у клиентов нат есть, они могут пинговать тот же 8.8.8.8, а вот получить адрес google.com - нет. Так же могу зайти на вэб морду роутера по адресу 192.168.10.1, да и вообще по адреса в локальной сети хожу нормально.

UPDATE:

Потестировал еще разные варианты. Суть в том, что просто VPN-сервер IPsec не может резолвить имена. А уже VPN-сервер L2TP/IPsec может. Собственно свою проблему решил переходом на Л2ТП

Edited by Dennon
Link to comment
Share on other sites

  • 2 weeks later...

Вчера столкнулся с неочевидной проблемой, предостерегаю всех. Если у вас сделан полный dns-override, в котором выключенный dnsmasq отключает весь dns в роутере в принципе, то апдейт+апгрейд opkg может сделать харакири сам себе.

В моём случае opkg остался в совершенно нерабочем состоянии и я никак не смог восстановить его, пришлось полностью переустанавливать.

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

В 03.06.2019 в 08:43, dippnsk сказал:

Вчера столкнулся с неочевидной проблемой, предостерегаю всех. Если у вас сделан полный dns-override, в котором выключенный dnsmasq отключает весь dns в роутере в принципе, то апдейт+апгрейд opkg может сделать харакири сам себе.

В моём случае opkg остался в совершенно нерабочем состоянии и я никак не смог восстановить его, пришлось полностью переустанавливать.

Не ошибкой wget закончилось?

Вот здесь есть предостережение: https://forum.keenetic.net/topic/5639-wget-gnu-wget-downloading-files-on-the-protocols-http-https-ftp-and-ftps/?do=findComment&comment=64939

  • Upvote 1
Link to comment
Share on other sites

Сложно сказать, возможно и wget развалился, т.к. действительно ставил его отдельно для работы с https. Откатил назад, теперь буду в курсе этого нюанса. Спасибо за инфу!

Link to comment
Share on other sites

В 03.06.2019 в 07:43, dippnsk сказал:

Вчера столкнулся с неочевидной проблемой, предостерегаю всех. Если у вас сделан полный dns-override, в котором выключенный dnsmasq отключает весь dns в роутере в принципе, то апдейт+апгрейд opkg может сделать харакири сам себе.

В моём случае opkg остался в совершенно нерабочем состоянии и я никак не смог восстановить его, пришлось полностью переустанавливать. 

Обновление на релизе 300B1

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

BusyBox v1.30.1 () built-in shell (ash)

/ # opkg update
Downloading http://bin.entware.net/mipselsf-k3.4/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/entware
Downloading http://bin.entware.net/mipselsf-k3.4/keenetic/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/keendev
/ # opkg upgrade
Upgrading terminfo on root from 6.1-3 to 6.1-4...
Downloading http://bin.entware.net/mipselsf-k3.4/terminfo_6.1-4_mipsel-3.4.ipk
Upgrading openssh-sftp-server on root from 7.9p1-4 to 8.0p1-1...
Downloading http://bin.entware.net/mipselsf-k3.4/openssh-sftp-server_8.0p1-1_mipsel-3.4.ipk
Upgrading php7-mod-curl on root from 7.2.15-1 to 7.2.17-2...
Downloading http://bin.entware.net/mipselsf-k3.4/php7-mod-curl_7.2.17-2_mipsel-3.4.ipk
Upgrading sysstat on root from 12.0.2-1 to 12.0.2-2...
Downloading http://bin.entware.net/mipselsf-k3.4/sysstat_12.0.2-2_mipsel-3.4.ipk
....
Downloading http://bin.entware.net/mipselsf-k3.4/busybox_1.30.1-2_mipsel-3.4.ipk
Upgrading lighttpd-mod-cgi on root from 1.4.49-5 to 1.4.53-2...
....
Downloading http://bin.entware.net/mipselsf-k3.4/php7-mod-gd_7.2.17-2_mipsel-3.4.ipk
Upgrading libndm on root from 1.1.9-1 to 1.1.10-1...
Downloading http://bin.entware.net/mipselsf-k3.4/keenetic/libndm_1.1.10-1_mipsel-3.4_kn.ipk
Configuring terminfo.
Bad interpreter "/opt/bin/sh"
Configuring openssh-sftp-server.
Configuring php7-mod-curl.
Configuring sysstat.
Configuring php7-mod-openssl.
Configuring netdata.
Configuring libjpeg.
Configuring python-codecs.
Configuring zoneinfo-europe.
Configuring busybox.
Warning: '/opt/bin/grep' is already exists, skipping.
Warning: '/opt/bin/iostat' is already exists, skipping.
Warning: '/opt/bin/gunzip' is already exists, skipping.
Warning: '/opt/bin/dmesg' is already exists, skipping.
Warning: '/opt/bin/find' is already exists, skipping.
Warning: '/opt/bin/id' is already exists, skipping.
Warning: '/opt/bin/crontab' is already exists, skipping.
Warning: '/opt/bin/stat' is already exists, skipping.
Warning: '/opt/bin/gzip' is already exists, skipping.
Warning: '/opt/bin/run-parts' is already exists, skipping.
Warning: '/opt/bin/unzip' is already exists, skipping.
Warning: '/opt/bin/lsusb' is already exists, skipping.
Warning: '/opt/bin/xargs' is already exists, skipping.
Warning: '/opt/bin/zcat' is already exists, skipping.
Warning: '/opt/sbin/ip' is already exists, skipping.
Warning: '/opt/sbin/rmmod' is already exists, skipping.
Warning: '/opt/sbin/lsmod' is already exists, skipping.
Warning: '/opt/sbin/insmod' is already exists, skipping.
Collected errors:
 * resolve_conffiles: Existing conffile /opt/etc/netdata/netdata.conf is different from the conffile in the new package. The new conffile will be placed at /opt/etc/netdata/netdata.conf-opkg.
 * opkg_download: Failed to download http://bin.entware.net/mipselsf-k3.4/lighttpd-mod-cgi_1.4.53-2_mipsel-3.4.ipk, wget returned 255.
 * opkg_install_pkg: Failed to download lighttpd-mod-cgi. Perhaps you need to run 'opkg update'?
 * opkg_download: Failed to download http://bin.entware.net/mipselsf-k3.4/php7-mod-xmlreader_7.2.17-2_mipsel-3.4.ipk, wget returned 255.
 * opkg_install_pkg: Failed to download php7-mod-xmlreader. Perhaps you need to run 'opkg update'?
....
* opkg_install_pkg: Failed to download php7-mod-gd. Perhaps you need to run 'opkg update'?
 * opkg_download: Failed to download http://bin.entware.net/mipselsf-k3.4/keenetic/libndm_1.1.10-1_mipsel-3.4_kn.ipk, wget returned 255.
 * opkg_install_pkg: Failed to download libndm. Perhaps you need to run 'opkg update'?

/ # opkg update
Downloading http://bin.entware.net/mipselsf-k3.4/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/entware
Downloading http://bin.entware.net/mipselsf-k3.4/keenetic/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/keendev
/ # opkg upgrade
Upgrading lighttpd-mod-cgi on root from 1.4.49-5 to 1.4.53-2...
Downloading http://bin.entware.net/mipselsf-k3.4/lighttpd-mod-cgi_1.4.53-2_mipsel-3.4.ipk
Upgrading php7-mod-xmlreader on root from 7.2.15-1 to 7.2.17-2...
Downloading http://bin.entware.net/mipselsf-k3.4/php7-mod-xmlreader_7.2.17-2_mipsel-3.4.ipk
Upgrading nano on root from 3.2-1 to 4.2-1...
Downloading http://bin.entware.net/mipselsf-k3.4/nano_4.2-1_mipsel-3.4.ipk
Upgrading libcurl on root from 7.64.0-1 to 7.64.1-1...
Downloading http://bin.entware.net/mipselsf-k3.4/libcurl_7.64.1-1_mipsel-3.4.ipk
....
Downloading http://bin.entware.net/mipselsf-k3.4/php7-mod-simplexml_7.2.17-2_mipsel-3.4.ipk
Upgrading dnscrypt-proxy2 on root from 2.0.21-1 to 2.0.23-1...
Downloading http://bin.entware.net/mipselsf-k3.4/dnscrypt-proxy2_2.0.23-1_mipsel-3.4.ipk
Upgrading python-compiler on root from 2.7.15-5 to 2.7.16-4...
....
Upgrading icu on root from 63.1-1 to 64.2-2...
Downloading http://bin.entware.net/mipselsf-k3.4/icu_64.2-2_mipsel-3.4.ipk
Removing obsolete file /opt/lib/libicui18n.so.63.
Removing obsolete file /opt/lib/libicutu.so.63.1.
Removing obsolete file /opt/lib/libicuuc.so.63.
Removing obsolete file /opt/lib/libicudata.so.63.1.
Removing obsolete file /opt/lib/libicui18n.so.63.1.
Removing obsolete file /opt/lib/libicutest.so.63.
Removing obsolete file /opt/lib/libicutu.so.63.
Removing obsolete file /opt/lib/libicudata.so.63.
Removing obsolete file /opt/lib/libicutest.so.63.1.
Removing obsolete file /opt/lib/libicuio.so.63.1.
Removing obsolete file /opt/lib/libicuio.so.63.
Removing obsolete file /opt/lib/libicuuc.so.63.1.
...
Downloading http://bin.entware.net/mipselsf-k3.4/php7-mod-gd_7.2.17-2_mipsel-3.4.ipk
Upgrading libndm on root from 1.1.9-1 to 1.1.10-1...
Downloading http://bin.entware.net/mipselsf-k3.4/keenetic/libndm_1.1.10-1_mipsel-3.4_kn.ipk
Configuring zlib.
Configuring libopenssl.
Configuring libpcre.
Configuring php7.
Configuring ca-bundle.
....
Configuring ipset.
Configuring lighttpd-mod-access.
Configuring bind-libs.
Configuring php7-mod-simplexml.
Configuring dnscrypt-proxy2.
Configuring php7-mod-iconv.
Configuring php7-mod-pdo.
Configuring php7-mod-pdo-sqlite.
Configuring php7-mod-xml.
Configuring php7-mod-zip.
Configuring lighttpd-mod-accesslog.
Configuring bind-dig.
Configuring php7-mod-sqlite3.
Configuring libfreetype.
Configuring php7-mod-gd.
Collected errors:
 * resolve_conffiles: Existing conffile /opt/etc/lighttpd/lighttpd.conf is different from the conffile in the new package. The new conffile will be placed at /opt/etc/lighttpd/lighttpd.conf-opkg.
 * resolve_conffiles: Existing conffile /opt/etc/dropbear/dropbear_ecdsa_host_key is different from the conffile in the new package. The new conffile will be placed at /opt/etc/dropbear/dropbear_ecdsa_host_key-opkg.
 * resolve_conffiles: Existing conffile /opt/etc/dropbear/dropbear_rsa_host_key is different from the conffile in the new package. The new conffile will be placed at /opt/etc/dropbear/dropbear_rsa_host_key-opkg.
 * resolve_conffiles: Existing conffile /opt/etc/dnscrypt-proxy.toml is different from the conffile in the new package. The new conffile will be placed at /opt/etc/dnscrypt-proxy.toml-opkg.
 * resolve_conffiles: Existing conffile /opt/etc/php.ini is different from the conffile in the new package. The new conffile will be placed at /opt/etc/php.ini-opkg.

 

DNSMasq так же установлен как и DNSCrypt-proxy и оба работают при " dns-override"

  • Thanks 1
Link to comment
Share on other sites

 

В 16.05.2019 в 01:25, Михаил Лукьянов сказал:

Стоковый DNS сервер никогда наружу не смотрит, поэтому 99% вероятности что это неправильно настроен dnscrypt-proxy. Покажите


grep listen_address /opt/etc/dnscrypt-proxy.toml

Как должно быть (пример):


listen_addresses = ['127.0.0.1:53','192.168.1.1:53','[fe80::127b:efff:fe5d:ffcc%br0]:53']

Как не должно быть:


listen_addresses = ['0.0.0.0:53']

 

В моем случае всё с точностью до наоборот. При listen_address = ['0.0.0.0:53'] и попытке nslookup <host> <IP_keenetik> извне получаем таймаут ответов dns сервера кинетика. Такое же наблюдается и при указании в качестве слушающего ipv6 адреса кинетика. В остальных других любых комбинациях listen_address получаем ответ dns сервера на внешний адрес кинетика.
 

В 16.05.2019 в 16:17, Александр Рыжов сказал:

Вероятно, @Albram что-то навертел самостоятельно. Здоровый кинетик с своему DNS-проксику доступа при включенном файерволе не предоставит.

Проверил на PPPoE и без и с опцией `opkg dns-override`.

Настроено у меня по инструкции из первого поста этой темы с единственным отличием в том, что использую ещё и ipv6. До этого писал, что остановил dnscrypt-proxy и отключил opkg dns-override и доступ извне к DNS серверу пропал, но оказалось что при этом перестает работать резолв и из локальной сети.

Было подозрение на правило в интернет-фильтре 192.168.1.1  для всех dns запросов, которое, начиная с версий 2.15, стало ругаться в лог на петлю: 

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

Май 18 22:51:05 ndnproxy 
Proxy loop detected: 192.168.1.1 <-> 192.168.1.1, request dropped.
Май 18 22:51:05 ndnproxy 
DNS server 192.168.1.1 inactivated.
  ...
Май 18 22:51:06 ndnproxy 
Proxy loop detected: fe80::xxxx:xxxx:xxxx:xxxx <-> fe80::xxxx:xxxx:xxxx:xxxx, request dropped.
Май 18 22:51:06 ndnproxy 
DNS server fe80::xxxx:xxxx:xxxx:xxxx inactivated.

 

Но его удаление (без перезагрузки роутера) не давало результатов.

При сканировании извне портов кинетика nmap-ом по tcp показывает только один открытый порт 21, на который на самом деле есть правило в firewall, но оно отключено. По udp пишет что все 1000 портов open | filtered, результаты не меняются при любых значениях listen_address.

Оставил listen_address = ['0.0.0.0:53'] и коннекты извне пропали.

По мере возможности буду продолжать искать источник проблемы.

Link to comment
Share on other sites

Добрый день, уважаемые форумчане. Столкнулся с такой проблемой: при активном dns-crypt на АТС, которая находится в локальной сети, не проходят RTP-пакеты от провайдера Zadarma (с другими всё в порядке).

Все настройки делал согласно шапке и всё отлично работает, кроме этого момента...

Пробовал делать исключение в iptables, но через некоторое время правило пропадает из iptables.

Куда можно добавить исключение, чтобы трафик не фильтровался с определённого хоста?

Link to comment
Share on other sites

13 hours ago, Mr.Fermer said:

Добрый день, уважаемые форумчане. Столкнулся с такой проблемой: при активном dns-crypt на АТС, которая находится в локальной сети, не проходят RTP-пакеты от провайдера Zadarma (с другими всё в порядке).

Все настройки делал согласно шапке и всё отлично работает, кроме этого момента...

Пробовал делать исключение в iptables, но через некоторое время правило пропадает из iptables.

Куда можно добавить исключение, чтобы трафик не фильтровался с определённого хоста?

Удалось решить проблему самостоятельно: причина была в компоненте opkg netfilter. Отключил его в настройках роутера, до кучи отключил ещё и SIP ALG. Теперь всё работает отлично.

Странно только, что проблема проявилась после обновления прошивки на 2.11-D.2.0.0, но да ладно.

Разработчикам отдельное спасибо, реально крутую систему сделали.

Link to comment
Share on other sites

Уважаемые пользователи dnscrypt-proxy2!

После внедрения DoT/DoH в прошивку необходимость в dnscrypt-proxy2 из Entware для многих из нас немного уменьшилась.

Теперь запросы от роутера и его клиентов могут быть защищены от перехвата и подмены из коробки 👍

В качестве альтернативы "из коробки" предлагаю вариант из сообщения уважаемого @Le ecureuil

Цитата

 

К счастью, adguard полностью поддерживает doh/dot. Потому

- ставите doh/dot компоненты

- ставите adguard

- включаете его

- profit!

Все само работает по dot/doh без настроек, с заворотом всех DNS-запросов принудительно на роутер.

 

Сам лично уже так и сделал - значительно освободилась RAM на роутере (хотя не сказал бы, что ее не хватало).

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

Кстати, для поддержки разрешения доменов *.lib я на странице Интернет-Фильтр добавил сервер 91.217.137.37 с указанием домена lib

И получается большая часть функционала dnscrypt-proxy2 (по крайней мере того, что был важен для меня) доступна "из коробки" и настраивается крайне просто. За что большое спасибо разработчикам KeeneticOS!

Link to comment
Share on other sites

  • 1 month later...
В 18.06.2019 в 18:44, ankar84 сказал:

После внедрения DoT/DoH в прошивку необходимость в dnscrypt-proxy2 из Entware для многих из нас немного уменьшилась.

Установил DoT/DoH компоненты.
Включил "Игнорировать DNS" выданные провайдером.
Включил "AdGuard DNS".
Выбрал фильтр "Без рекламы".
Добавил DNS сервер 91.217.137.37 для зоны lib.

И не работает, rutracker.lib не открывается, впрочем как и rutracker.org.
Оно вообще еще актуально?
По средствам DoT/DoH возможно обойти DPI? У меня складывается ощущение что провайдер спокойненько видит содержимое пакетов завернутых в DoH.

P.S.
Сори за нубство. ))

Edited by Slesh
Link to comment
Share on other sites

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

И не работает, rutracker.lib не открывается, впрочем как и rutracker.org.
Оно вообще еще актуально?

Я сделал запрос по этому поводу. Вроде бы обещали посмотреть в чате.

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

По средствам DoT/DoH возможно обойти DPI? У меня складывается ощущение что провайдер спокойненько видит содержимое пакетов завернутых в DoH.

Тут смотря как провайдер блокирует доступ к запрещенке. Если только через DNS, то DoT\DoH помогут. Правда конкретно AdGuard DNS сейчас слегка не корректно работает и полагаться на него полностью, имхо, не стоит.

  • Thanks 1
Link to comment
Share on other sites

  • 6 months later...

Сегодня нашел причину "дыры" описанной мной в этой теме ранее

Напомню: DNS сервер откликался на запросы снаружи на udp/53 на внешний адрес кинетика. Firewall включен, nmap не показывал этот порт открытым. Обходным решением тогда оказалось, как ни странно, указание в настройках dnscrypt-proxy2 слушать на любом порту, вместо 127.0.0.1:53 и 192.168.1.1:53, как было у меня раньше. При этом, при внешних запросах, ответов от dns сервера не было (на внешнем клиенте был таймаут ответа от сервера), но в активных подключениях кинетика всё равно появлялось это соединение.

Менялись версии прошивки, от 2.13 в момент обнаружения проблемы, до 2.16 сейчас, обновлялся Entware, но проблема оставалась.

В итоге, в моем случае причиной оказалось срабатывание правила:

Chain PREROUTING (policy ACCEPT 72 packets, 6120 bytes)
num   pkts bytes target     prot opt in     out     source               destination
3       15   981 DNAT       udp  --  *  *       0.0.0.0/0            0.0.0.0/0            udp dpt:53 to:192.168.1.1:53

Которое создавалось скриптом /opt/etc/ndm/netfilter.d/10-ClientDNS-Redirect.sh, который описан в шапке этой темы в разделе "Перехват всех DNS запросов на роутере. "Приземление" DNS трафика".

Доработал его, указав исключение внешнего интерфейса:

Было:

[ -z "$(iptables -nvL -t nat | grep "to:192.168.1.1:53")" ] && iptables -t nat -I PREROUTING -p udp --dport 53 -j DNAT --to-destination 192.168.1.1:53

Стало:

[ -z "$(iptables -nvL -t nat | grep "to:192.168.1.1:53")" ] && iptables -t nat -I PREROUTING -p udp ! -i ppp0 --dport 53 -j DNAT --to-destination 192.168.1.1:53

После этого, при внешних запросах на udp/53, dns сервер не отвечал и соединение в активных подключениях не появлялось.

Возможно, такое решение имеет недостатки (например, в случае, когда запросы прилетят со стороны провайдера по IPoE, минуя PPPoE), и кто-то предложит более "элегантное" решение.

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

15 часов назад, Albram сказал:

Обходным решением тогда оказалось, как ни странно, указание в настройках dnscrypt-proxy2 слушать на любом порту, вместо 127.0.0.1:53 и 192.168.1.1:53, как было у меня раньше.

Ошибся при написании. Конечно же, не на любом порту слушать, а на любом адресе, т.е.:

listen_addresses = ['0.0.0.0:53']

Link to comment
Share on other sites

  • 2 weeks later...
2 часа назад, shadowy сказал:

Подскажите как накатить его на KeeneticOS: 3.3.10 ?....

спасибо...

В настоящие время есть альтернатива

Так как в нем есть поддержка - DNSCrypt / DNS-over-HTTPS / DNS-поверх-TLS плюс так же фильтры на базе host (готовые или свои) и другие фильтры => блокировщик рекламы.

 

Если не нужно, то ни каких изменений по установки пакетов от Entware не происходило.

/ # opkg list | grep dnscrypt
dnscrypt-proxy - 2019-08-20-07ac3825-1 - dnscrypt-proxy provides local service which can be used directly as your local resolver or as a DNS forwarder, encrypting and authenticating requests using the DNSCrypt protocol and passing them to an upstream server. The DNSCrypt protocol uses high-speed high-security elliptic-curve cryptography and is very similar to DNSCurve, but focuses on securing communications between a client and its first-level resolver.
dnscrypt-proxy-resolvers - 2019-08-20-07ac3825-1 - Package with current list of dnscrypt-proxy resolvers.
dnscrypt-proxy2 - 2.0.36-1 - DNSCrypt is a network protocol designed by Frank Denis and Yecheng Fu, which authenticates Domain Name System (DNS) traffic between the user's computer and recursive name servers.
/ # 

Набрать "opkg install dnscrypt-proxy2"

 

 

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