dnscrypt-proxy


Описание dnscrypt-proxy

dnscrypt-proxy — это гибкий DNS-прокси с поддержкой современных зашифрованных DNS-протоколов, таких, как DNSCrypt v2, DNS-over-HTTPS и Anonymized DNSCrypt.

У программы открыт исходный код, также программа доступна в виде предварительно скомпилированных двоичных файлов для большинства операционных систем и архитектур.

Характеристики:

  • Шифрование и аутентификация DNS-трафика. Поддерживает DNS-over-HTTPS (DoH) с использованием TLS 1.3, DNSCrypt и анонимного DNS
  • IP-адреса клиентов могут быть скрыты с помощью Tor, SOCKS-прокси или анонимных DNS-ретрансляторов
  • Мониторинг DNS-запросов с отдельными файлами журналов для обычных и подозрительных запросов
  • Фильтрация: блокируйте рекламу, вредоносное ПО и другой нежелательный контент. Совместим со всеми службами DNS
  • Фильтрация по времени с гибким недельным расписанием
  • Прозрачное перенаправление определённых доменов на определённые резолверы
  • Кэширование DNS для уменьшения задержки и повышения конфиденциальности
  • Локальная блокировка IPv6 для уменьшения задержки в сетях только с IPv4
  • Балансировка нагрузки: выберите набор резолверов, dnscrypt-proxy будет автоматически измерять и отслеживать их скорость, а также балансировать трафик между самыми быстрыми из доступных.
  • Маскировка: как файл HOSTS на стероидах, который может возвращать предварительно настроенные адреса для определённых имён или разрешать и возвращать IP-адреса других имён. Это можно использовать для локальной разработки, а также для обеспечения безопасных результатов поиска в Google, Yahoo, DuckDuckGo и Bing.
  • Автоматическое обновление списков резолверов в фоновом режиме
  • Может заставить исходящие соединения использовать TCP
  • Совместим с DNSSEC
  • Включает локальный сервер DoH для поддержки ECHO (ESNI)

Домашняя страница: https://dnscrypt.info/

Автор: DNSCrypt project

Лицензия: ISC

Справка по dnscrypt-proxy

В первую очередь dnscrypt-proxy применяется в качестве постоянно работающей в фоне службы, к которой обращаются программы для преобразования имени хоста в IP адрес. Но также dnscrypt-proxy можно запустить как утилиту командной строки.

Использование:

dnscrypt-proxy ОПЦИИ

Опции:

  -check
    	Проверить конфигурационный файл и выйти
  -child
    	Вызывает программу как дочерний процесс
  -config СТРОКА [путь до файла]
    	Путь до конфигурационного файла (по умолчанию "dnscrypt-proxy.toml")
  -json
    	Вывести список как JSON
  -list
    	Вывести список доступных преобразователей (резолверов) для включённых фильтров
  -list-all
    	Напечатать полный список доступных резолверов, игнорируя фильтры
  -logfile СТРОКА [путь до файла]
    	Записывать журнал приложения в казанный файл
  -logfile-truncate
    	Обрезать файл журнала приложения; хранить только данные о последнем запуске приложения
  -loglevel ЗНАЧЕНИЕ
    	Уровень журнала приложения (0-6) (по умолчанию 2)
  -netprobe-timeout ЧИСЛО
    	Переписать таймаут netprobe (по умолчанию 60)
  -pidfile  СТРОКА [путь до файла]
    	Если указан, записывать pid в этот файл.
  -resolve  СТРОКА
    	Преобразовывать имя используя системные библиотеки
  -service СТРОКА
    	Управление системны сервисом: ["start" "stop" "restart" "install" "uninstall"]
  -show-certs
    	Распечатать хэши цепочки сертификатов DoH
  -syslog
    	Отправлять журналы приложений в локальный системный журнал (журнал событий (Eventlog) в Windows, системный журнал (syslog) в Unix)
  -version
    	Напечатать текущую версию прокси

Руководство по dnscrypt-proxy

Страница man отсутствует.


Конфигурационный файл dnscrypt-proxy

Ниже показан пример конфигурационного файла dnscrypt-proxy с пояснениями. Все комментарии в нём переведены на русский.


##############################################
#                                            #
#        конфигурация dnscrypt-proxy        #
#                                            #
##############################################

## Это пример конфигурационного файла.
## Вам следует подправить его под свои потребности и сохранить как "dnscrypt-proxy.toml"
##
## Онлайн документация доступна здесь: https://dnscrypt.info/doc



##################################
#         Глобальные настройки        #
##################################

## Список серверов для использования
##
## Сервера из источника "public-resolvers" (смотрите ниже) можно
## посмотреть здесь: https://dnscrypt.info/public-servers
##
## Прокси автоматически отберёт из этого списка рабочие сервера.
## Помните, что фильтры require_* НЕ применяются при использовании этих настроек.
##
## По умолчанию этот список пустой и вместо него будут использованы все
## зарегистрированные сервера, удовлетворяющие фильтрам require_*.
##
## В первую очередь удалите начальный # чтобы включить эту настройку; строки, начинающиеся с #, игнорируются.

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


## Список локальных адресов и портов для прослушивания. Могут быть IPv4 и/или IPv6.
## Пример при использовании IPv4 и IPv6:
## listen_addresses = ['127.0.0.1:53', '[::1]:53']

listen_addresses = ['127.0.0.1:53']


## Максимальное число одновременно принимаемых подключений от клиентов

max_clients = 2500


## Переключиться на другого системного пользователя после того, как прослушивающий сокет был создан.
## Примечание (1): в настоящее время эта функция не поддерживается в Windows.
## Примечание (2): эта функция не совместима с активацией сокета systemd.
## Примечание (3): при использовании -pidfile, директория с файлом PID должна быть доступной для записи новому пользователю

# user_name = 'nobody'


## Определённые критерии, которым должны удовлетворять сервера (из статичных + удалённых источников)

# Использовать сервера, доступные по IPv4
ipv4_servers = true

# Использовать сервера, доступные по IPv6 — не включайте, если у вас нет IPv6 подключения
ipv6_servers = false

# Использовать сервера, реализующие DNSCrypt протокол
dnscrypt_servers = true

# Использовать сервера, реализующие DNS-over-HTTPS протокол
doh_servers = true


## Требовать, чтобы серверы, определённые удалёнными источниками, удовлетворяли определенным свойствам

# Сервер должен поддерживать расширения безопасности DNS (DNSSEC)
require_dnssec = false

# Сервера на должны вести журнал пользовательской активности (с их слов)
require_nolog = true

# Сервер не должен применять собственный чёрный список (для родительского контроля, блокировки рекламы и прочего)
require_nofilter = true

# Имена серверов, которые нужно избегать даже если они удовлетворяют всем критериям
disabled_server_names = []


## Всегда использовать TCP для подключения к вышестоящим серверам.
## Это может быть полезным, если вам нужно перенаправлять весь трафик через Tor.
## В противном случае, оставьте значение на `false`, поскольку это не улучшает безопасности
## (dnscrypt-proxy всегда шифрует всё, даже при использовании UDP), и можоет
## только увеличить время задержки.

force_tcp = false


## SOCKS прокси
## Раскомментируйте следующие строки для перенаправления всех TCP подключений к локальной ноде Tor
## Tor не поддерживает UDP, поэтому также установите `force_tcp` на `true`.

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


## HTTP/HTTPS прокси
## Только для DoH серверов

# http_proxy = 'http://127.0.0.1:8888'


## Как долго DNS запрос будет ждать ответа, в миллисекундах.
## Если у вас сеть с *сильной* задержкой, вам может понадобиться
## увеличить это. Запуск может стать медленнее, если вы увеличите это.
## Не увеличивайте слишком сильно. 10000 это самая высокая разумная величина.

timeout = 5000


## Keepalive для HTTP (HTTPS, HTTP/2) запросов, в секундах

keepalive = 30


## Ответ на заблокированные запросы.  Опции: `refused`, `hinfo` (по умолчанию) или
## определённый заранее IP.  Чтобы дать IP-ответ, используйте формат `a:<IPv4>,aaaa:<IPv6>`.
## Использование опции `hinfo` означает, что некоторые ответы будут ложью.
## К сожалению, опция `hinfo`, по видимому, требуется для Android 8+

# blocked_query_response = 'refused'


## Стратегия балансировки нагрузки: 'p2' (по умолчанию), 'ph', 'first' или 'random'

# lb_strategy = 'p2'

## Установите значение `true`, чтобы постоянно пытаться оценить задержку всех резолверов.

# lb_estimator = true


## Уровень ведения журнала (0-6, по умолчанию: 2. Вариант 0 это очень подробный, 6 содержит только фатальные ошибки)

# log_level = 2


## Файл журнала для приложения, альтернатива отправки записей журнала в
## стандартную службу системного журнала (syslog/Windows event log).
##
## Этот файл отличается от других файлов журнала, и не будет
## автоматически ротироваться приложением.

log_file = '/var/log/dnscrypt-proxy/dnscrypt-proxy.log'


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

# log_file_latest = true


## Использовать системный логер (syslog на Unix, Event Log на Windows)

use_syslog = true


## Задержка, в минутах, после которой сертификаты перезагружаются

cert_refresh_delay = 240


## DNSCrypt: Создать новый, уникальный ключ для каждого отдельного DNS запроса
## Это может улучшить приватность, но также имеет значительное воздействие на использоцание центрального процессора
## Включайте только если у вас не слишком большая нагрузка на сеть

# dnscrypt_ephemeral_keys = false


## DoH: Отключить сессионные тикеты TLS — увеличивает приватность, но также и задержку

# tls_disable_session_tickets = false


## DoH: Использовать определённый набор шифров вместо предпочитаемого сервером
## 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
##  4865 = TLS_AES_128_GCM_SHA256
##  4867 = TLS_CHACHA20_POLY1305_SHA256
##
## На не-Intel ЦПУ, таких как роутеры MIPS и системы ARM (Android, Raspberry Pi...),
## следующий набор улучшает производительность.
## Он также может помочь на ЦПУ Intel CPU работающих с 32-битными операционными системами.
##
## Держите tls_cipher_suite пустым если у вас проблемы с получением источников или
## подключению к DoH серверам. Google и Cloudflare работают с ними нормально.

# tls_cipher_suite = [52392, 49199]


## Резервные резолверы
## Это обычные, не шифрующие DNS серверы, которые будут использовать только
## для одноразового запроса при получении начального списка серверов, и
## только если системная конфигурация DNS не работает.
## Никакие запросы пользовательских приложений никогда не будут утекать через эти преобразователи,
## и они не будут использоваться после того, как для URL серверов найдены IP адреса.
## Они никогда не будут использоваться, если списки уже были кэшированы, и если метки
## не включают имена хостов без IP адресов.
## Они не будут использоваться, если настроенная система DNS работает.
## Рекомендуются резолверы, поддерживающие DNSSEC.
##
## Людям в Китае может понадобиться использовать здесь 114.114.114.114:53.
## Другие популярные варианты включают 8.8.8.8 и 1.1.1.1.
##
## Если указан более чем один DNS сервер, то они будут попробованы в указанной последовательности.

fallback_resolvers = ['8.8.8.8:53', '8.8.4.4:53']


## Всегда использовать запасные DNS сервера перед системными DNS настройками.

ignore_system_dns = true


## Максимальное время (в секундах) ожидания сетевого подключения перед
## инициализацией прокси.
## Полезно если прокси автоматически запускается при загрузке, а сетевое
## подключение не гарантировано немедленно доступно.
## Используйте 0 для выключения вовсе тестирования возможности подключения (не рекомендуется),
## и -1 для ожидания так долго, насколько это возможно.

netprobe_timeout = 60

## Адрес и порт, чтобы попытаться установить соединение, только для проверки
## работает ли сеть. Это может быть любой адрес и любой порт, даже если
## на другой стороне нечему ответить. Только не используйте
## локальный адрес, поскольку цель в проверке возможности подключения к Интернету.
## В Windows будет отправлена датаграмма с одним, nul байтом, только
## когда система запускается.
## На других операционных системах будет инициализировано подключение,
## но ничего не будет отправлено.

#netprobe_address = '9.9.9.9:53'
netprobe_address = '8.8.8.8:53'


## Офлайн режим — Не использовать никакие удалённые зашифрованные серверы.
## Сервер будет оставаться полностью функциональным для ответа на запросы, которые
## напрямую может обрабатывать плагин (forwarding, cloaking, ...)

# offline_mode = false


## Дополнительные данные для присоединения к исходящим запросам.
## Эта строка будет добавлена к запросам как TXT записи.
## Не используйте, кроме как на серверах, которые явно запрашивают присутствие
## дополнительных данных.
## encrypted-dns-server может быть настроен для использования этого в качестве контроля доступа
## в разделе [access_control]

# query_meta = ["key1:value1", "key2:value2", "token:MySecretToken"]


## Автоматическая ротация файлов журналов

# Максимальный размер файлов журналов в MB — Установите на 0 для неограниченного.
log_files_max_size = 10

# Как долго хранить хранить файлы резервных копий, в днях
log_files_max_age = 7

# Максимум хранимых копий резервных файлов (или 0 чтобы хранить все бэкапы)
log_files_max_backups = 1



#########################
#        Фильтры        #
#########################

## Примечание: если вы используете dnsmasq, то отключите опцию `dnssec` в dnsmasq если вы
## настроили dnscrypt-proxy делать любого рода фильтрацию (включая фильтры
## ниже и чёрные списки).
## Вы ещё можете выбрать резолверы, которые делают DNSSEC валидацию.


## Немедленно ответить на связанные с IPv6 запросы пустым ответом
## Это ускоряет когда нет IPv6 подключения, но также может
## проблемы с надёжностью на некоторых серверах-заглушках.

block_ipv6 = false


## Немедленно отвечать на запросы A и AAAA для имён хостов без имени домена

block_unqualified = true


## Немедленно отвечать на запросы для local zones вместо того, чтобы выпускать их на вышестоящие
## преобразователи имён (такие запросы в любом случае всегда вызывают ошибки или тайм-ауты).

block_undelegated = true


## TTL для синтетических ответов, отправленных, когда запрос был заблокирован (из-за
## IPv6 или чёрных списков).

reject_ttl = 600



##################################################################################
#        Направлять запросы для определенных доменов на выделенный набор серверов       #
##################################################################################

## Смотрите примеры в файле `example-forwarding-rules.txt`

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



###############################
#        Cloaking правила       #
###############################

## Маскировка (cloaking) возвращает предопределённый адрес для определённого имени.
## В дополнении к действию как HOSTS файл, программа также может вернуть IP адрес
## другого имени. Программа также выполнит выравнивание CNAME.
##
## Смотрите примеры в файле `example-cloaking-rules.txt`

# cloaking_rules = '/etc/dnscrypt-proxy/cloaking-rules.txt'

## TTL используемый когда ответы отправлены с задействованием файла cloaking-rules.txt

# cloak_ttl = 600


###########################
#        DNS кэш        #
###########################

## Включить DNS для уменьшения задержки и исходящего трафика

cache = true


## Размер кэша

cache_size = 4096


## Минимальное TTL для кэшированных записей

cache_min_ttl = 2400


## Максимальное TTL для кэшированных записей

cache_max_ttl = 86400


## Минимальное TTL для негативно кэшированных записей

cache_neg_min_ttl = 1


## Максимальное TTL для негативно кэшированных записей

cache_neg_max_ttl = 60



##################################
#        Локальный DoH сервер        #
##################################

[local_doh]

## dnscrypt-proxy может работать как локальный DoH сервер. Таким образом, веб-браузеры,
## требующие прямого подключения к серверу DoH для включения некоторых
## функций, будут включать их, не обходя ваш прокси-сервер DNS.

## Адрес, который должен прослушивать локальный DoH сервер

# listen_addresses = ['127.0.0.1:3000']


## Путь до URL DoH. Это не файл, а путь после имени хоста
## в URL. По соглашению, часто выбирается `/dns-query`.
## Для каждого `listen_address` полный URL для доступа к серверу будет:
## `https://<АДРЕС_ПРОСЛУШИВАНИЯ><ПУТЬ>` (например: `https://127.0.0.1/dns-query`)

# path = "/dns-query"


## Файл сертификата и ключ — Помните, что сертификат должен быть в доверенных.
## Смотрите документацию (wiki) для дополнительной информации.

# cert_file = "/var/lib/dnscrypt-proxy/localhost.pem"
# cert_key_file = "/var/lib/dnscrypt-proxy/localhost.pem"



###############################
#        Ведение журнала запросов        #
###############################

## Записывать клиентские запросы в файл

[query_log]

  ## Путь до файла журнала запросов (абсолютный или относительный к той же самой директории, где конфигурационный файл)
  ## На не-Windows системах, может быть /dev/stdout для вывода журнала в стандартный вывод (также установите log_files_max_size на 0)

  # file = '/var/log/dnscrypt-proxy/query.log'


  ## Формат журнала запросов (в настоящее время поддерживаются: tsv и ltsv)

  format = 'tsv'


  ## Не записывать в журнал эти типы запросов для уменьшения подробности. Оставьте пустым для записи всего.

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



############################################
#        Запись в журнал подозрительных запросов        #
############################################

## Журнал запросов несуществующих зон
## Эти запросы могут раскрыть присутствие вредоносного ПО, сломанных/устаревших приложений,
## и устройств, сигнализирующих о своём присутствии третьим сторонам.

[nx_log]

  ## Путь до файла журнала запросов (абсолютный или относительный к той же самой директории, где конфигурационный файл)

  # file = '/var/log/dnscrypt-proxy/nx.log'


  ## Формат журнала запросов (в настоящее время поддерживаются: tsv и ltsv)

  format = 'tsv'



######################################################
#        Блокировка на основе шаблонов (чёрные списки)        #
######################################################

## Чёрные списки сделаны как один шаблон на строку. Примеры действительных шаблонов:
##
##   example.com
##   =example.com
##   *sex*
##   ads.*
##   ads*.example.*
##   ads*.example[0-9]*.com
##
## Примеры файлов чёрных списков могут быть найдены в https://download.dnscrypt.info/blacklists/
## Скрипт для сборки чёрных список из публичных фидов может быть найден в директории
## `utils/generate-domains-blacklists` исходного кода dnscrypt-proxy.

[blacklist]

  ## Путь до файла с правилами блокировки (абсолютный или относительный к той же самой директории, где конфигурационный файл)

  # blacklist_file = '/etc/dnscrypt-proxy/blacklist.txt'


  ## Опциональный путь к файлу ведения журнала заблокированных запросов

  # log_file = '/var/log/dnscrypt-proxy/blocked.log'


  ## Необязательный формат журнала: tsv или ltsv (по умолчанию: tsv)

  # log_format = 'tsv'



###########################################################
#        Блокировка по IP на основе шаблонов (чёрный список IP)        #
###########################################################

## Чёрные списки IP делаются в виде одного шаблона на строку. Примеры действительных шаблонов:
##
##   127.*
##   fe80:abcd:*
##   192.168.1.4

[ip_blacklist]

  ## Путь до файла с правилами блокировки (абсолютный или относительный к той же самой директории, где конфигурационный файл)

  # blacklist_file = '/etc/dnscrypt-proxy/ip-blacklist.txt'


  ## Опциональный путь к файлу ведения журнала заблокированных запросов

  # log_file = '/var/log/dnscrypt-proxy/ip-blocked.log'


  ## Необязательный формат журнала: tsv или ltsv (по умолчанию: tsv)

  # log_format = 'tsv'



######################################################
#   Белые списки на основе шаблонов (списки разрешённых сайтов)   #
######################################################

## Белые списки поддерживают те же шаблоны, что и чёрные списки
## Если имя совпадает с записью в белом списке, соответствующая сессия
## обойдёт фильтры имён и IP.
##
## Также поддерживаются правила, основанные на времени, чтобы некоторые веб-сайты были доступны только в определённое время дня.

[whitelist]

  ## Путь до файла с правилами белого списка (абсолютный или относительный к той же самой директории, где конфигурационный файл)

  # whitelist_file = '/etc/dnscrypt-proxy/whitelist.txt'


  ## Опциональный путь к файлу ведения журнала заблокированных запросов

  # log_file = '/var/log/dnscrypt-proxy/whitelisted.log'


  ## Необязательный формат журнала: tsv или ltsv (по умолчанию: tsv)

  # log_format = 'tsv'



##########################################
#        Ограничения доступа по времени        #
##########################################

## Здесь можно определить одно или несколько недельных расписаний.
## Шаблоны в списке блокировки основанном на именах могут опционально быть дополнены строкой @ИМЯ_РАСПИСАНИЯ
## для применения шаблона 'ИМЯ_РАСПИСАНИЯ' только когда он совпадает с интервалом времени этого расписания.
##
## Например, следующее правило в файле чёрного списка:
## *.youtube.* @time-to-sleep
## заблокирует доступ на YouTube в период времени, определённый расписанием 'time-to-sleep'.
##
## {after='21:00', before= '7:00'} сработает в 0:00-7:00 и 21:00-0:00
## {after= '9:00', before='18:00'} сработает в 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'}]



#########################
#        Сервера        #
#########################

## Удалённые списки доступных серверов
## Одновременно можно использовать несколько источников, но каждый источник
## требует выделенного файла кэша.
##
## Обратитесь к документации по URL публичных источников.
##
## К именам серверов может быть добавлен префикс, чтобы
## исключить коллизии, если одинаковые сервера встречают н
## различных источниках. В этом случае имена, перечисленные в `server_names`
## должны включать эти префисы.
##
## Если свойство `urls` отсутствует, файлы кэша и действительных подписей
## уже должны присутствовать. Это не предотвращает эти файлы кэша от
## истечения срока годности после `refresh_delay` часов.

[sources]

  ## Пример удалённого источника от 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 = '/var/cache/dnscrypt-proxy/public-resolvers.md'
  minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3'
  prefix = ''

  ## Анонимизированные DNS-ретранслятор

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

  ## Quad9 через DNSCrypt - https://quad9.net/

  # [sources.quad9-resolvers]
  # urls = ['https://www.quad9.net/quad9-resolvers.md']
  # minisign_key = 'RWQBphd2+f6eiAqBsvDZEBXBGHQBJfeG6G+wJPPKxCZMoEQYpmoysKUN'
  # cache_file = '/var/cache/dnscrypt-proxy/quad9-resolvers.md'
  # prefix = 'quad9-'

  ## Другой пример источника, с резолверами, цензурирующими некоторые веб-сайты, не подходящие для детей.
  ## Это подмножество списка `public-resolvers`, поэтому включение обоих бесполезно

  #  [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 = '/var/cache/dnscrypt-proxy/parental-control.md'
  #  minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3'



#########################################
#        Серверы с известными багами        #
#########################################

[broken_implementations]

# В настоящее время серверы Cisco не могут обрабатывать запросы размером более 1472 байтов и не
#  усекают ответы, размер которых превышает размер запросов, как того требует протокол DNSCrypt.
# Это предотвращает получение больших ответов по UDP и через ретранслятор.
#
# По сервера `dnsdist` отбрасывает запросы клиентов больше чем 1500 байт.
# Они это знают и работают над исправлением.
#
# Приведённый ниже костыль позволяет сделать использование без ретрансляторов более надёжным
# пока указанные серверы не исправлены.

fragments_blocked = ['cisco', 'cisco-ipv6', 'cisco-familyshield', 'cisco-familyshield-ipv6', 'quad9-dnscrypt-ip4-filter-alt', 'quad9-dnscrypt-ip4-filter-pri', 'quad9-dnscrypt-ip4-nofilter-alt', 'quad9-dnscrypt-ip4-nofilter-pri', 'quad9-dnscrypt-ip6-filter-alt', 'quad9-dnscrypt-ip6-filter-pri', 'quad9-dnscrypt-ip6-nofilter-alt', 'quad9-dnscrypt-ip6-nofilter-pri', 'cleanbrowsing-adult', 'cleanbrowsing-family-ipv6', 'cleanbrowsing-family', 'cleanbrowsing-security']



#################################################################
#        Аутентификация клиентов на основе сертификата для DoH        #
#################################################################

# Используйте X509 сертификат для аутентификации себя когда подключаетесь к серверам DoH.
# Это полезно только если вы работаете со своим собственным, приватным DoH сервером.
# 'creds' сопоставляет сервера к сертификатам, и поддерживает множество записей.
# Если вы не используете стандартные корневые CA, опциональное свойство "root_ca"
# устанавливает путь до файла CRT, его можно добавить к записи о сервере.

[doh_client_x509_auth]

#
# creds = [
#    { server_name='myserver', client_cert='client.crt', client_key='client.key' }
# ]



################################
#        Анонимный DNS        #
################################

[anonymized_dns]

## Маршруты — это косвенные способы доступа к серверам DNSCrypt.
##
## Маршрут сопоставляет имя сервера («имя_сервера») одному или нескольким ретранслятор, которые
## будут использоваться для подключения к этому серверу.
##
## Ретранслятор может быть указан как DNS Stamp (как relay stamp или
## DNSCrypt stamp), IP:port, ИМЯ_ХОСТА:ПОРТ или имя сервера.
##
## Следующие примеры маршрутов "example-server-1" через `anon-example-1` или `anon-example-2`,
## and "example-server-2" через через ретранслятор чей ретранслятор имеет DNS stamp
## "sdns://gRIxMzcuNzQuMjIzLjIzNDo0NDM".
##
## !!! ЭТО ПРОСТО ПРИМЕРЫ !!!
##
## Просмотрите список доступных ретрансляторов в файле «relays.md» и для каждого сервера, который

## вы хотите использовать, определите ретранслятор, через которые будут проходить соединения.
##
## Тщательно выбирайте ретрансляторы и серверы, чтобы они управлялись разными юридическими лицами.
##
## "server_name" также может быть установлено "*" для определения маршрута по умолчанию, но это не
## рекомендуется. Если вы так делаете, храните "server_names" коротким и отличным от ретрансляторов.

# routes = [
#    { server_name='example-server-1', via=['anon-example-1', 'anon-example-2'] },
#    { server_name='example-server-2', via=['sdns://gRIxMzcuNzQuMjIzLjIzNDo0NDM'] }
# ]


# пропустить резолверы, несовместимые с анонимизацией, вместо того, чтобы использовать их напрямую

skip_incompatible = false



###############################
#            DNS64            #
###############################

## DNS64 — это механизм для синтеза записей AAAA из записей A.
## Он используется с транслятором IPv6/IPv4 для включения клиент-сервер
## коммуникации между только IPv6 клиентом и только IPv4 сервером,
## не требуя никаких изменений как на IPv6, так и на IPv4 узле,
## для класса приложений, которые работают через NAT.
##
## Имеется две опции для синтеза таких записей:
## Опция 1: Используя набор статичных IPv6 префиксов;
## Опция 2: Путём обнаружения IPv6 префиксов из резолверов с поддержкой DNS64.
##
## Если настроены обе опции, то используются только статичные префиксы.
## (Ref. RFC6147, RFC6052, RFC7050)
##
## Не включайте, если вы не знаете что такое DNS64 и почему вам это нужно, иначе
## вы вообще не сможете ни к чему подключиться.

[dns64]

## (Опция 1) Статичный префикс(ы) как Pref64::/n в CIDR.
# prefix = ["64:ff9b::/96"]

## (Опция 2) Резолвер(ы) с включённым DNS64 для обнаружения Pref64::/n CIDR.
## Эти резолверы используются для запросов только Well-Known IPv4 Name (WKN) "ipv4only.arpa." только для обнаружения.
## Установите с резолверами вашего ISP в случае ваших собственных префиксов (отличный от Well-Known Prefix 64:ff9b::/96).
## ВАЖНО: Дефолтные резолверы перечисленные ниже поддерживают только Well-Known Prefix 64:ff9b::/96.
# resolver = ["[2606:4700:4700::64]:53", "[2001:4860:4860::64]:53"]



########################################
#            Статичные записи            #
########################################

## Опциональный, локальный, статичный список дополнительных серверов
## Больше всего полезен для тестирования ваших собственных серверов

[static]

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

  # [static.'myserver']
  # stamp = 'sdns:AQcAAAAAAAAAAAAQMi5kbnNjcnlwdC1jZXJ0Lg'

Примеры запуска dnscrypt-proxy

Для полноценной работы программы требуется её настройка, подробности смотрите в разделе «Инструкции по dnscrypt-proxy».

Вывести список используемых преобразователей (DNS серверов) (-list) на основе указанного конфигурационного файла (/etc/dnscrypt-proxy/dnscrypt-proxy.toml) — список формируется с учётом фильтров, установленных в конфигурационном файле, то есть это перечень фактически используемых DNS серверов для преобразования запросов в системе:

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

Пример вывода:

google

Установка dnscrypt-proxy

Установка в Kali Linux

sudo apt install dnscrypt-proxy

ВНИМАНИЕ: Если при выполнении предыдущей команды вы получили ошибку «E: Невозможно найти пакет dnscrypt-proxy» (на английском «E: Unable to locate package dnscrypt-proxy»), то пропустите данный раздел и обратитесь к статье Ошибка «E: Невозможно найти пакет dnscrypt-proxy» в Kali Linux и Debian (РЕШЕНО)

Установка в BlackArch

sudo pacman -S dnscrypt-proxy

Для полноценной работы программы требуется её настройка, подробности смотрите в разделе «Инструкции по dnscrypt-proxy».

Информацию об установке в Windows и другие операционные смотрите в разделе «Инструкции по dnscrypt-proxy».

Скриншоты dnscrypt-proxy

Инструкции по dnscrypt-proxy


Близкие программы:

  • Privoxy (91.8%)
  • Tor Messenger (74.4%)
  • Tor Browser (74.4%)
  • ProxyChains-NG (74.4%)
  • Tor (74.4%)
  • dns2proxy (RANDOM - 8.2%)
  • Рекомендуется Вам:

    Comments are Closed