Popular Post ankar84 Posted June 5, 2018 Popular Post Share Posted June 5, 2018 (edited) Данная тема создана по следам инструкций по использованию предыдущих версий первой ветки замечательного приложения dnscrypt-proxy, которое автор вернул к плотной разработке, правда, сменив язык на Go. Для начала рекомендую ознакомиться со статьями о первой версии приложения: Скрытый текст Установка Скрытый текст Сразу уточню, вторая версия dnscrypt-proxy2 подойдет скорее тем пользователям, у кого роутер с достаточным количеством оперативной памяти, так как приложения на go довольно требовательны к ресурсам. Например, на моих Zyxel Keenetic Ultra и Keenetic Giga KN-1010 проблем с памятью нет, поэтому я и перешел на вторую ветку dnscrypt-proxy2 не особо раздумывая. Пользователи в комментариях данной темы сообщают, что dnscrypt-proxy2 без проблем работает на Keenetic II и Keenetic DSL. Ознакомиться со всеми преимуществами dnscrypt-proxy2 перед первой версией можно на странице проекта на GitHub. Хочу заметить, что при использовании dnscrypt-proxy2 уже нет критичной необходимости в связке с dnsmasq или чем-то еще, так как dnscrypt-proxy2 сам умеет и кэшировать запросы и работать с несколькими серверами сразу, выбирая наиболее быстрый и ещё много чего. На момент написания данной статьи актуальной версией является dnscrypt-proxy 2.0.21 Итак, начиная с версии 2.0.8 (кажется) dnscrypt-proxy2 собрана уважаемым @zyxmon в тестовой ветке репозитория Entware. Пользователям Entware-3x и Entware-NG нужно перейти на репозиторий Entware с помощью следующих команд, введенных 2 раза подряд (за подробностями и решением проблем нужно пройти в соответствующую тему) иначе будете получать ошибку, что пакет dnscrypt-proxy2 не найден. opkg update opkg upgrade Начиная с 2.0.11 пакет dnscrypt-proxy2 доступен для обычной установки из репозитория Entware следующей командой: opkg install dnscrypt-proxy2 ca-certificates Далее установим вспомогательные пакеты: iptables для того, чтобы "приземлить" все DNS запросы наших клиентов на наш dnscrypt-proxy2 cron для того, чтобы обновлять список блокируемых адресов в автоматическом режиме на регулярной основе. opkg install cron iptables Стандартный конфигурационный файл достаточно полно документирован комментариями по той или иной настройке, да и в целом по-умолчанию всё должно запуститься успешно командой: /opt/etc/init.d/S09dnscrypt-proxy2 start Замена основного DNS резолвера прошивки резолвером dnscrypt-proxy2 Скрытый текст Перед манипуляция с заменой основного DNS резолвера прошивки крайне рекомендую ознакомиться со статьей Использование публичных DNS-серверов в интернет-центре, там собрана вся нужная информация. Так как будем использовать dnscrypt-proxy2 как единственный DNS сервер на роутере, необходимо отключить (а точнее перевести в специальный режим работы при котором компоненты прошивки все равно смогут обращаться к DNS резолверу прошивки через RPC оставив порт 53 свободным) основной DNS сервер NDMS. Сделаем это следующими командами в Cli (не в Entware): opkg dns-override system configuration save Кстати, если не хочется лишний раз запускать telnet или putty, то до cli (а точнее web cli) можно добраться и через WEBUI Кинетика по адресам: http://my,keenetic.net/a или http://192.168.1.1/a Там выбрать режим Parse, ввести нужную команду и нажать кнопку Send Request Кстати, из приятного, там недавно даже подсказки по TAB работают! Настройка клиентов на использование dnscrypt-proxy2 в качестве DNS сервера Скрытый текст Сейчас я рекомендую наиболее простой и универсальный способ настройки dnscrypt-proxy2 в качестве основного DNS сервера для всех устройств домашней сети и роутера в том числе. Для этого необходимо пройти на страницу WEBUI Сетевые правила => Интернет-фильтр и в разделе Серверы DNS, нажимаем кнопку Добавить DNS сервер и вводим IP адрес нашего роутера (стандартно это 192.168.1.1, но в моем примере это будет 192.168.10.1) Прошу обратить внимание на предупреждение Этот IP-адрес присвоен интерфейсу Домашняя сеть. Не стоит его пугаться, все будет работать как нужно. Я думаю, это предупреждение сделано, чтобы не опытные пользователи не допустили ошибку в настройке. Но так как мы знаем, что делаем, предлагаю просто игнорировать данное предупреждение. Вот и вся настройка "по новому". Теперь все устройства сети (включая сам роутер) будут использоваться наш dnscrypt-proxy2 сервер для разрешения имен. Но для альтернативы оставлю "старый" способ настройки клиентов (как я раньше их настраивал) Скрытый текст Настроим клиентов домашней сети Откроем раздел WEBUI Мои сети и Wi-Fi => Домашняя сеть и перейдем к подразделу Параметры IP и раскроем там ссылку Показать настройки DHCP Затем в поле Сервер DNS 1 вводим IP адрес нашего роутера в домашней сети (обычно 192.168.1.1, но у меня настроена на адрес 192.168.10.1) И нажимаем кнопку Сохранить. Теперь все клиенты будут в качестве DNS сервера получать адрес, на котором слушает dnscrypt-proxy2 Теперь установим DNS сервер для нашего основного интернет провайдера. Тут у всех настройки могут быть разные, так как зависят от провайдера и способа подключения к сети Интернет. У меня самый типичный IPoE провайдер, поэтому для меня настройка будет следующая. Открываем раздел WEBUI Интернет => Проводной и переходим к подразделу Параметры IP и DNS и нажимаем ссылку Показать дополнительные настройки IPoE В поле DNS 1 вводим IP адрес роутера в домашней сети (обычно 192.168.1.1, но у меня настроена на адрес 192.168.10.1) И нажимаем кнопку Сохранить Теперь и сам роутер будет использовать dnscrypt-proxy2 для разрешения имен. Но, все же рекомендую "новый" способ настройки клиентов через страницу Интернет-фильтр. Хранение файлов DNSCrypt и некоторые советы по конфигурации Скрытый текст По-умолчанию, файл конфигурации создается в папке /opt/etc/dnscrypt-proxy.toml Хотя лично мне гораздо удобнее когда все файлы, которые необходимы приложению расположены в отдельной папке, например, /opt/etc/dnscrypt/ После того как были взвешены все "за" и "против", я пришел к выводу, что наиболее оптимальным для большинства пользователей и для меня будет вариант когда файл конфигурации будет располагаться по своему пути по-умолчанию, а все остальные файлы будут расположены в отдельной папке. Во-первых, когда все файлы, с которыми DNSCrypt работает располагаются рядом, под рукой, это удобно. Во-вторых, не создается лишнего беспорядка в корне папки конфигурации - /opt/etc/ В-третьих, нет никаких проблем при обновлениях приложения, ничего не нужно править. Итак, создаем отдельную папку для всех файлов (кроме файла конфигурации) и не забываем указывать путь до всех необходимых файлов с учетом этой папки mkdir -p /opt/etc/dnscrypt Для ознакомления приведу полный листинг своего файла конфигурации: Скрытый текст # cat /opt/etc/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 = ['0.0.0.0:53'] ## 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 = '/opt/tmp/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 = '/opt/tmp/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 = '/opt/tmp/blocked.log' #log_file = '/opt/etc/dnscrypt/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 = '' ## 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' # Приведу некоторые отличия моего конфигурационного файла от стандартного. listen_addresses = ['0.0.0.0:53'] В отличии от дефолтной строчки, где сервер будет слушать на 127.0.0.1 мне было необходимо, чтобы сервер "слушал" на стандартном адресе роутера в домашней сети 192.168.1.1, чтобы я мог прописать данный сервер в настройках DHCP как сервер DNS для всех устройств моей домашней сети. Но этого можно добиться указав специальный адрес 0.0.0.0 Тогда, насколько я понял, dnscrypt-proxy2 будет слушать на всех своих интерфейсах (включая IPv6 - если он есть). Думаю, что данная настройка подойдет большинству пользователей. Рекомендую включить опцию use_syslog и смотреть события DNSCrypt в веб интерфейсе Кинетика на странице Диагностика - Системный журнал use_syslog = true Но если все же привычно работать с логами в виде файлов, то вот ваш вариант #use_syslog = true log_file = '/opt/var/log/dnscrypt-proxy-v2.log' Для диагностики проблем так же будет полезным включить наиболее подробный уровень логгирования log_level = 0 Когда все работает хорошо и стабильно, уровень логгирования нужно вернуть на исходный - 2 (можно и выше) log_level = 2 Далее идет fallback_resolver. Вообще его можно не менять, но мне захотелось поставить популярный ныне CloudFlare DNS с его красивым адресом. fallback_resolver = '1.1.1.1:53' Размер кэша я ставлю в 4 раза больше, чем по-умолчанию. Можно не менять. Кстати, в ответах просьба высказаться, какой размер кэша оптимальный по вашему? cache_size = 2048 Полезная с точки зрения безопасности фукнция user_name, которая служит для указания пользователя, под которым будет работать основная служба dnscrypt-proxy2. Если у вас возникают проблемы с запуском при включении данной опции, просто закомментируйте ее. У меня работает. user_name = 'nobody' В качестве значения параметра blacklist_file указываем полный путь до вашего файла с блокируемыми доменными именами. blacklist_file = '/opt/etc/dnscrypt/blacklist-domains.txt' Для диагностики корректности блокировки того или иного ресурса или для отлова false positive блокировок рекомендую включить журнал того, что блокируется: log_file = '/opt/var/log/blocked.log' log_format = 'tsv' Далее у меня прописан белый список доменных имен, которые не нужно блокировать никогда. На самом деле, данная опция появилась в последних версиях (кажется в 2.0.11) и ранее белый список обрабатывался скриптом генерации черного списка блокируемых адресов. То есть вхождения белого списка удалялись из черного при генерации. Теперь вот отдельная опция: whitelist_file = '/opt/etc/dnscrypt/domains-whitelist.txt' Блокировка рекламы Скрытый текст Для нормальной работы скрипта генерации файла blacklist-domains.txt необходимо установить еще минимально 2 пакета: opkg install python-base python-urllib3 Для скачивания всего необходимого и генерации списка рекламных доменов рекомендую воспользоваться скриптом от @TheBB вот из этого поста ~ # cat get-dnscrypt-files.sh #!/opt/bin/sh DIR="/opt/etc/dnscrypt" FILE="generate-domains-blacklist.py" URL="https://raw.githubusercontent.com/jedisct1/dnscrypt-proxy/master/utils/generate-domains-blacklists" # check curl if [ ! -f "/opt/bin/curl" ]; then opkg install curl --force-reinstall fi # check dir if [ ! -d "$DIR" ]; then mkdir -p $DIR fi cd $DIR # download files curl -O $URL/domains-blacklist-all.conf \ -O $URL/domains-blacklist-local-additions.txt \ -O $URL/domains-blacklist.conf \ -O $URL/domains-time-restricted.txt \ -O $URL/domains-whitelist.txt \ -O $URL/$FILE # fix shebang & make executable sed -i -e 's,#!.*,#!/opt/bin/python,' $FILE && chmod +x $FILE # create blacklist ./$FILE -i > domains-blacklist.txt Для периодического обновления списка заблокированных доменных имен есть уже 2 варианта. Вот мой: Скрытый текст Я этот список еженедельно обновляю с помощью cron: Создаем файл скрипта /opt/etc/cron.weekly/generate-blacklist для еженедельного обновления со следующим содержимым: #!/opt/bin/sh cd /opt/etc/dnscrypt/ python generate-domains-blacklist.py -i > /opt/etc/dnscrypt/blacklist-domains.txt /opt/etc/init.d/S09dnscrypt-proxy2 restart И не забываем сделать его исполняемым: chmod +x /opt/etc/cron.weekly/generate-blacklist И вот вариант @TheBB вот из этого поста Скрытый текст /opt/etc # cat ./generate.sh #!/opt/bin/sh DIR="/opt/etc/dnscrypt" SCRIPT="/opt/etc/init.d/S09dnscrypt-proxy2" num=5 #cd /opt/etc/dnscrypt cd $DIR while [ $num -gt 0 ]; do ./generate-domains-blacklist.py > blacklist.txt; if [ $? -eq 0 ]; then mv blacklist.txt domains-blacklist.txt logger -t dnscrypt-proxy "blacklist updated successfully" # echo "OK!" $SCRIPT restart exit 0; fi logger -t dnscrypt-proxy "try again" # echo "Failed! Try again..." sleep 10 let num=$num-1 done exit 1; до 5 попыток (меняем на нужное самостоятельно) генерации списка, с интервалом перезапуска в 10 сек (взято "с потолка", можно выставить своё значение); после первой удачной попытки генерации, промежуточный файл переносится взамен старого и dnscrypt-proxy перезапускается; если все попытки окажутся неудачными, скрипт завершается до следующего запуска (вручную или по заданию cron`a), файл списка остаётся нетронутым. Добавляем возможность разрешать домены в зоне *.lib Скрытый текст Переходим к настройке dnscrypt серверов. И вот тут я очень рекомендую использовать серверы проекта OpenNIC. На данный момент я нашел универсальный способ использования наиболее быстрых dnscrypt серверов и не терять возможности разрешать нужные имена доменов в зоне *.lib с помощью значительно более медленных серверов проекта OpenNIC Для этого нужно воспользоваться опцией forwarding_rules конфигурационного файла forwarding_rules = '/opt/etc/dnscrypt/forwarding-rules.txt' Вот что на данный момент у меня в этом файле cat /opt/etc/dnscrypt/forwarding-rules.txt rutor.lib 91.217.137.37,185.117.154.144,95.181.211.6 flibusta.lib 91.217.137.37,185.117.154.144,95.181.211.6 rutracker.lib 91.217.137.37,185.117.154.144,95.181.211.6 Серверы в этом файле время от времени придется обновлять. Брать серверы вот тут. Для России сверху нужно выбрать RU Но можно использовать исключительно серверы проекта OpenNIC. Тогда настройка в конфигурационном файле будет вот такая (закомментирован основной список публичных серверов и добавлен список только серверов проекта OpenNIC #[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 = '' Почему именно OpenNIC? Используя именно эти серверы можно получить один замечательный бонус - разрешение EmerCoin доменных имен типа *.lib и других. Благодаря этому можно пользоваться одним популярным торрент трекером по его доменному имени в зоне *.lib не занимаясь постоянным поиском живых зеркал. Опять же, эти серверы вроде бы не вносят своих блокировок и не логгируют запросы. Хотя как знать. Остается им просто доверять (или не доверять). Так же я НЕ рекомендую использовать серверы проекта компании Cisco - OpenDNS. Недавно @Александр Рыжов в канале Keenetic в одном известном мессенджере сообщил, что Cisco заворачивала на себя трафик mail.ru подставляя при этом фейковый сертификат, так что будьте бдительны. Так же прошу обратить внимание, большинство серверов проекта OpenNIC с поддержкой dnscrypt находятся в Европе и Америке, так что быстрых ответов ждать не приходится. У меня самый быстрый сервер дает около 100 мс, и на том спасибо. Отсюда и увеличенный размер кэша, которым я пытаюсь эти задержки свести к минимуму. Перехват всех DNS запросов на роутере. "Приземление" DNS трафика Скрытый текст Теперь переходим к очень важной теме, изучая которую я потратил много времени. А именно, речь пойдет об использовании только локального DNS сервера dnscryprt-proxy2 вместо провайдерских DNS серверов на всех устройствах сети. Суть здесь вот в чем. Начиная, кажется. с 6 версии ОС Андроид, видимо, для повышения стабильности (и, имхо, для утоления своей тотальной любознательности) параллельно посылает запросы и на тот сервер, что указан в сетевых настройках, которые получены устройством от DHCP сервера и на сервер 8.8.8.8 Я очень долго не мог понять, почему на всех устройствах я не вижу рекламу, так как она блокируется на роутере, но всегда вижу рекламу на своем Андроид смартфоне. Тогда я с помощью захвата пакетов все и обнаружил. Кстати, более простым способом было посмотреть трафик в Entware с помощью tcpdump. tcpdump -i br0 или посмотрим только трафик на сетевой порт 53 tcpdump port 53 -n -nn -v Итак, для начала избавимся от провайдерских DNS серверов. Для этого в очередной раз рекомендую ознакомиться со статьей базы знаний Использование публичных DNS-серверов в интернет-центре. В cli вводим вот эти 2 замечательные команды: interface ISP no ip dhcp client name-servers system configuration save От слежки провайдера избавились, осталось приземлить все DNS запросы в корпорацию добра на наш сервер dnscrypt-proxy2. Здесь мне так же помог @Александр Рыжов на канале Keenetic. У данного метода есть и плюсы - например, при подмене локального DNS сервера вирусом на компьютере с Windows запросы пойдут все равно на роутер, а не DNS сервер злоумышленников. Есть и минусы, например, не весь трафик, который идет по UDP\53 это не обязательно DNS запросы, это вполне может быть портом для подключения к, положим, OpenVPN серверу. Но так или иначе, для большинства домашних сетей данный способ приносит больше плюсов, имхо. В вашем любимом текстовом редакторе создаем файл скрипта /opt/etc/ndm/netfilter.d/10-ClientDNS-Redirect.sh #!/bin/sh [ "$type" == "ip6tables" ] && exit 0 [ "$table" != "nat" ] && exit 0 [ -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 exit 0 Либо, если любимого редактора еще нет, можно воспользоваться вот такой длинной командой: echo -e '#!/bin/sh\n[ "$type" == "ip6tables" ] && exit 0\n[ "$table" != "nat" ] && exit 0\n[ -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\nexit 0' >> /opt/etc/ndm/netfilter.d/10-ClientDNS-Redirect.sh Ранее использовалась конструкция "$(iptables-save | grep " --dport 53 -j DNAT --to-destination 192.168.1.1")" но из-за некоторых проблем она была заменена конструкцией "$(iptables -nvL -t nat | grep "to:192.168.1.1:53")" которая должна отрабатывать быстрее и стабильнее. Далее делаем созданный скрипт исполняемым: chmod +x /opt/etc/ndm/netfilter.d/10-ClientDNS-Redirect.sh Вероятно, скрипт можно написать значительно изящнее и ловить не только UDP, но и TCP трафик, но у меня получилось только вот так. В ответах, гуру баша могут подсказать как сделать правильнее, подправлю для общего блага. Мне "приземление" только UDP трафика на 53 порт роутера помогло полностью избавиться от рекламы на всех устройствах домашней сети. Так что TCP можно и не трогать. Осталось еще научиться "приземлять" IPv6 запросы, так как этот самый IPv6 понемногу и постепенно проникает в нашу жизнь. Диагностика проблем с запуском\работой. Скрытый текст Рекомендую для диагностики запустить DNSCrypt из консоли строкой запуска из скрипта, то есть командой: dnscrypt-proxy -config /opt/etc/dnscrypt-proxy.toml Путь до файла конфигурации при необходимости можно поправить на ваш, по-умолчанию путь такой -config /opt/etc/dnscrypt-proxy.toml Для начала посмотрим журнал dnscrypt-proxy2 в том месте, где вы его настроили. Я смотрю вот такой командой: # tail -f -n 30 /opt/var/log/dnscrypt-proxy-v2.log Либо если включили syslog, то события смотрим веб интерфейсе Кинетика на странице Диагностика - Системный журнал Если dnscrypt-proxy2 "падает" сразу после запуска попробуйте закомментировать опцию user_name = 'nobody' Следующая команда должна выдать PID процесса. Если ничего не выдала - DNSCrypt не запущен (возможно завершился с ошибкой) ~ # ps | grep dnscrypt 19766 root 655m S dnscrypt-proxy -config /opt/etc/dnscrypt/dnscrypt-proxy.toml 19792 nobody 655m S /opt/sbin/dnscrypt-proxy -config /opt/etc/dnscrypt/dnscrypt-proxy.toml -child 20271 root 4780 S grep dnscrypt ~ # Проверить, слушается ли порт 53. Обратите внимание, слушать должен именно процесс dnscrypt-proxy, а не ndmproxy # netstat -tulnp | grep dnscrypt tcp 0 0 :::53 :::* LISTEN 24571/dnscrypt-prox udp 0 0 :::53 :::* 24571/dnscrypt-prox Опять же все ограничения, которые касались использования первой версии dnscrypt-proxy справедливы и для второй, ссылки на инструкции я приложил выше. Это моя первая инструкция в этом разделе, так что сильно не пинать, а конструктивная критика крайне приветствуется. Если есть, что нужно подправить\доработать - пишите, вместе сделаем использование данного пакета проще и эффективнее. Изменения шапки. Скрытый текст Обновление информации, исправления. Добавил ссылку на пост по генерации файла блокировки 31.03.2019 Шапка значительно переработана в плане оформления, в части блокировки и некоторых настроек В итоге: Защитили весь свой DNS трафик от перехвата со стороны провайдера и Гугла Заблокировали рекламу на всех устройствах домашней сети (это наиболее актуально для всяких Смарт ТВ и других девайсов не нет возможности блокировать рекламу на самом устройстве) Получили разрешение имен *.lib и других, чем немного упростили себе жизнь в все более блокируемом интернете Edited March 31, 2019 by ankar84 31.03.2019 Шапка значительно переработана в плане оформления, в части блокировки и некоторых настроек 10 7 Quote Link to comment Share on other sites More sharing options...
vasek00 Posted June 6, 2018 Share Posted June 6, 2018 Маленькая ремарка по поводу памяти : 1. На KII отлично работает 2. Тут уже выкладывалось по его потреблению памяти Скрытый текст /proc/604 # cat status Name: dnscrypt-proxy2 State: S (sleeping) Tgid: 604 Pid: 604 PPid: 1 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 32 Groups: VmPeak: 665264 kB VmSize: 665264 kB VmLck: 0 kB VmPin: 0 kB VmHWM: 7928 kB VmRSS: 5920 kB VmData: 658208 kB VmStk: 136 kB VmExe: 4028 kB VmLib: 0 kB VmPTE: 32 kB VmSwap: 0 kB Threads: 11 .... Cpus_allowed: 3 Cpus_allowed_list: 0-1 voluntary_ctxt_switches: 17 nonvoluntary_ctxt_switches: 108 /proc/604 # VmPeak пиковое значение использования виртуальной памяти, основным показателем тут будет VmLck: 0 kB VmRSS: 5920 kB VmStk: 136 kB / # cat /proc/meminfo MemTotal: 126180 kB MemFree: 21212 kB Buffers: 13540 kB Cached: 51040 kB SwapCached: 0 kB Active: 27976 kB Inactive: 53424 kB Active(anon): 16884 kB Inactive(anon): 148 kB Active(file): 11092 kB Inactive(file): 53276 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 16908 kB Mapped: 18460 kB Shmem: 212 kB Slab: 14016 kB SReclaimable: 3332 kB SUnreclaim: 10684 kB KernelStack: 768 kB PageTables: 492 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 63088 kB Committed_AS: 52076 kB VmallocTotal: 1048372 kB VmallocUsed: 2784 kB VmallocChunk: 1017364 kB / # или по проще Mem: 104960K used, 21220K free, 212K shrd, 13544K buff, 51040K cached CPU: 0.0% usr 4.7% sys 0.0% nic 95.2% idle 0.0% io 0.0% irq 0.0% sirq Load average: 0.00 0.02 0.00 1/96 2680 PID PPID USER STAT VSZ %VSZ CPU %CPU COMMAND ... 596 1 root S 649m525.8 0 0.0 dnscrypt-proxy2 -config /opt/etc/dnscrypt-proxy.toml или еще проще по монитору WEB Память 35% (45/128 Мб) 3. Цитата Так же прошу обратить внимание, большинство серверов проекта OpenNIC с поддержкой dnscrypt находятся в Европе и Америке, так что моментальных ответов ждать не приходится. У меня самый быстрый сервер дает около 100 мс, и на том спасибо. с поддержкой dnscryprt-proxy2 есть и более быстрые сервера, чем же так важен OpenNic только лишь Цитата А вот тут используя именно эти серверы получаем один замечательный бонус - разрешение EmerCoin доменных имен типа *.lib и жертвуем быстродействием в другом, где запросов по DNS со страниц при просмотрах достаточно. 4. Цитата Вообще его можно не менять, но мне захотелось поставить популярный ныне CloudFlare DNS с его красивым адресом. Чем же он так популярен, говорят по скорости но никто из пользователей не подтвердил реальность его быстродействия проверив его например через DNSBench (предварительно прописав два адреса CloudFlarе серверов) Скрытый текст 192.168.130.100 | Min | Avg | Max |Std.Dev|Reliab%| ----------------+-------+-------+-------+-------+-------+ + Cached Name | 0,000 | 0,000 | 0,000 | 0,000 | 100,0 | + Uncached Name | 0,031 | 0,139 | 0,346 | 0,081 | 100,0 | + DotCom Lookup | 0,025 | 0,078 | 0,111 | 0,029 | 100,0 | ---<-------->---+-------+-------+-------+-------+-------+ My-Keen 8. 8. 8. 8 | Min | Avg | Max |Std.Dev|Reliab%| ----------------+-------+-------+-------+-------+-------+ - Cached Name | 0,020 | 0,021 | 0,021 | 0,000 | 100,0 | - Uncached Name | 0,037 | 0,107 | 0,375 | 0,091 | 100,0 | - DotCom Lookup | 0,046 | 0,053 | 0,077 | 0,009 | 100,0 | ---<-------->---+-------+-------+-------+-------+-------+ google-public-dns-a.google.com 8. 8. 4. 4 | Min | Avg | Max |Std.Dev|Reliab%| ----------------+-------+-------+-------+-------+-------+ - Cached Name | 0,021 | 0,021 | 0,021 | 0,000 | 100,0 | - Uncached Name | 0,037 | 0,113 | 0,452 | 0,094 | 100,0 | - DotCom Lookup | 0,046 | 0,056 | 0,077 | 0,012 | 100,0 | ---<-------->---+-------+-------+-------+-------+-------+ google-public-dns-b.google.com ... 208. 67.222.123 | Min | Avg | Max |Std.Dev|Reliab%| ----------------+-------+-------+-------+-------+-------+ - Cached Name | 0,040 | 0,040 | 0,041 | 0,000 | 100,0 | - Uncached Name | 0,042 | 0,151 | 0,576 | 0,147 | 100,0 | - DotCom Lookup | 0,071 | 0,111 | 0,191 | 0,055 | 100,0 | ---<-------->---+-------+-------+-------+-------+-------+ resolver1-fs.opendns.com 208. 67.220.123 | Min | Avg | Max |Std.Dev|Reliab%| ----------------+-------+-------+-------+-------+-------+ - Cached Name | 0,041 | 0,041 | 0,041 | 0,000 | 100,0 | - Uncached Name | 0,043 | 0,148 | 0,594 | 0,148 | 100,0 | - DotCom Lookup | 0,072 | 0,123 | 0,222 | 0,059 | 100,0 | ---<-------->---+-------+-------+-------+-------+-------+ resolver2-fs.opendns.com 208. 67.220.220 | Min | Avg | Max |Std.Dev|Reliab%| ----------------+-------+-------+-------+-------+-------+ - Cached Name | 0,046 | 0,048 | 0,049 | 0,001 | 100,0 | - Uncached Name | 0,053 | 0,159 | 0,586 | 0,147 | 100,0 | - DotCom Lookup | 0,077 | 0,106 | 0,199 | 0,049 | 100,0 | ---<-------->---+-------+-------+-------+-------+-------+ resolver2.opendns.com 4. 2. 2. 6 | Min | Avg | Max |Std.Dev|Reliab%| ----------------+-------+-------+-------+-------+-------+ - Cached Name | 0,050 | 0,050 | 0,051 | 0,000 | 100,0 | - Uncached Name | 1,265 | 1,265 | 1,265 | 0,000 | 9,5 | - DotCom Lookup | 2,355 | 2,355 | 2,355 | 0,000 | 50,0 | ---<-------->---+-------+-------+-------+-------+-------+ f.resolvers.level3.net 1. 0. 0. 1 | Min | Avg | Max |Std.Dev|Reliab%| ----------------+-------+-------+-------+-------+-------+ - Cached Name | 0,043 | 0,051 | 0,053 | 0,004 | 100,0 | - Uncached Name | 0,052 | 0,099 | 0,299 | 0,065 | 100,0 | - DotCom Lookup | 0,063 | 0,084 | 0,196 | 0,037 | 100,0 | ---<-------->---+-------+-------+-------+-------+-------+ 1dot1dot1dot1.cloudflare-dns.com 208. 67.222.220 | Min | Avg | Max |Std.Dev|Reliab%| ----------------+-------+-------+-------+-------+-------+ - Cached Name | 0,046 | 0,054 | 0,056 | 0,004 | 100,0 | - Uncached Name | 0,057 | 0,170 | 0,593 | 0,158 | 100,0 | - DotCom Lookup | 0,078 | 0,170 | 0,280 | 0,059 | 100,0 | ---<-------->---+-------+-------+-------+-------+-------+ resolver3.opendns.com 1. 1. 1. 1 | Min | Avg | Max |Std.Dev|Reliab%| ----------------+-------+-------+-------+-------+-------+ - Cached Name | 0,059 | 0,059 | 0,059 | 0,000 | 100,0 | - Uncached Name | 0,060 | 0,096 | 0,308 | 0,066 | 100,0 | - DotCom Lookup | 0,060 | 0,060 | 0,061 | 0,000 | 100,0 | ---<-------->---+-------+-------+-------+-------+-------+ 1dot1dot1dot1.cloudflare-dns.com 4. 2. 2. 4 | Min | Avg | Max |Std.Dev|Reliab%| ----------------+-------+-------+-------+-------+-------+ - Cached Name | 0,059 | 0,059 | 0,059 | 0,000 | 100,0 | - Uncached Name | 1,271 | 1,271 | 1,271 | 0,000 | 9,5 | - DotCom Lookup | 2,558 | 2,558 | 2,558 | 0,000 | 100,0 | ---<-------->---+-------+-------+-------+-------+-------+ d.resolvers.level3.net ... 1 Quote Link to comment Share on other sites More sharing options...
ankar84 Posted June 6, 2018 Author Share Posted June 6, 2018 22 минуты назад, vasek00 сказал: или еще проще по монитору WEB Память 35% (45/128 Мб) С моим листом в около 2 Мб потребление RAM побольше. На текущий момент смотрю - 35% (90/256 Мб) 25 минут назад, vasek00 сказал: и жертвуем быстродействием в другом, где запросов по DNS со страниц при просмотрах достаточно Все верно, именно поэтому и увеличил размер кэша. Домашние в основном в инстаграмчиках сидят и прочих тайм-киллерах, так что их адреса один раз полученные с задержкой в 100 мс из кэша не исчезают (я надеюсь). 27 минут назад, vasek00 сказал: Чем же он так популярен, говорят по скорости но никто из пользователей не подтвердил реальность его быстродействия проверив его например через DNSBench (предварительно прописав два адреса CloudFlarе серверов) Лично я не писал, что он самый быстрый. А то, что он последние пару месяцев популярный, имхо, с этим сложно спорить. Проект только запустили, об этом трубили многие профильные и не очень издания, красивый адрес опять же. Но тут суть вообще в том, что fallback_resolver используется при очень определенных условиях и не слишком часто, а именно только для разрешения адреса со списком dnscrypt серверов в случае, если системный резолвер не доступен или отключен. Так что можно оставить сервер Quad9 DNS. 1 Quote Link to comment Share on other sites More sharing options...
vasek00 Posted June 6, 2018 Share Posted June 6, 2018 По поводу исчезания кеша, например данные в dnscrypt по умолчанию Цитата cache_size = 1500 cache_min_ttl = 600 cache_max_ttl = 86400 cache_neg_ttl = 60 Ну с популярностью тут трудно поспорить это наверное как кол-во "лайков" например на youtube, а так еще для оценки "заграничных" список их например можно взять из dnscrypt-resolvers.csv или из другого списка. https://www.dnsperf.com/dns-speed-benchmark?id=43d3ff9b86041d41d8148fd99cdf394f 2 Quote Link to comment Share on other sites More sharing options...
vladrnd Posted June 8, 2018 Share Posted June 8, 2018 (edited) поставил на ультру-2. а оно не стартует : root@router:/opt/etc# /opt/etc/init.d/S09dnscrypt-proxy2 check Checking dnscrypt-proxy... dead. лога тоже нет. он вообще рабочий ? Edited June 8, 2018 by vladrnd Quote Link to comment Share on other sites More sharing options...
vasek00 Posted June 8, 2018 Share Posted June 8, 2018 46 минут назад, vladrnd сказал: поставил на ультру-2. а оно не стартует : root@router:/opt/etc# /opt/etc/init.d/S09dnscrypt-proxy2 check Checking dnscrypt-proxy... dead. лога тоже нет. он вообще рабочий ? Проверьте скрипт запуска S09dnscrypt-proxy2 по содержимому, т.е. аргумент запуска и наличия файла для запуска. Например /opt/etc/init.d/S57dnscrypt-proxy PROCS=dnscrypt-proxy2 ARGS="-config /opt/etc/dnscrypt-proxy.toml" /opt/sbin # ls -l | grep dnscrypt -rwxr-xr-x 1 root root 158420 Mar 3 15:00 dnscrypt-proxy -rwxr-xr-x 1 root root 6663520 Jan 30 18:48 dnscrypt-proxy-2 -rwxr-xr-x 1 root root 7126368 Mar 22 22:48 dnscrypt-proxy2 /opt/sbin # Quote Link to comment Share on other sites More sharing options...
vladrnd Posted June 8, 2018 Share Posted June 8, 2018 7 минут назад, vasek00 сказал: Проверьте скрипт запуска S09dnscrypt-proxy2 по содержимому, т.е. аргумент запуска и наличия файла для запуска. Например /opt/etc/init.d/S57dnscrypt-proxy PROCS=dnscrypt-proxy2 ARGS="-config /opt/etc/dnscrypt-proxy.toml" /opt/sbin # ls -l | grep dnscrypt -rwxr-xr-x 1 root root 158420 Mar 3 15:00 dnscrypt-proxy -rwxr-xr-x 1 root root 6663520 Jan 30 18:48 dnscrypt-proxy-2 -rwxr-xr-x 1 root root 7126368 Mar 22 22:48 dnscrypt-proxy2 /opt/sbin # да нормально все с правами ENABLED=yes PROCS=dnscrypt-proxy ARGS="-config /opt/etc/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 -rwxr-xr-x 1 root root 236 Jun 8 13:23 S09dnscrypt-proxy2 -rw------- 1 root root 14234 Jun 7 17:38 dnscrypt-proxy.toml Quote Link to comment Share on other sites More sharing options...
vasek00 Posted June 8, 2018 Share Posted June 8, 2018 Ну осталось проверить наличие данного фала /opt/sbin # ls -l | grep dnscrypt -rwxr-xr-x 1 root root 158420 Mar 3 15:00 dnscrypt-proxy Только что обновился до 2.0.14 Скрытый текст [2018-06-06 16:13:18] [NOTICE] Source [public-resolvers.md] loaded [2018-06-06 16:13:21] [NOTICE] dnscrypt-proxy 2.0.14 [2018-06-06 16:13:21] [NOTICE] Now listening to 127.0.0.2:60553 [UDP] [2018-06-06 16:13:23] [NOTICE] Now listening to 127.0.0.2:60553 [TCP] [2018-06-06 16:13:25] [NOTICE] [yandex] OK (crypto v1) - rtt: 38ms [2018-06-06 16:13:25] [NOTICE] Server with the lowest initial latency: yandex (rtt: 38ms) [2018-06-06 16:13:25] [NOTICE] dnscrypt-proxy is ready - live servers: 1 [2018-06-08 13:25:50] [NOTICE] [adguard-dns] OK (crypto v1) - rtt: 21ms [2018-06-08 13:25:51] [NOTICE] [cs-fi] OK (crypto v1) - rtt: 68ms [2018-06-08 13:25:51] [NOTICE] Server with the lowest initial latency: yandex (rtt: 18ms) / # cd /opt/sbin /opt/sbin # ls -l | grep dnscrypt -rwxr-xr-x 1 root root 7640448 Jun 1 10:08 dnscrypt-proxy -rwxr-xr-x 1 root root 6663520 Jan 30 18:48 dnscrypt-proxy-2 -rwxr-xr-x 1 root root 7126368 Mar 22 22:48 dnscrypt-proxy2 /opt/sbin # Quote Link to comment Share on other sites More sharing options...
vladrnd Posted June 8, 2018 Share Posted June 8, 2018 (edited) 3 минуты назад, vasek00 сказал: Ну осталось проверить наличие данного фала /opt/sbin # ls -l | grep dnscrypt -rwxr-xr-x 1 root root 158420 Mar 3 15:00 dnscrypt-proxy Только что обновился до 2.0.14 Скрыть содержимое [2018-06-06 16:13:18] [NOTICE] Source [public-resolvers.md] loaded [2018-06-06 16:13:21] [NOTICE] dnscrypt-proxy 2.0.14 [2018-06-06 16:13:21] [NOTICE] Now listening to 127.0.0.2:60553 [UDP] [2018-06-06 16:13:23] [NOTICE] Now listening to 127.0.0.2:60553 [TCP] [2018-06-06 16:13:25] [NOTICE] [yandex] OK (crypto v1) - rtt: 38ms [2018-06-06 16:13:25] [NOTICE] Server with the lowest initial latency: yandex (rtt: 38ms) [2018-06-06 16:13:25] [NOTICE] dnscrypt-proxy is ready - live servers: 1 [2018-06-08 13:25:50] [NOTICE] [adguard-dns] OK (crypto v1) - rtt: 21ms [2018-06-08 13:25:51] [NOTICE] [cs-fi] OK (crypto v1) - rtt: 68ms [2018-06-08 13:25:51] [NOTICE] Server with the lowest initial latency: yandex (rtt: 18ms) / # cd /opt/sbin /opt/sbin # ls -l | grep dnscrypt -rwxr-xr-x 1 root root 7640448 Jun 1 10:08 dnscrypt-proxy -rwxr-xr-x 1 root root 6663520 Jan 30 18:48 dnscrypt-proxy-2 -rwxr-xr-x 1 root root 7126368 Mar 22 22:48 dnscrypt-proxy2 /opt/sbin # root@router:/opt/sbin# ls -l | grep dnscrypt -rwxr-xr-x 1 root root 7640448 Jun 1 10:08 dnscrypt-proxy Edited June 8, 2018 by vladrnd Quote Link to comment Share on other sites More sharing options...
vasek00 Posted June 8, 2018 Share Posted June 8, 2018 1 минуту назад, vladrnd сказал: но у меня нет такого в /opt/etc файла. я ставил только пакет dnscrypt-proxy2 Ну вообще то он в /opt/sbin # ls -l | grep dnscrypt Quote Link to comment Share on other sites More sharing options...
vladrnd Posted June 8, 2018 Share Posted June 8, 2018 (edited) 5 минут назад, vasek00 сказал: Ну вообще то он в /opt/sbin # ls -l | grep dnscrypt норма. ответ выше. подправил root@router:/opt/sbin# ./dnscrypt-proxy -config /opt/etc/dnscrypt-proxy.toml [2018-06-08 13:38:27] [FATAL] Near line 106 (last key parsed 'log_file'): strings cannot contain newlines заупстилось! Edited June 8, 2018 by vladrnd Quote Link to comment Share on other sites More sharing options...
vasek00 Posted June 8, 2018 Share Posted June 8, 2018 Только что, vladrnd сказал: норма. ответ выше. Проверка запуска в ручную dnscrypt-proxy -config /opt/etc/dnscrypt-proxy.toml и проверка/редактирование файла "dnscrypt-proxy.toml" в части ведения лога Цитата Например ## Log level (0-6, default: 2 - 0 is very verbose, 6 only contains fatal errors) log_level = 2 log_file = '/opt/tmp/dnscrypt-proxy.log' 2 Quote Link to comment Share on other sites More sharing options...
vladrnd Posted June 8, 2018 Share Posted June 8, 2018 ну вот как-то он периодически отвечает не по мужски, через раз ... вторичный DNS ответил, первичный (dnsproxy2) проскочил запрос. admin@DiskStation1:~$ nslookup t.me Server: 8.8.4.4 Address: 8.8.4.4#53 Non-authoritative answer: Name: t.me Address: 5.3.3.17 admin@DiskStation1:~$ nslookup t.me Server: 192.168.1.1 Address: 192.168.1.1#53 Non-authoritative answer: Name: t.me Address: 149.154.167.99 Quote Link to comment Share on other sites More sharing options...
vasek00 Posted June 8, 2018 Share Posted June 8, 2018 Вот некоторые результаты по скорости работе серверов Скрытый текст [2018-06-08 14:56:14] [NOTICE] Source [public-resolvers.md] loaded [2018-06-08 14:56:14] [NOTICE] dnscrypt-proxy 2.0.14 [2018-06-08 14:56:14] [NOTICE] Now listening to 127.0.0.2:60053 [UDP] [2018-06-08 14:56:14] [NOTICE] Now listening to 127.0.0.2:60053 [TCP] [2018-06-08 14:56:14] [NOTICE] [adguard-dns] OK (crypto v1) - rtt: 21ms [2018-06-08 14:56:16] [NOTICE] [cloudflare] OK (DoH) - rtt: 49ms [2018-06-08 14:56:16] [NOTICE] [cs-fi] OK (crypto v1) - rtt: 61ms [2018-06-08 14:56:16] [NOTICE] [yandex] OK (crypto v1) - rtt: 18ms [2018-06-08 14:56:16] [NOTICE] Server with the lowest initial latency: yandex (rtt: 18ms) [2018-06-08 14:56:16] [NOTICE] dnscrypt-proxy is ready - live servers: 4 текущая настройка toml Скрытый текст server_names = ['cloudflare', 'cs-fi', 'adguard-dns', 'yandex'] listen_addresses = ['127.0.0.2:60053'] max_clients = 250 ipv4_servers = true ipv6_servers = false dnscrypt_servers = true doh_servers = true require_dnssec = false require_nolog = true require_nofilter = true force_tcp = false timeout = 2500 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 = '/opt/tmp/dnscrypt-proxy.log' ## Use the system logger (syslog on Unix, Event Log on Windows) # use_syslog = true cert_refresh_delay = 60 fallback_resolver = "8.8.8.8:53" ignore_system_dns = false ## netprobe_timeout = 30 log_files_max_size = 5 log_files_max_age = 3 log_files_max_backups = 1 block_ipv6 = false # forwarding_rules = 'forwarding-rules.txt' cache = true cache_size = 1500 cache_min_ttl = 600 cache_max_ttl = 86400 cache_neg_ttl = 60 cache_neg_max_ttl = 600 [query_log] file = '/opt/tmp/query.log' format = 'tsv' # ignored_qtypes = ['DNSKEY', 'NS'] [nx_log] # file = 'nx.log' format = 'tsv' [blacklist] # blacklist_file = 'blacklist.txt' # log_file = 'blocked.log' # log_format = 'tsv' [ip_blacklist] # blacklist_file = 'ip-blacklist.txt' # log_file = 'ip-blocked.log' # log_format = 'tsv' [whitelist] # whitelist_file = 'whitelist.txt' # log_file = 'whitelisted.log' # log_format = 'tsv' ## {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'}] [sources] [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 = 'public-resolvers.md' minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3' refresh_delay = 72 prefix = '' [static] [static.'cloudflare'] #Cloudflare DNS (anycast) - aka 1.1.1.1 / 1.0.0.1 stamp = 'sdns://AgcAAAAAAAAABzEuMC4wLjGgENk8mGSlIfMGXMOlIlCcKvq7AVgcrZxtjon911-ep0cg63Ul-I8NlFj4GplQGb_TTLiczclX57DvMV8Q-JdjgRgSZG5zLmNsb3VkZmxhcmUuY29tCi9kbnMtcXVlcnk' [static.'cloudflare-ipv6'] ## Cloudflare DNS over IPv6 (anycast) stamp = 'sdns://AgcAAAAAAAAAGVsyNjA2OjQ3MDA6NDcwMDo6MTExMV06NTOgENk8mGSlIfMGXMOlIlCcKvq7AVgcrZxtjon911-ep0cg63Ul-I8NlFj4GplQGb_TTLiczclX57DvMV8Q-JdjgRgSZG5zLmNsb3VkZmxhcmUuY29tCi9kbnMtcXVlcnk' ИТАК быстродействие по ответу серверов с 05/06/2018-08/06/2018 как видно ниже плавает. [adguard-dns] OK (crypto v1) - rtt: 15ms - 21ms - 26ms [cloudflare] OK (DoH) - rtt: 49ms - 50ms [cs-fi] OK (crypto v1) - rtt: 59ms - 61ms - 71ms [yandex] OK (crypto v1) - rtt: 18ms - 22ms - 23ms - 57ms 2 Quote Link to comment Share on other sites More sharing options...
vasek00 Posted June 8, 2018 Share Posted June 8, 2018 55 минут назад, vladrnd сказал: ну вот как-то он периодически отвечает не по мужски, через раз ... вторичный DNS ответил, первичный (dnsproxy2) проскочил запрос. родной отключен, и первичный, вторичный и третичный все через dnsproxy Скрытый текст / # nslookup t.me Server: 192.168.1.100 Address 1: 192.168.1.100 Keen Name: t.me Address 1: 149.154.167.99 Address 2: 2001:67c:4e8:fa60:3:0:811:138 / # nslookup lenta.ru Server: 192.168.1.100 Address 1: 192.168.1.100 Keen Name: lenta.ru Address 1: 81.19.72.35 lenta.ru Address 2: 81.19.72.34 lenta.ru Address 3: 81.19.72.39 lenta.ru Address 4: 81.19.72.36 lenta.ru Address 5: 81.19.72.38 lenta.ru Address 6: 81.19.72.37 lenta.ru / # nslookup mail.ru Server: 192.168.1.100 Address 1: 192.168.1.100 My-Keen Name: mail.ru Address 1: 217.69.139.200 mail.ru Address 2: 217.69.139.201 mail.ru Address 3: 94.100.180.201 mail.ru Address 4: 94.100.180.200 Address 5: 2a00:1148:db00:0:b0b0::1 mail.ru / # Quote Link to comment Share on other sites More sharing options...
vasek00 Posted June 8, 2018 Share Posted June 8, 2018 07.06.2018 22:59 Cloudflare ввёл в строй DNS-резолвер в форме скрытого сервиса Tor Компания Cloudflare продолжила развитие своего публичного DNS-сервера 1.1.1.1 и для тех кто не хочет раскрывать свой IP-адрес при обращении к DNS ввела в строй DNS-резолвер, реализованный в виде скрытого сервиса Tor. Компания также напомнила, что для DNS-сервера 1.1.1.1, а также сопутствующих сервисов "DNS over HTTPS" и "DNS over TLS", действует правило, в соответствии с которым IP-адреса клиентов не записываются на диск и все логи полностью удаляются каждые 24 часа. До сих пор для пользователей Tor было доступно два метода резолвинга IP-адресов - использование DNS-сервера провайдера и использование резолвера выходного узла Tor. В первом случае DNS-резолвер получает информацию о клиентском IP, а провайдер, если не применяется DNS-over-HTTPS или DNS-over-TLS, получает сведения об определяемом имени хоста. Во втором случае возникает опасность манипуляции с DNS нечистыми на руку владельцами выходных узлов. Cloudflare предложил свой вариант решения - реализацию DNS-резолвера в виде скрытого сервиса, который перенаправляет все обращения к DNS на сервер 1.1.1.1, благодаря применению Tor сохраняя полную анонимность пользователя. Для быстрого проброса на onion-адрес dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion запущен специальный домен tor.cloudflare-dns.com. https://www.opennet.ru/opennews/art.shtml?num=48733 1 1 Quote Link to comment Share on other sites More sharing options...
Dorik1972 Posted June 9, 2018 Share Posted June 9, 2018 бинарник 2.0.15 в "уменьшенном" размере .... dnscrypt-proxy2 1 Quote Link to comment Share on other sites More sharing options...
ankar84 Posted June 9, 2018 Author Share Posted June 9, 2018 19 часов назад, vladrnd сказал: ну вот как-то он периодически отвечает не по мужски, через раз ... вторичный DNS ответил, первичный (dnsproxy2) проскочил запрос. Предлагаю ознакомиться с темой, возможно там есть ответ на ваш запрос: От себя добавлю (хотя это есть в моем первом посте) - рекомендую использовать dnscrypt-proxy2 как единственный DNS сервер на роутере и дать ему выбирать самый быстрый из серверов из предложенных ему вами. Именно так поступает, насколько я понял, @vasek00 Quote Link to comment Share on other sites More sharing options...
vasek00 Posted June 9, 2018 Share Posted June 9, 2018 Цитата Именно так поступает, насколько я понял Вопрос зачем иметь альтернативный провайдерский DNS : 1. если не работает один из DNSCrypt то есть другой из списка "server_names = ['cloudflare', 'cs-fi', 'adguard-dns', 'yandex'] " 2. если нет интернета то и провайдерский не поможет В итоге Скрытый текст [2018-06-08 14:56:14] [NOTICE] [adguard-dns] OK (crypto v1) - rtt: 21ms [2018-06-08 14:56:16] [NOTICE] [cloudflare] OK (DoH) - rtt: 49ms [2018-06-08 14:56:16] [NOTICE] [cs-fi] OK (crypto v1) - rtt: 61ms [2018-06-08 14:56:16] [NOTICE] [yandex] OK (crypto v1) - rtt: 18ms [2018-06-08 14:56:16] [NOTICE] Server with the lowest initial latency: yandex (rtt: 18ms) [2018-06-08 14:56:16] [NOTICE] dnscrypt-proxy is ready - live servers: 4 [2018-06-08 15:56:19] [NOTICE] Server with the lowest initial latency: adguard-dns (rtt: 21ms) [2018-06-08 16:56:21] [NOTICE] Server with the lowest initial latency: adguard-dns (rtt: 21ms) [2018-06-08 17:56:23] [NOTICE] Server with the lowest initial latency: yandex (rtt: 26ms) [2018-06-08 18:56:27] [NOTICE] [yandex] TIMEOUT [2018-06-08 18:56:27] [NOTICE] Server with the lowest initial latency: yandex (rtt: 22ms) [2018-06-08 19:56:29] [NOTICE] Server with the lowest initial latency: adguard-dns (rtt: 20ms) [2018-06-08 20:56:32] [NOTICE] Server with the lowest initial latency: yandex (rtt: 22ms) [2018-06-08 21:56:34] [NOTICE] Server with the lowest initial latency: adguard-dns (rtt: 21ms) [2018-06-08 22:56:36] [NOTICE] Server with the lowest initial latency: adguard-dns (rtt: 31ms) [2018-06-08 23:56:39] [NOTICE] Server with the lowest initial latency: yandex (rtt: 21ms) [2018-06-09 00:56:41] [NOTICE] Server with the lowest initial latency: adguard-dns (rtt: 20ms) [2018-06-09 01:56:43] [NOTICE] Server with the lowest initial latency: adguard-dns (rtt: 26ms) [2018-06-09 02:56:45] [NOTICE] Server with the lowest initial latency: yandex (rtt: 22ms) [2018-06-09 03:56:47] [NOTICE] Server with the lowest initial latency: yandex (rtt: 22ms) [2018-06-09 04:56:49] [NOTICE] Server with the lowest initial latency: adguard-dns (rtt: 21ms) [2018-06-09 05:56:51] [NOTICE] Server with the lowest initial latency: adguard-dns (rtt: 26ms) [2018-06-09 06:56:53] [NOTICE] Server with the lowest initial latency: yandex (rtt: 22ms) [2018-06-09 07:56:53] [NOTICE] Server with the lowest initial latency: yandex (rtt: 25ms) [2018-06-09 08:56:55] [NOTICE] Server with the lowest initial latency: adguard-dns (rtt: 21ms) .... как видно выше стоит проверка через 60мин и как перепрыгивает с одного на другой. Quote Link to comment Share on other sites More sharing options...
флегматик Posted June 11, 2018 Share Posted June 11, 2018 Инструкция рабочая, только раз уж автор начал про про чёрный список и "Я свой файл получаю скриптом автора dnscrypt-proxy", её следовало бы дополнить командами установки питона и скачивания с гитхаба подкаталога, где живёт этот скрипт. Можно и без них - ошибки при лобовом следовании инструкции выдаются вполне понятные - но уровень сложности получается неравномерным: начало для совсем чайников, а продолжение - уже для умеющих читать чайников. И предупредить, что после некоторых команд cli параллельно открытая ssh-сессия отвалится, тоже бы не помешало. 1 Quote Link to comment Share on other sites More sharing options...
SigmaPlus Posted June 14, 2018 Share Posted June 14, 2018 (edited) Два дня бился пытаясь запустить dnscrypt-proxy2 на Ultra. Он банально не стартует (точнее по ssh команду на старт как бы отрабатывает, но по факту не стартует). Соответственно лог не создаётся. Но через вэб-интерфейс entware заглянул в файловый менеджер и там увидел от dnscrypt-proxy следующее: "Содержимое файла /opt/sbin/dnscrypt-proxy <br /> <b>Fatal error</b>: Allowed memory size of 8388608 bytes exhausted (tried to allocate 7648664 bytes) in <b>/opt/share/www/addons/filemgr.php</b> on line <b>1006</b><br /> " Что можно предпринять? Edited June 14, 2018 by SigmaPlus Quote Link to comment Share on other sites More sharing options...
Вежливый Снайпер Posted June 16, 2018 Share Posted June 16, 2018 (edited) Большое спасибо за инструкцию. Проблему с неполной инструкцией по блеклисту решил методом тыка. Возможно неправильно, но главное работает В этой команде как я понял интерфейс нужно заменить на свой interface ISP no ip dhcp client name-servers в моем случае Yota0 единственный источник интернета на данном роутере (4G USB модем). Только вот после ввода команды разрешение имен работает везде, кроме самого роутера. Например, на клиентах все ОК, а роутер не может соединиться даже с сервером обновлений. Я не шарю в настройках сетей, но возможно причина тому - блокировка fallback_dns, который шлет запросы без шифрования, а йота в свою очередь блокирует не шифрованные запросы/DNS. Как мне поступить в таком случае? в логах dnscrypt: [2018-06-16 14:53:11] [ERROR] dial udp 8.8.8.8:53: connect: network is unreachable (это fallback dns) Edited June 16, 2018 by Вежливый Снайпер Quote Link to comment Share on other sites More sharing options...
Boomer Posted June 16, 2018 Share Posted June 16, 2018 3 часа назад, Вежливый Снайпер сказал: Только вот после ввода команды разрешение имен работает везде, кроме самого роутера. Например, на клиентах все ОК, а роутер не может соединиться даже с сервером обновлений. Я не шарю в настройках сетей, но возможно причина тому - блокировка fallback_dns, который шлет запросы без шифрования, а йота в свою очередь блокирует не шифрованные запросы/DNS. Как мне поступить в таком случае? Тоже столкнулся с данной проблемой. При прописывании данной команды работает все, но роутер не может обновить пакеты. В 08.06.2018 в 12:23, vladrnd сказал: Checking dnscrypt-proxy... dead. По поводу этой проблемы, тоже пол дня бился, и права проверял и все остальное, оказалось проблема в том, что мануал написан под использование IPv6, у меня же он не работает и я его не включал, поэтому в параметре: В 05.06.2018 в 19:33, ankar84 сказал: listen_addresses = ['192.168.1.1:53', '[::1]:53'] надо убрать [::1]:53 (т.к. это под IPv6) и тогда пакет не будет "умирать" и все будет работать нормально. P.S. А вообще есть способ проверить работает ли dnscrypt или нет? Quote Link to comment Share on other sites More sharing options...
vasek00 Posted June 16, 2018 Share Posted June 16, 2018 (edited) 3 часа назад, Boomer сказал: P.S. А вообще есть способ проверить работает ли dnscrypt или нет? Берете захват пакетов для анализа, данные для это берете из логов dnscrypt-proxy или в других местах. Найдя IP сервера которые используете из строки "server_names" ишите запросы UDP типа от роутера User Datagram Protocol, Src Port: 46287, Dst Port: 15353 Data (512 bytes) Data: 90e3ce87d09521ad9f2ebda3b32e9d1243e0ed2856beca8c... [Length: 512] и ответ к роутеру User Datagram Protocol, Src Port: 15353, Dst Port: 46287 Data (365 bytes) Data: 7236666e76576a38f7da7e5baaef2815769d9efd1528efaa... [Length: 365] Цитата Тоже столкнулся с данной проблемой. При прописывании данной команды работает все, но роутер не может обновить пакеты. Без проблем все работает при описанном ниже, попробуйте через WEB прописать лок.IP своего роутера в "Интернет-прочие-Сервера DNS" Скрытый текст На самом роутере на котором dnscrypt, опишу свою связку dnsmasq+dnscrypt-proxy. В WEB самого роутера " Интернет-прочие-Сервера DNS " ---- указан 192.168.13.100 сам роутер тогда с самого роутера / # ping ya.ru PING ya.ru (87.250.250.242): 56 data bytes 64 bytes from 87.250.250.242: seq=0 ttl=58 time=27.103 ms 64 bytes from 87.250.250.242: seq=1 ttl=58 time=26.960 ms ^C --- ya.ru ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max = 26.960/27.031/27.103 ms / # ping warfiles.ru PING warfiles.ru (95.163.214.96): 56 data bytes 64 bytes from 95.163.214.96: seq=0 ttl=55 time=56.621 ms 64 bytes from 95.163.214.96: seq=1 ttl=55 time=56.997 ms ^C --- warfiles.ru ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max = 56.621/56.809/56.997 ms / # netstat -ntulp | grep :53 tcp 0 0 192.168.13.100:53 0.0.0.0:* LISTEN 578/dnsmasq tcp 0 0 хх:хххх:ххххх:хххххх:ххххх:53 :::* LISTEN 578/dnsmasq udp 0 0 192.168.13.100:53 0.0.0.0:* 578/dnsmasq udp 0 0 хх:хххх:ххххх:хххххх:ххххх:53 :::* 578/dnsmasq / # cat /opt/etc/dnsmasq.conf no-resolv interface=br0 bind-interfaces except-interface=lo listen-address=192.168.13.100 ####server=127.0.0.2#60153 server=127.0.0.2#60253 cache-size=1500 ####all-servers #resolv-file=/opt/etc/resolv-dnsmasq.conf addn-hosts=/opt/tmp/hosts0.txt addn-hosts=/opt/tmp/malware_adblock.txt addn-hosts=/opt/tmp/anti_webm.hosts #addn-hosts=/opt/tmp/mvps_block.host # bogus-priv # domain-needed #no-negcache ##bogus-nxdomain=64.94.110.11 ##proxy-dnssec #log-queries ****** для ведения логов #log-facility=/opt/var/log/dnsmasq.log ****** для ведения логов / # netstat -ntulp | grep dnscrypt tcp 0 0 127.0.0.2:60253 0.0.0.0:* LISTEN 581/dnscrypt-proxy udp 0 0 127.0.0.2:60253 0.0.0.0:* 581/dnscrypt-proxy / # По dnscrypt-proxy по конфу ... listen_addresses = ['127.0.0.2:60253'] ... ## Log level (0-6, default: 2 - 0 is very verbose, 6 only contains fatal errors) log_level = 2 log_file = '/opt/tmp/dnscrypt-proxy.log' ... ## Log client queries to a file [query_log] file = '/opt/tmp/query.log' В итоге логи по dnscrypt-proxy 1. /opt/tmp/dnscrypt-proxy.log [2018-06-16 15:01:57] [NOTICE] Server with the lowest initial latency: adguard-dns (rtt: 21ms) [2018-06-16 16:01:59] [NOTICE] Server with the lowest initial latency: adguard-dns (rtt: 21ms) [2018-06-16 17:02:01] [NOTICE] Server with the lowest initial latency: yandex (rtt: 17ms) [2018-06-16 18:02:03] [NOTICE] Server with the lowest initial latency: yandex (rtt: 23ms) 2. /opt/tmp/query.log ---- в данном случае клиентом будет только dnsmasq от которого и идут запросы. [2018-06-16 18:25:14] 127.0.0.1 ftp.mozilla.org A [2018-06-16 18:25:14] 127.0.0.1 versioncheck.prod.mozaws.net AAAA [2018-06-16 18:25:14] 127.0.0.1 d34chcsvb7ug62.cloudfront.net AAAA [2018-06-16 18:25:27] 127.0.0.1 suggest.yandex.ru A [2018-06-16 18:25:27] 127.0.0.1 suggest.yandex.net AAAA [2018-06-16 18:25:28] 127.0.0.1 warfiles.ru A [2018-06-16 18:25:28] 127.0.0.1 warfiles.ru AAAA [2018-06-16 18:25:32] 127.0.0.1 www.rusvesna.su A [2018-06-16 18:25:32] 127.0.0.1 www.rusvesna.su AAAA [2018-06-16 18:25:32] 127.0.0.1 rusvesna.su A [2018-06-16 18:25:32] 127.0.0.1 rusvesna.su AAAA [2018-06-16 18:25:35] 127.0.0.1 topwar.ru A [2018-06-16 18:25:36] 127.0.0.1 topwar.ru AAAA [2018-06-16 18:25:38] 127.0.0.1 ocsp.int-x3.letsencrypt.org A Примечание по использованию в место прошивочного сервис dnsmasq слушает interface=br0 и 53 порт, далее от него все запросы на "server=127.0.0.2#60253" на данном порту 60253 весит сам dnscrypt-proxy Edited June 16, 2018 by vasek00 1 Quote Link to comment Share on other sites More sharing options...
Boomer Posted June 16, 2018 Share Posted June 16, 2018 1 час назад, vasek00 сказал: Без проблем все работает при описанном ниже, попробуйте через WEB прописать лок.IP своего роутера в "Интернет-прочие-Сервера DNS" Спасибо добрый человек, заработало Quote Link to comment Share on other sites More sharing options...
Boomer Posted June 19, 2018 Share Posted June 19, 2018 А теперь еще, подскажите, после установки iptables прошивочное открытие портов не работает, правильно же? Я попытался открыть порт через 10-ClientDNS-Redirect.sh дописав туда строки: iptables -A INPUT -p tcp --dport номер порта -j ACCEPT iptables -A INPUT -p udp --dport номер порта -j ACCEPT Но порты не открылись, роутер перезагружал, права на скрипт выставлял, что может быть не так? Quote Link to comment Share on other sites More sharing options...
vasek00 Posted June 20, 2018 Share Posted June 20, 2018 / # iptables -I INPUT -p tcp --dport 60001 -j ACCEPT / # iptables -nvL | grep 60001 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:60001 / # или Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:60001 Первая строчка "#!/bin/sh" Quote Link to comment Share on other sites More sharing options...
Boomer Posted June 20, 2018 Share Posted June 20, 2018 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:8090 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8090 0 0 ACCEPT udp -- * * 0.0.0.0/0 192.168.1.1 udp spt:8090 dpt:8090 Открыл... и все равно не пускает. До ввода команд был такой список: 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8090 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:8090 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8090 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:8090 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8090 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:8090 0 0 ACCEPT udp -- * * 0.0.0.0/0 192.168.1.1 udp spt:8090 dpt:8090 В админ панели этот порт открыт. теперь теряюсь в догадках что может быть. Quote Link to comment Share on other sites More sharing options...
vasek00 Posted June 20, 2018 Share Posted June 20, 2018 4 минуты назад, Boomer сказал: Открыл... и все равно не пускает. теперь теряюсь в догадках что может быть. Кого и куда? Quote Link to comment Share on other sites More sharing options...
Boomer Posted June 20, 2018 Share Posted June 20, 2018 (edited) 48 минут назад, vasek00 сказал: Кого и куда? не пускает в панель Transmission из интернета. Доменное имя прописано, все работало до того как поставил DNSCrypt Edited June 20, 2018 by Boomer Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.