Использовать системный резолвер в случае недоступности dns сервера с шифрованием dnscrypt что это
Перейти к содержимому

Использовать системный резолвер в случае недоступности dns сервера с шифрованием dnscrypt что это

  • автор:

DNS-провайдеры

DNS-провайдеры cover image

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

Рекомендованные провайдеры¶

Критерии¶

Обратите внимание, что у нас нет связей ни с одним проектом, которые мы рекомендуем. В дополнение к нашим стандартным критериям мы разработали четкий набор требований, позволяющий давать объективные рекомендации. Мы рекомендуем ознакомиться с данным списком перед выбором и провести самостоятельное исследование, чтобы убедиться, что для вас это правильный выбор.

Это новый раздел

Мы работаем над установлением определенных критериев для каждого раздела сайта, и они могут поменяться в будущем. Если у вас есть вопросы относительно наших критериев, задайте вопрос на нашем форуме, и не считайте, что мы что-то не учли при составлении наших рекомендаций, если это не указано здесь. Перед тем, как рекомендовать какой-либо проект мы учитываем и обсуждаем множество факторов. Документирование этих факторов ещё не завершено.

  • Поддержка DNSSEC .
  • Минимизация QNAME .
  • Позволяет отключить ECS .
  • Предпочтительна поддержка anycast или поддержка гео-позиционирования.

Нативная поддержка в операционных системах¶

Android¶

Android 9 и новее поддерживает DNS over TLS . Его можно включить в НастройкахСеть и интернетЧастный DNS -сервер.

Устройства Apple¶

Последние версии iOS, iPadOS, tvOS и macOS поддерживают протоколы DoT и DoH . Оба протокола можно настроить при помощи профилей конфигурации или API настроек DNS .

После установки профиля конфигурации или приложения, использующего API настроек DNS , можно выбрать конфигурацию DNS . Если включен VPN , будут использоваться настройки DNS вашего VPN -сервиса, а не системные настройки.

Подписанные профили¶

Apple не предоставляет нативного интерфейса для создания профилей зашифрованного DNS . Secure DNS profile creator — это неофициальный инструмент создания собственных профилей зашифрованного DNS , однако они не будут подписаны. Предпочтительнее использовать подписанные профили, так как подпись подтверждает надёжность источника профиля и помогает обеспечить его целостность. Зеленая метка «Проверено» присваивается подписанным профилям конфигурации. Чтобы получить больше информации о подписанном коде, смотрите статью «О подписывании кода». Подписанные профили предлагают AdGuard, NextDNS и Quad9.

systemd-resolved , используемый во многих дистрибутивах Linux для DNS -запросов, всё еще не поддерживает DoH . Если вы хотите использовать DoH , вам следует установить dnscrypt-proxy и настроить его для обработки всех DNS -запросов в системе по протоколу HTTPS .

Зашифрованные DNS -прокси¶

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

RethinkDNS¶

RethinkDNS — это открытый Android-клиент, поддерживающий DNS -over- HTTPS , DNS -over- TLS , DNSCrypt и DNS -прокси, кеширование, локальное сохранение истории DNS -запросов, а также может использоваться как файрвол.

dnscrypt-proxy¶

dnscrypt-proxy — это DNS -прокси с поддержкой DNSCrypt, DNS -over- HTTPS и анонимизированного DNS .

Функция анонимизированного DNS не анонимизирует весь остальной трафик.

Решения для самостоятельного хостинга¶

DNS с самостоятельным хостингом полезно для обеспечения фильтрации на управляемых платформах, таких как телевизоры Smart TV и устройства IoT (Internet of Things — Интернет вещей), поскольку для этого не требуется клиентское ПО.

AdGuard Home¶

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

AdGuard Home предлагает продуманный интерфейс для просмотра развёрнутых отчетов и управления блокировкой контента.

Pi-hole¶

Pi-hole — это открытая DNS -воронка, которая использует фильтрацию DNS , чтобы блокировать такой нежелательный контент, как реклама.

Pi-hole создана для развертывания на Raspberry Pi, но она не требует именно такого специфичного оборудования. Решение предлагает дружелюбный веб-интерфейс для просмотра подробных отчетов и управления блокировкой контента.

  1. AdGuard хранит показатели производительности их DNS серверов, содержащие в себе количество выполненных запросов к определенному серверу, количество заблокированных запросов и скорость обработки. Они также ведут и хранят базу данных доменов, запрошенных в течение последних 24 часов. «Нам нужна эта информация, чтобы выявлять и блокировать новые трекеры и угрозы.» «Также мы храним информацию о том, сколько раз тот или иной трекер был заблокирован. Нам нужна эта информация, чтобы удалять устаревшие правила из наших фильтров.» https://adguard.com/en/privacy/dns.html↩
  2. Cloudflare собирает и хранит только DNS -запросы, направленные на 1.1.1.1. Сервис не хранит персональные данные; большая часть неперсональных данных хранится только в течение 25 часов. https://developers.cloudflare.com/1.1.1.1/privacy/public-dns-resolver/↩
  3. Control D ведет логи только на Premium-серверах с пользовательскими DNS -профилями. Бесплатные сервера не ведут логов. https://controld.com/privacy↩
  4. DNS -сервера Mullvad доступны и для пользователей Mullvad VPN , и для остальных пользователей Интернета. Их политика конфиденциальности утверждает, что они ни в каком виде не сохраняют DNS -запросы. https://mullvad.net/en/help/no-logging-data-policy/↩
  5. NextDNS предоставляет функции анализа и логирования по желанию. Вы можете самостоятельно выбрать время и место хранения ваши логов. Если же специально это не настраивать, никакие данные сохраняться не будут. https://nextdns.io/privacy↩↩↩
  6. Quad9 собирает некоторые данные в целях обнаружения угроз и реагирования на них. Эти данные могут быть изменены и переданы, например, в целях исследования безопасности. Quad9 не собирает и не хранит IP -адреса и другую информацию, которую они считают идентифицирующей пользователя. https://www.quad9.net/privacy/policy/↩

Вы просматриваете русскую копию Privacy Guides, переведённую нашей невероятной командой переводчиков на Crowdin. Если вы нашли ошибку или непереведённые разделы на этой странице, пожалуйста, помогите нам! Для получения дополнительной информации и советов см. наше руководство по переводу.

You’re viewing the Russian copy of Privacy Guides, translated by our fantastic language team on Crowdin. If you notice an error, or see any untranslated sections on this page, please consider helping out! For more information and tips see our translation guide.

Privacy Guides — некоммерческий сайт, предоставляющий информацию по защите безопасности и конфиденциальности ваших данных.
Мы не зарабатываем на рекомендациях определенных продуктов и не используем партнерские ссылки.
© 2019 — 2023 Privacy Guides и поддерживающие.

Содержание доступно под лицензией CC BY-ND 4.0.

Обзор DNS

Система доменных имен — это «телефонная книга Интернета». DNS переводит доменные имена в IP адреса, чтобы браузеры и другие службы могли загружать интернет-ресурсы, через децентрализованную сеть серверов.

Что такое DNS ?¶

Когда вы посещаете веб-сайт, вам возвращается числовой адрес. Например, при посещении сайта privacyguides.org возвращается адрес 192.98.54.105 .

DNS существует с первых дней существования Интернета. DNS -запросы, направляемые на DNS -серверы и от них, обычно не зашифрованы. Клиент получает серверы от провайдера через DHCP по месту жительства.

Незашифрованные DNS запросы могут быть легко подсмотрены и изменены во время передачи. В некоторых частях мира интернет-провайдеры обязаны осуществлять примитивную DNS -фильтрацию. Когда вы запрашиваете IP -адрес домена, который заблокирован, сервер может не ответить или ответить другим IP -адресом. Поскольку протокол DNS не зашифрован, провайдер (или любой оператор сети) может использовать DPI для мониторинга запросов. Интернет-провайдеры также могут блокировать запросы на основе общих характеристик, независимо от того, какой DNS -сервер используется. Незашифрованный DNS всегда использует порт 53 и UDP .

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

Незашифрованный DNS ¶

  1. Используя tshark (часть проекта Wireshark), мы можем отслеживать и записывать поток интернет-пакетов. Эта команда записывает пакеты, которые соответствуют заданным правилам:
tshark -w /tmp/dns.pcap udp port 53 and host 1.1.1.1 or host 8.8.8.8 

Linux, macOS Windows

dig +noall +answer privacyguides.org @1.1.1.1 dig +noall +answer privacyguides.org @8.8.8.8 
nslookup privacyguides.org 1.1.1.1 nslookup privacyguides.org 8.8.8.8 

Wireshark tshark

wireshark -r /tmp/dns.pcap 
tshark -r /tmp/dns.pcap 

Если вы pfgecnbnt приведенную выше команду Wireshark, на верхней панели отобразится «frames», а на нижней — все данные о выбранном кадре(frame). Корпоративные решения для фильтрации и мониторинга (например, те, которые приобретаются правительствами) могут выполнять этот процесс автоматически, без участия человека, и могут собирать эти frames для получения статистических данных, полезных для сетевого наблюдателя.

Время Источник Назначение Протокол Длина Инфо.
1 0.000000 192.0.2.1 1.1.1.1 DNS 104 Standard query 0x58ba A privacyguides.org OPT
2 0.293395 1.1.1.1 192.0.2.1 DNS 108 Standard query response 0x58ba A privacyguides.org A 198.98.54.105 OPT
3 1.682109 192.0.2.1 8.8.8.8 DNS 104 Standard query 0xf1a9 A privacyguides.org OPT
4 2.154698 8.8.8.8 192.0.2.1 DNS 108 Standard query response 0xf1a9 A privacyguides.org A 198.98.54.105 OPT

Наблюдатель может изменить любой из этих пакетов.

Что такое «зашифрованный DNS «?¶

Зашифрованный DNS может относиться к одному из нескольких протоколов, наиболее распространенными из которых являются:

DNSCrypt¶

DNSCrypt был одним из первых методов шифрования DNS -запросов. DNSCrypt работает через порт 443 и работает с транспортными протоколами TCP или UDP . DNSCrypt никогда не был представлен в Internet Engineering Task Force (IETF) и не проходил через Request for Comments (RFC) процесс, поэтому он не использовался широко за пределами нескольких реализаций. В результате он был в значительной степени заменён более популярным DNS через HTTPS .

DNS через TLS ( DoT )¶

DNS через TLS — это еще один метод шифрования DNS -коммуникаций, который определен в RFC 7858. Впервые поддержка была реализована в Android 9, iOS 14 и в Linux в DoT к DoH , поскольку DoT является комплексным протоколом и имеет различное соответствие RFC между существующими реализациями. DoT также работает на выделенном порту 853, который может быть легко заблокирован брандмауэрами.

DNS через HTTPS ( DoH )¶

DNS через HTTPS как определено в RFC 8484 упаковывает запросы в HTTP /2 протокол и обеспечивает безопасность с помощью HTTPS . Впервые поддержка была добавлена в таких браузерах, как Firefox 60 и Chrome 83.

Нативная реализация DoH появилась в iOS 14, macOS 11, Microsoft Windows и Android 13 (однако она не будет включена по умолчанию). Общая поддержка Linux’а ожидает реализации systemd, поэтому всё еще требуется установка стороннего программного обеспечения.

Что может увидеть посторонний человек?¶

В этом примере мы запишем, что происходит, когда мы делаем запрос DoH :

    Сначала запустите tshark :

tshark -w /tmp/dns_doh.pcap -f "tcp port https and host 1.1.1.1" 
curl -vI --doh-url https://1.1.1.1/dns-query https://privacyguides.org 
wireshark -r /tmp/dns_doh.pcap 

Мы видим установление соединения и TLS -рукопожатие, которое происходит при любом зашифрованном соединении. При просмотре последующих пакетов «данных приложения» ни один из них не содержит запрашиваемого нами домена или возвращаемого IP -адреса.

Почему мне не следует использовать зашифрованный DNS ?¶

В местах, где существует фильтрация интернета (или цензура), посещение запрещенных ресурсов может иметь свои последствия, которые следует учитывать в модели угроз. Мы не предлагаем использовать для этих целей зашифрованный DNS . Вместо этого используйте Tor или VPN . Если вы используете VPN , вам следует использовать DNS -серверы вашего VPN . Используя VPN , вы уже доверяете им всю свою сетевую активность.

Когда мы выполняем поиск в DNS , это, как правило, связано с тем, что мы хотим получить доступ к ресурсу. Ниже мы покажем некоторые методы, которые могут раскрыть вашу активность в интернете, даже при использовании зашифрованного DNS :

IP -адрес¶

Самым простым способом определения активности в интернете может быть просмотр IP -адресов, к которым обращаются ваши устройства. Например, если наблюдатель знает, что сайт privacyguides.org находится по адресу 198.98.54.105 , а ваше устройство запрашивает данные с 198.98.54.105 , то велика вероятность, что вы посещаете Privacy Guides.

Этот метод полезен только в том случае, если IP -адрес принадлежит серверу, на котором размещено всего несколько веб-сайтов. Он также не очень полезен, если сайт размещен на общей платформе (например, Github Pages, Cloudflare Pages, Netlify, WordPress, Blogger и т.д.). Он также не очень полезен, если сервер размещен за обратным прокси, что очень часто встречается в современном интернете.

Индикация имени сервера ( SNI )¶

Индикация имени сервера обычно используется, когда на одном IP -адресе размещается множество веб-сайтов. Это может быть сервис, например Cloudflare, или какая-либо другая защита от Denial-of-Service атак.

    Снова запустите захват с помощью tshark . Мы добавили фильтр с нашим IP -адресом, чтобы не перехватывать много пакетов:

tshark -w /tmp/pg.pcap port 443 and host 198.98.54.105 
wireshark -r /tmp/pg.pcap 
▸ Transport Layer Security ▸ TLSv1.3 Record Layer: Handshake Protocol: Client Hello ▸ Handshake Protocol: Client Hello ▸ Extension: server_name (len=22) ▸ Server Name Indication extension 
tshark -r /tmp/pg.pcap -Tfields -Y tls.handshake.extensions_server_name -e tls.handshake.extensions_server_name 

Это означает, что даже если мы используем серверы «зашифрованных DNS «, домен, скорее всего, будет раскрыт через SNI . Протокол TLS v1.3 предлагает функцию Encrypted Client Hello, которая предотвращает подобную утечку.

Правительства, в частности Китая и России, либо уже начали блокировать его, либо выразили желание сделать это. Недавно Россия начала блокировать иностранные сайты, использующие стандарт HTTP /3. Это связано с тем, что протокол QUIC, который является частью HTTP /3, требует, чтобы ClientHello также был зашифрован.

Протокол состояния сетевого сертификата ( OCSP )¶

Ваш браузер может раскрыть информацию о ваших действиях в нём ещё одним путём — протоколом состояния сетевого сертификата. При посещении веб-сайта HTTPS , браузер может проверить, не был ли отозван сертификат веб-сайта. Обычно это делается через протокол HTTP , что означает, что это действие не зашифровано.

Запрос OCSP содержит «серийный номер» сертификата, который является уникальным. Он отправляется «ответчику OCSP » для проверки его статуса.

Мы можем имитировать действия браузера с помощью команды openssl .

    Получите сертификат сервера и с помощью sed сохраните только важную часть и запишите ее в файл:

openssl s_client -connect privacyguides.org:443 /dev/null 2>&1 | sed -n '/^-*BEGIN/,/^-*END/p' > /tmp/pg_server.cert 
openssl s_client -showcerts -connect privacyguides.org:443 /dev/null 2>&1 | sed -n '/^-*BEGIN/,/^-*END/p' > /tmp/pg_and_intermediate.cert 
sed -n '/^-*END CERTIFICATE-*$/!d;:a n;p;ba' \ /tmp/pg_and_intermediate.cert > /tmp/intermediate_chain.cert 
openssl x509 -noout -ocsp_uri -in /tmp/pg_server.cert 

Наш сертификат показывает ответчика сертификата Lets Encrypt. Если мы хотим увидеть все детали сертификата, мы можем использовать:

openssl x509 -text -noout -in /tmp/pg_server.cert 
tshark -w /tmp/pg_ocsp.pcap -f "tcp port http" 
openssl ocsp -issuer /tmp/intermediate_chain.cert \ -cert /tmp/pg_server.cert \ -text \ -url http://r3.o.lencr.org 
wireshark -r /tmp/pg_ocsp.pcap 

В протоколе » OCSP » будет два пакета: «Request»(Запрос) и «Response»(Ответ). Для «Запроса» мы можем увидеть «серийный номер», развернув треугольник ▸ рядом с каждым полем:

▸ Online Certificate Status Protocol ▸ tbsRequest ▸ requestList: 1 item ▸ Request ▸ reqCert serialNumber 

Для «Ответа» мы также можем увидеть «серийный номер»:

▸ Online Certificate Status Protocol ▸ responseBytes ▸ BasicOCSPResponse ▸ tbsResponseData ▸ responses: 1 item ▸ SingleResponse ▸ certID serialNumber 
tshark -r /tmp/pg_ocsp.pcap -Tfields -Y ocsp.serialNumber -e ocsp.serialNumber 

Если у сетевого наблюдателя есть публичный сертификат, который находится в открытом доступе, он может сопоставить серийный номер с этим сертификатом и по нему определить сайт, который вы посещаете. Этот процесс можно автоматизировать и связать IP -адреса с серийными номерами. Также можно проверить серийный номер в логах Certificate Transparency.

Следует ли мне использовать зашифрованный DNS ?¶

Мы составили эту блок-схему, чтобы описать, когда вам следует использовать зашифрованный DNS :

graph TB Start[Старт] --> anonymous анонимны?> anonymous --> | Да | tor(используйте Tor) anonymous --> | Нет | censorship цензуру?> censorship --> | Да| vpnOrTor(Используйте 
VPN или Tor) censorship --> | Нет| privacy от интернет-провайдера?> privacy --> | Да | vpnOrTor privacy --> | Нет | obnoxious перенаправляет
ссылки?> obnoxious --> | Да | encryptedDNS(Используйте
зашифрованный DNS
от других фирм) obnoxious --> | Нет | ispDNS зашифрованный DNS?> ispDNS --> | Да | useISP(Используйте
зашифрованный DNS
от интернет-провайдера) ispDNS --> | Нет | nothing(Ничего не делайте)

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

Что такое DNSSEC ?¶

Domain Name System Security Extensions ( DNSSEC ) — это функция DNS , обеспечивающая проверку подлинности ответов на запросы о поиске доменных имен. Она не обеспечивает защиту конфиденциальности этих поисков, а скорее не позволяет злоумышленникам манипулировать ответами на запросы DNS .

Другими словами, DNSSEC подписывает данные цифровой подписью, чтобы гарантировать их достоверность. Чтобы обеспечить безопасность поиска, подпись происходит на каждом уровне процесса поиска DNS . В результате всем ответам DNS можно доверять.

Процесс подписи DNSSEC похож на процесс подписи юридического документа ручкой; этот человек подписывается уникальной подписью, которую никто другой не может создать, и судебный эксперт может посмотреть на эту подпись и убедиться, что документ был подписан именно этим человеком. Эти цифровые подписи гарантируют, что данные не были подделаны.

DNSSEC реализует иерархическую политику цифровой подписи на всех уровнях DNS . Например, в случае поиска privacyguides.org корневой DNS -сервер подпишет ключ для сервера имен .org , а сервер имен .org затем подпишет ключ для авторитетного сервера имен от privacyguides.org .

Что такое минимизация QNAME ?¶

A QNAME is a «qualified name», for example discuss.privacyguides.net . In the past, when resolving a domain name your DNS resolver would ask every server in the chain to provide any information it has about your full query. In this example below, your request to find the IP address for discuss.privacyguides.net gets asked of every DNS server provider:

Server Question Asked Response
Root server What’s the IP of discuss.privacyguides.net? I don’t know, ask .net’s server.
.net’s server What’s the IP of discuss.privacyguides.net? I don’t know, ask Privacy Guides’ server.
Privacy Guides’ server What’s the IP of discuss.privacyguides.net? 5.161.195.190!

With » QNAME minimization,» your DNS resolver now only asks for just enough information to find the next server in the chain. In this example, the root server is only asked for enough information to find the appropriate nameserver for the .net TLD, and so on, without ever knowing the full domain you’re trying to visit:

Server Question Asked Response
Root server What’s the nameserver for .net? Provides .net’s server
.net’s server What’s the nameserver for privacyguides.net? Provides Privacy Guides’ server
Privacy Guides’ server What’s the nameserver for discuss.privacyguides.net? This server!
Privacy Guides’ server What’s the IP of discuss.privacyguides.net? 5.161.195.190

While this process can be slightly more inefficient, in this example neither the central root nameservers nor the TLD’s nameservers ever receive information about your full query, thus reducing the amount of information being transmitted about your browsing habits. Дальнейшее техническое описание определено в RFC 7816.

Что такое клиентская подсеть EDNS ( ECS )?¶

Клиентская подсеть EDNS — это метод рекурсивного DNS -резольвера для определения подсети для хоста или клиента, который делает DNS -запрос.

Он предназначен для «ускорения» доставки данных путем предоставления клиенту ответа, принадлежащего серверу, который находится рядом, например, content delivery network, которые часто используются при потоковой передаче видео и обслуживании веб-приложений JavaScript.

Эта функция работает в ущерб конфиденциальности, поскольку она сообщает DNS -серверу некоторую информацию о местонахождении клиента.

Вы просматриваете русскую копию Privacy Guides, переведённую нашей невероятной командой переводчиков на Crowdin. Если вы нашли ошибку или непереведённые разделы на этой странице, пожалуйста, помогите нам! Для получения дополнительной информации и советов см. наше руководство по переводу.

You’re viewing the Russian copy of Privacy Guides, translated by our fantastic language team on Crowdin. If you notice an error, or see any untranslated sections on this page, please consider helping out! For more information and tips see our translation guide.

Privacy Guides — некоммерческий сайт, предоставляющий информацию по защите безопасности и конфиденциальности ваших данных.
Мы не зарабатываем на рекомендациях определенных продуктов и не используем партнерские ссылки.
© 2019 — 2023 Privacy Guides и поддерживающие.

Содержание доступно под лицензией CC BY-ND 4.0.

DNSCrypt

DNSCrypt предоставляет защиту от атак, связанных с модификацией и манипулированием транзитным трафиком DNS . Это достигается шифрованием канала связи между клиентом (вами) и DNS -сервером. Шифрование DNS -трафика позволит защитить клиента от атак “человек посередине” (MitM), при которых злоумышленник вклинивается в канал связи и притворяется DNS -сервером. Кроме того, шифрование положительно сказывается на приватности, предотвращая наблюдение за трафиком.

Важно помнить, что технология DNSCrypt лишь помогает удостовериться, что получаемые от DNS -сервера ответы не подделаны злоумышленником, а действительно отправлены этим сервером. DNSCrypt не заменит VPN — ваш IP -адрес не маскируется. Если вы используете публичные DNS -серверы, эти серверы будут расшифровывать ваши DNS -запросы (потому что должны это сделать, чтобы обработать эти запросы). Если вы пытаетесь использовать DNSCrypt, чтобы предотвратить “утечку” DNS -запросов при использовании VPN , то это неудачное решение — вы и так уже доверили свои данные одной компании ( VPN -провайдеру), зачем доверять ещё кому-то? Воспользуйтесь DNS -серверами, которые предоставил VPN -провайдер.

Установка

Начиная с Chaos Calmer 15.05, dnscrypt-proxy и libsodium присутствуют в официальном репозитории:

opkg update opkg install dnscrypt-proxy

Кроме того, существует пакет luci-app-dnscrypt-proxy, позволяющий настраивать dnscrypt-proxy через веб-интерфейс LuCi.

Специальная сборка для архитектуры ar71xx от black-roland

Сборка от black-roland имеет ряд преимуществ перед официальным репозиторием Chaos Calmer: пакеты dnscrypt-proxy и libsodium более свежие (и поддерживают Barrier Breaker), dnscrypt-proxy поддерживает использование эфемерных ключей, procd и позволяет одновременно запускать несколько копий себя (если первый DNS -сервер по каким-либо причинам будет недоступен, система использует второй).

Добавляем в файл /etc/opkg.conf источник в зависимости от используемой версии OpenWrt. Для этого выполняем в консоли следующие команды:

Trunk:

Уже содержит актуальную версию dnscrypt-proxy с поддержкой запуска нескольких копий. Ничего добавлять не требуется.

opkg update opkg install dnscrypt-proxy

Chaos Calmer:

cd /tmp wget 'http://exopenwrt.roland.black/exopenwrt.pub' opkg-key add exopenwrt.pub echo '/etc/opkg/keys/1a929a1dd62138c1' >> /etc/sysupgrade.conf echo 'src/gz exopenwrt http://exopenwrt.roland.black/chaos_calmer/15.05.1/ar71xx/packages/exopenwrt' >> /etc/opkg.conf

Barrier Breaker:

echo 'src/gz exopenwrt http://exopenwrt.roland.black/barrier_breaker/14.07/ar71xx/packages/exopenwrt' >> /etc/opkg.conf

Обновляем список пакетов и устанавливаем dnscrypt-proxy и libsodium . Примечание: без обновленной библиотеки служба не запустится (по крайней мере в мультисерверном варианте), при недостатке места библиотеку следует удалить принудительно.

opkg update opkg remove libsodium --force-depends opkg install dnscrypt-proxy libsodium

Настройка

По умолчанию dnscrypt-proxy использует адрес и порт 127.0.0.1:5353 . Нужно настроить OpenWrt для отправки DNS -запросов на этот адрес.

dnscrypt-proxy

Настраиваем, редактируя файл /etc/config/dnscrypt-proxy :

config dnscrypt-proxy option address ‘127.0.0.1’ option port ‘5353’ # option resolver ‘cisco’ # option resolvers_list ‘/usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv’ # option ephemeral_keys ‘1’
Название Тип Обязательность Значение по умолчанию Описание
address string да 127.0.0.1 IP -адрес, на который будем принимать DNS -запросы от клиентов.
port string да 5353 Порт, на который будем принимать DNS -запросы от клиентов.
resolver string нет cisco Имя одного из публичных DNS -серверов, содержащихся в файле, путь к которому указывает параметр ‘resolvers_list’. Два сервера здесь указать не получится. Если эта строка закомментирована или отсутствует, будет использоваться сервер OpenDNS.
resolvers_list string нет /usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv Путь к файлу в формате CSV, содержащему информацию о публичных DNS -серверах, поддерживающих DNSCrypt. В случае возникновения проблем с запуском dnscrypt-proxy, удостоверьтесь, что указанный сервер присутствует в файле ( /usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv ). Поскольку этот список обновляется чаще, чем в репозитории, имеет смысл сразу же обновить его, скачав свежую копию c GitHub и поместив по указанному пути.
ephemeral_keys boolean нет 0 Усиление приватности за счёт использования эфемерного публичного ключа для каждого запроса. dnscrypt-proxy из репозитория Chaos Calmer не поддерживает эту настройку. Учтите, что использование эфемерного ключа увеличивает нагрузку на процессор (особенно на платформах с архитектурой, отличной от x86). Эта настройка бесполезна с большинством публичных серверов DNScrypt, поскольку они развёрнуты из образов Docker, где по умолчанию для сертификатов выставлен небольшой параметр TTL .

Следующие параметры поддерживаются только в Trunk:

Название Тип Обязательность Значение по умолчанию Описание
client_key string нет отсутствует Идентификация клиента публичным ключом. По умолчанию (для затруднения отслеживания) клиент использует случайно сгенерированную ключевую пару. Эта настройка заставляет использовать статическую пару, что, например, позволяет DNS -провайдеру предлагать премиум-сервис клиентам, чьи запросы подписаны определёнными публичными ключами. Клиент не может расшифровать поступающие ответы без знания приватного ключа. Значение этой настройки представляет собой путь к файлу, содержащему приватный ключ. Соответствующий ему публичный ключ вычисляется автоматически.
syslog boolean нет 1 Отправка событий демону syslog.
syslog_prefix string нет dnscrypt-proxy Строка, предваряющая записи в журнале.

Следующие параметры присутствуют в файле /etc/config/dnscrypt-proxy , но не поддерживаются, поскольку (на данный момент) DNSCrypt в OpenWrt собирается без поддержки плагинов:

Название Тип Обязательность Значение по умолчанию Описание
query_log_file string нет отсутствует Запись полученных DNS -запросов в файл. Позволяет в реальном времени оценивать происходящее в сети. Значение этого параметра представляет собой путь к файлу журнала. Имя файла может иметь префикс ltsv:, что позволяет сохранять журнал в формате LTSV (например, ltsv:/tmp/dns-queries.log).
local_cache boolean нет 0 Кэширование ответов на популярные и последние запросы, ускоряет работу dnscrypt-proxy.
block_ipv6 boolean нет 0 Отключение поддержки IPv6 , ускоряет работу dnscrypt-proxy.
list blacklist string нет отсутствует Чёрные списки позволяют блокировать обращение к доменам и IP -адресам. Значение этого параметра определяет тип чёрного списка и путь к файлу (например, domains:/path/to/domains-blacklist-file.txt или ips:/path/to/ips-blacklist-file.txt). Можно указать несколько чёрных списков, добавив ещё параметры list blacklist .

Дополнительные параметры, при необходимости, указываются в скрипте инициализации (файл /etc/init.d/dnscrypt-proxy ).

Обратите внимание: адрес и порт указывают на то, где будет доступен локальный DNS -сервер, а сервер DNSCrypt вы просто выбираете из списка доступных серверов, указываете его имя в строке resolver и раскомментируете строки с именем сервера и путём к списку серверов.

Добавляем dnscrypt-proxy в автозагрузку и запускаем:

/etc/init.d/dnscrypt-proxy enable /etc/init.d/dnscrypt-proxy start

Обратите внимание: если dnscrypt-proxy не запускается автоматически после перезагрузки системы, возможно, он пытается запуститься ещё до того, как полностью поднят сетевой интерфейс. Добавьте в файл /etc/rc.local перед строчкой “exit 0”:

sleep 10 /etc/init.d/dnscrypt-proxy start

Кроме того, на маршрутизаторе должно быть установлено точное время.

dnsmasq

Настраиваем dnsmasq для использования dnscrypt-proxy на 127.0.0.1:5353. Полужирным выделены строки, которые нужно изменить в файле /etc/config/dhcp :

config dnsmasq option domainneeded 1 option boguspriv 1 option filterwin2k 0 option localise_queries 1 option rebind_protection 1 option rebind_localhost 1 option local ‘/lan/’ option domain ‘lan’ option expandhosts 1 option nonegcache 0 option authoritative 1 option readethers 1 option leasefile ‘/tmp/dhcp.leases’ # option resolvfile ‘/tmp/resolv.conf.auto’ option noresolv 1 list server ‘127.0.0.1#5353’ list server ‘/pool.ntp.org/208.67.222.222’ # list server ‘208.67.222.222’ # list server ‘208.67.220.220’

отключили обработку файла /tmp/resolv.conf.auto , поскольку он указывает dnsmasq использовать DNS -серверы провайдера.

добавили настройку noresolv , которая (по тем же причинам) отключает обработку файла /etc/resolv.conf .

127.0.0.1#5353 — адрес из /etc/config/dnscrypt-proxy .

/pool.ntp.org/208.67.222.222 добавляет исключение для адреса pool.ntp.org, который будет доступен через обычный незашифрованный DNS -канал. dnscrypt-proxy требует, чтобы на устройстве было установлено точное время, иначе сервис DNS не сможет работать, а также не получится синхронизировать время. В этом примере для доступа к pool.ntp.org используется публичный сервер OpenDNS. Вы можете использовать другой сервер (например, OpenNIC, CloudFlare Public DNS, Google Public DNS, Яндекс.DNS) или DNS -сервер провайдера.

Перезапускаем dnsmasq (или перезагружаем маршрутизатор):

/etc/init.d/dnsmasq restart
Использование нескольких серверов
Работает с dnscrypt-proxy из стандартного репозитория Chaos Calmer 15.05.1, но для предыдущих выпусков, скорее всего, недоступно

Можно использовать несколько DNS -серверов. Тогда, если первый будет недоступен, система сможет автоматически переключиться на другой (источник)).

Добавляем дополнительный сервер в файл /etc/config/dnscrypt-proxy (обратите внимание, что они должны размещаться на разных портах):

config dnscrypt-proxy ns1 option address ‘127.0.0.1’ option port ‘5353’ option resolver ‘fvz-anyone’ # option resolvers_list ‘/usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv’ # option ephemeral_keys ‘0’ config dnscrypt-proxy ns2 option address ‘127.0.0.1’ option port ‘5454’ option resolver ‘d0wn-random-ns1’ # option resolvers_list ‘/usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv’ # option ephemeral_keys ‘0’

Создаём файл /etc/resolv-crypt.conf , содержащий единственную строку: options timeout:1. Эта настройка заставляет dnsmasq после секундного ожидания ответа от первого DNS -сервера переключиться на следующий.

В разделе config dnsmasq файла /​etc/​config/​dhcp , удаляем или комментируем строку option noresolv 1, а также добавляем option resolvfile ‘/etc/resolv-crypt.conf’ и дополнительный сервер:

option resolvfile ‘/etc/resolv-crypt.conf’ list server ‘127.0.0.1#5353’ list server ‘127.0.0.1#5454’ list server ‘/pool.ntp.org/208.67.222.222’

Перезагружаем маршрутизатор, либо перезапускаем dnscrypt-proxy и dnsmasq :

/etc/init.d/dnscrypt-proxy restart /etc/init.d/dnsmasq restart

Очищаем кэш DNS на клиентских устройствах

Обратите внимание: команды должны быть выполнены в командной строке с правами администратора.

Linux
sudo /etc/init.d/nscd restart
sudo /etc/init.d/networking restart

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Как включить DNS через HTTPS и для чего это нужно

Оглавление

Такие компании, как Microsoft, Google и Mozilla, продвигают DNS через HTTPS (DoH). Эта технология будет шифровать поисковые запросы DNS, улучшая конфиденциальность и безопасность в Интернете. Давайте познакомимся поближе с технологией DNS Over HTTPS, узнаем, для чего она нужна и как её включить. Вполне возможно, что вы уже пользуетесь DNS через HTTPS даже не зная этого!

Что такое DNS через HTTPS (DoH)?

Интернет стремится, чтобы по умолчанию шифрование присутствовало везде. На данный момент большинство веб-сайтов, к которым вы обращаетесь, вероятно, используют шифрование HTTPS. Современные веб-браузеры, такие как Chrome, теперь помечают любые сайты, использующие стандартный HTTP, как «небезопасные». HTTP/3, новая версия протокола HTTP, имеет встроенное шифрование.

Это шифрование гарантирует, что никто не сможет вмешаться в работу веб-страницы, пока вы её просматриваете, или следить за тем, что вы делаете в Интернете. Например, если вы подключаетесь к Wikipedia.org, оператор сети — будь то общедоступная точка доступа Wi-Fi компании или ваш Интернет-провайдер — может видеть только то, что вы подключены к wikipedia.org. Они не видят, какую статью вы читаете, и не могут изменять статью Википедии пока она идёт до вашего компьютера.

Но в стремлении к шифрованию DNS остался позади. Система доменных имён делает так, что мы можем подключаться к веб-сайтам через их доменные имена, а не с помощью числовых IP-адресов. Вы вводите доменное имя, например google.com, и ваша система свяжется с DNS-сервером, который указан в настройках системы, чтобы получить IP-адрес, связанный с google.com. Затем ваш компьютер или телефон подключится к этому IP-адресу.

Смотрите также статьи:

  • Как работают компьютерные сети
  • Введение в DNS терминологию, компоненты и концепции

До сих пор эти запросы DNS не были зашифрованы. Когда вы подключаетесь к веб-сайту, ваша система отправляет запрос о том, что вы ищете IP-адрес, связанный с определённым доменом. Любой посредник передачи данных — возможно, ваш интернет-провайдер, но, возможно, также просто общедоступная точка доступа Wi-Fi, записывающая трафик, — могут регистрировать, к каким доменам вы подключаетесь. Из-за этого возможны атаки и сбор информации, описанные в статье «Применение фальшивого DNS».

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

Сегодня большинство людей используют DNS-серверы, предоставленные их интернет-провайдером. Однако существует множество сторонних DNS-серверов, таких как Google Public DNS, Cloudflare и OpenDNS. Эти сторонние поставщики одними из первых включили поддержку DNS через HTTPS на стороне сервера. Чтобы использовать DNS через HTTPS, вам потребуется как DNS-сервер, так и клиент (например, веб-браузер или операционная система), который его поддерживает.

Как соотносятся DNS поверх HTTPS, DNSSEC, DNSCrypt, DNS поверх TLS

Имеется несколько протоколов, обеспечивающих шифрование DNS запросов. В настоящее время на клиентском программном обеспечении лучше всего поддерживается DNS поверх HTTPS (DoH) — именно ему и посвящена данная статья. Чтобы ориентироваться в терминах, рассмотрим краткие характеристики каждого из протоколов.

DNS поверх HTTPS (DoH) — протокол для выполнения разрешения DNS по протоколу HTTPS. Целью этого метода является повышение конфиденциальности и безопасности пользователей путём предотвращения перехвата и манипулирования данными DNS с помощью атак типа «Атака посредника».

DNS поверх TLS (DoT) — предлагаемый стандартный протокол для выполнения разрешения удалённой системы DNS с использованием TLS. Целью этого метода является повышение конфиденциальности и безопасности пользователей путём предотвращения перехвата и манипулирования данными DNS с помощью атак типа «Атака посредника».

DNSSEC (англ. Domain Name System Security Extensions) — набор расширений IETF протокола DNS, позволяющих минимизировать атаки, связанные с подменой DNS-адреса при разрешении доменных имён. Он направлен на предоставление DNS-клиентам (англ. термин resolver) аутентичных ответов на DNS-запросы (или аутентичную информацию о факте отсутствия данных) и обеспечение их целостности. При этом используется криптография с открытым ключом.

DNSCrypt — это сетевой протокол, который аутентифицирует и шифрует трафик системы доменных имён (DNS) между компьютером пользователя и рекурсивными серверами имён. Первоначально он был разработан Фрэнком Денисом и Йеченг Фу.

Хотя существует несколько реализаций клиента и сервера, протокол никогда не предлагался Инженерной группе Интернета (IETF) в виде RFC.

DNSCrypt обёртывает неизмененный DNS-трафик между клиентом и преобразователем DNS в криптографической конструкции для обнаружения подделки. Хотя он не обеспечивает сквозную безопасность, он защищает локальную сеть от атак типа «злоумышленник в середине».

Он также снижает опасность атак с усилением на основе UDP, требуя, чтобы вопрос был не меньше размера соответствующего ответа. Таким образом, DNSCrypt помогает предотвратить атаки с усилением DNS.

DNSCurve — это предлагаемый безопасный протокол для системы доменных имён (DNS), разработанный Дэниелом Дж. Бернстайном.

Способы включения DNS через HTTPS (DoH)

Можно включить зашифрованные DNS запросы двумя способами — на уровне веб-браузеров и на уровне операционной системы. Каждый из этих способов имеет свои преимущества.

Включение безопасного DNS на уровне веб-браузеров выполняется очень просто, достаточно поставить галочку в настройках. Более того, в Google Chrome эта настройка уже включена по умолчанию. Недостаток этого метода в том, что все другие приложения, использующие Интернет-подключение, не смогут использовать DNS через HTTPS. Такими приложениями могут быть программы для скачивания файлов, мессенджеры, службы обновления программ и операционной системы и так далее.

Включение DoH на уровне системы делает так, что все программы будут делать DNS запросы исключительно по зашифрованному каналу. Но это требует установки программы — кэширующего DNS сервера. На самом деле, установка очень простая и программа будет потреблять минимум ресурсов. При этом собственный DNS будет кэшировать полученные данные благодаря чему немного увеличит скорость работы сети.

Какой вариант выбрать — исключительно на ваше усмотрение. В этой инструкции будут рассмотрены оба способа и вы увидите, насколько всё просто при выборе любого метода шифрования DNS запросов.

Публичные сервера имён с поддержкой DNS через HTTPS

Чтобы использовать DNS через HTTPS сервер имён должен поддерживать эту технологию. В настоящее время публичные самые популярные DNS серверы её поддерживают. Их адреса для DoH или обычных DNS запросов одинаковые.

Провайдер IP-адреса Блокирование Особенности
Cloudflare 1.1.1.1
1.0.0.1
2606:4700:4700::1111
2606:4700:4700::1001
нет Конечная точка DNS поверх HTTPS.
Google Public DNS 8.8.8.8
8.8.4.4
2001:4860:4860::8888
2001:4860:4860::8844
нет Конечная точка DNS поверх HTTPS.
CleanBrowsing 185.228.168.168
185.228.169.168
2a0d:2a00:1::
2a0d:2a00:2::
Взрослый контент. Конечная точка DNS поверх HTTPS.
Adguard 176.103.130.130
176.103.130.131
2a00:5a60::ad1:0ff
2a00:5a60::ad2:0ff
Рекламный контент. Конечная точка DNS поверх HTTPS.
Quad9 9.9.9.9
149.112.112.112
2620:fe::fe
2620:fe::9
Вредоносный контент.
OpenDNS 208.67.222.222
208.67.220.220
2620:119:35::35
2620:119:53::53
нет

Независимо от того, включаете вы DoH в браузерах или для всей системы, вы можете использовать любой DNS сервер из этого списка. Лично я предпочитаю DNS сервера от Google.

Как включить DNS через HTTPS (DoH) в веб-браузерах

Google Chrome

В Google Chrome в Windows уже включена опция DNS через HTTPS. Вы можете её проверить перейдя в «Настройки» → «Конфиденциальность и безопасность» → «Безопасность» → «Дополнительные» → «Использовать безопасный DNS сервер». Чтобы быстро найти эту настройку, введите в адресную строку «chrome://settings/security/» и пролистните в самый низ.

Вы можете выбрать из списка любой DNS сервер с поддержкой DoH или указать свой собственный.

На момент написания, в Google Chrome в Linux данная опция недоступна.

Firefox

Перейдите в Настройки → Основные. Пролистните в самый низ, чтобы найти кнопку «Параметры сети, Настроить».

Поставьте галочку «Включить DNS через HTTPS» и выберите провайдера из списка или введите свой IP адрес:

Opera

Перейдите в настройки (шестерёнка внизу левого сайдбара или кнопка «Простые настройки» → «Открыть все настройки браузера»).

Затем перейдите в «Дополнительно» → «Система».

Включите галочку «Использовать DNS поверх HTTPS вместо системных настроек DNS» и выберите желаемый DNS сервер.

Microsoft Edge

На момент написания предустановленный по умолчанию Internet Explorer (Microsoft Edge) вовсе не знает про DNS через HTTPS. Если скачать последнюю версию Microsoft Edge, то там эту настройку можно включить с помощью флага.

Введите в адресную строку edge://flags#dns-over-https

Включите экспериментальный флаг и перезапустите веб-браузер.

Эммм… вроде как нужно бы ещё ввести настройки DNS сервера, но я не нашёл, где это сделать в Microsoft Edge. Да и кому дело до Microsoft Edge — кто им вообще пользуется?!

Как включить DNS через HTTPS (DoH) для всех приложений

Программы для DNS через HTTPS (DoH)

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)

DNS-over-HTTPS

DNS-over-HTTPS — это клиентское и серверное программное обеспечение для запроса DNS через HTTPS, используя протоколы Google DNS-over-HTTPS и IETF DNS-over-HTTPS (RFC 8484).

Как включить DNS через HTTPS (DoH) на уровне операционной системы в Windows

Как включить DNS через HTTPS (DoH) на уровне операционной системы в Windows (в настройках ОС)

Данный метод удобен тем, что не нужно устанавливать дополнительное программное обеспечение. Но недостатком данного метода является то, что в качестве DNS сервера вы можете использовать только тот, который предусмотрен ОС Windows — всего около 5 провайдеров. Ещё одно ограничение в том, что данный метод работает только начиная с Windows 11.

Сначала выберите, какой DNS с поддержкой DoH вы хотите использовать

Начиная с выпуска Windows 11, DNS через HTTPS в Windows 11 работает только с определенным жёстко запрограммированным списком бесплатных служб DNS (вы можете увидеть список самостоятельно, запустив

netsh dns show encryption

Вот текущий список поддерживаемых адресов серверов DNS IPv4 по состоянию на октябрь 2022 года:

  • Основной DNS Google: 8.8.8.8
  • Дополнительный Google DNS: 8.8.4.4
  • Основной DNS Cloudflare: 1.1.1.1
  • Вторичный DNS Cloudflare: 1.0.0.1
  • Первичный DNS Quad9: 9.9.9.9
  • Вторичный DNS Quad9: 149.112.112.112

Для IPv6 список поддерживаемых адресов серверов DNS:

  • Основной DNS Google: 2001:4860:4860::8888
  • Вторичный DNS Google: 2001:4860:4860::8844
  • Основной DNS-сервер Cloudflare: 2606:4700:4700::1111
  • Дополнительный DNS Cloudflare: 2606:4700:4700::1001
  • Первичный DNS Quad9: 2620:fe::fe
  • Вторичный DNS Quad9: 2620:fe::fe:9

Когда придёт время включить DoH в разделе ниже, вам нужно будет выбрать две пары этих DNS-серверов — первичный и вторичный для IPv4 и IPv6 — для использования с ПК с Windows 11. В качестве бонуса их использование, скорее всего, ускорит работу в Интернете.

Затем включите DNS через HTTPS в Windows 11

Чтобы начать настройку DNS через HTTPS, откройте приложение «Настройки», нажав Win+i на клавиатуре. Либо можно нажать правой кнопкой мыши кнопку «Пуск» и в появившемся специальном меню выбрать пункт «Параметры».

В настройках нажмите «Сеть и Интернет» на боковой панели.

Для «Wi-Fi» и «Ethernet» процедура настройки DNS поверх HTTPS чуть различается.

Настройка DNS поверх HTTPS для Ethernet (проводное подключение)

В настройках сети и Интернета щёлкните имя вашего основного подключения к Интернету в списке, например «Ethernet».

На странице свойств Ethernet найдите параметр «Назначение DNS-сервера» и нажмите кнопку «Изменить» рядом с ним.

В появившемся окне в раскрывающемся меню выберите «Вручную» настройки DNS.

Затем переведите переключатель «IPv4» в положение «Вкл.».

В разделе IPv4 введите адрес основного DNS-сервера, который вы выбрали в разделе выше, в поле «Предпочтительный DNS» (например, «8.8.8.8»).

Станет активным выпадающий список «Предпочтительное шифрование DNS». В этом списке выберите «Только зашифрованные (DNS поверх HTTPS)».

Аналогичным образом введите адрес вторичного DNS-сервера в поле «Дополнительный DNS» (например, «8.8.4.4»). Станет активным выпадающий список «Предпочтительное шифрование DNS». В этом списке выберите «Только зашифрованные (DNS поверх HTTPS)».

Если ваш Интернет-провайдер поддерживает IPv6, то повторите этот процесс с IPv6. Если ваш Интернет-провайдер НЕ поддерживает IPv6, то вам НЕ НУЖНО включать IPv6 DNS серверы. Если вы не уверены, то лучше не включайте IPv6 DNS.

Переведите переключатель IPv6 в положение «Вкл.», а затем скопируйте основной IPv6-адрес из раздела выше и вставьте его в поле «Предпочитаемый DNS». Затем скопируйте соответствующий вторичный IPv6-адрес и вставьте его в поле «Дополнительный DNS».

После этого установите для обоих параметров «Шифрование DNS» значение «Только зашифрованные (DNS поверх HTTPS)».

Наконец, нажмите «Сохранить».

Вернувшись на страницу свойств оборудования Ethernet, вы увидите список своих DNS-серверов с пометкой «(Зашифровано)» рядом с каждым из них.

Настройка DNS поверх HTTPS для Wi-Fi (беспроводное подключение)

В настройках Сети и Интернета щёлкните имя вашего основного подключения к Интернету в списке, например «Wi-Fi».

На странице свойств Wi-Fi перейдите в раздел «Свойства оборудования».

На следующем окне найдите параметр «Назначение DNS-сервера» и нажмите кнопку «Изменить» рядом с ним.

В появившемся окне в раскрывающемся меню выберите «Вручную» настройки DNS. Затем переведите переключатель «IPv4» в положение «Вкл.».

В разделе IPv4 введите адрес основного DNS-сервера, который вы выбрали в разделе выше, в поле «Предпочтительный DNS» (например, «8.8.8.8»).

Станет активным выпадающий список «Предпочтительное шифрование DNS». В этом списке выберите «Только зашифрованные (DNS поверх HTTPS)».

Подсказка: Если вы не видите параметры шифрования DNS, значит, вы редактируете настройки DNS для конкретного подключения Wi-Fi, а не для беспроводного адаптера в целом. Убедитесь, что вы выбрали тип подключения в «Настройки» → «Сеть и Интернет», затем сначала нажмите «Свойства оборудования».

Аналогичным образом введите адрес вторичного DNS-сервера в поле «Дополнительный DNS» (например, «8.8.4.4»).

Если ваш Интернет-провайдер поддерживает IPv6, то повторите этот процесс с IPv6. Если ваш Интернет-провайдер НЕ поддерживает IPv6, то вам НЕ НУЖНО включать IPv6 DNS серверы. Если вы не уверены, то лучше не включайте IPv6 DNS.

Переведите переключатель IPv6 в положение «Вкл.», а затем скопируйте основной IPv6-адрес из раздела выше и вставьте его в поле «Предпочитаемый DNS». Затем скопируйте соответствующий вторичный IPv6-адрес и вставьте его в поле «Дополнительный DNS».

После этого установите для обоих параметров «Шифрование DNS» значение «Только шифрование (DNS через HTTPS)».

Наконец, нажмите «Сохранить».

Вернувшись на страницу свойств оборудования Wi-Fi, вы увидите список своих DNS-серверов с пометкой «(Зашифровано)» рядом с каждым из них.

Это всё, что вам нужно сделать. Закройте приложение «Настройки», и вы готовы к работе. Отныне все ваши DNS-запросы будут конфиденциальными и безопасными.

Примечание. Если после изменения этих настроек у вас возникли проблемы с сетью, убедитесь, что вы правильно ввели IP-адреса. Ошибочный IP-адрес может привести к недоступности DNS-серверов. Если адреса введены правильно, попробуйте отключить переключатель «IPv6» в списке DNS-серверов. Если вы настраиваете DNS-серверы IPv6 на компьютере без подключения к IPv6, это может вызвать проблемы с подключением.

Как включить DNS через HTTPS (DoH) на уровне операционной системы в Windows (с помощью dnscrypt-proxy)

Для операционной системы Windows мы можем использовать только dnscrypt-proxy, поскольку эта программа является кроссплатформенной.

Чтобы скачать dnscrypt-proxy для Windows, перейдите на официальную страницу https://github.com/DNSCrypt/dnscrypt-proxy/releases и скачайте файл вида dnscrypt-proxy-win64-*.zip

Распакуйте скаченный архив — в нём папка «win64». Переименуйте эту папку в «dnscrypt-proxy» и переместите в корень диска C:\. Таким образом, папка и все файлы расположены по пути C:\dnscrypt-proxy\.

Откройте командную строку с правами администратора. Для этого нажмите Win+x и выберите «PowerShell (администратор)».

Выполните там команды:

cd C:\dnscrypt-proxy\ cp example-dnscrypt-proxy.toml dnscrypt-proxy.toml ./dnscrypt-proxy

При запуске nscrypt-proxy загружает списки DNS серверов с шифрованием, тестирует доступность и скорость отклика DNS серверов с поддержкой шифрования.

Если всё запустилось нормально, то продолжайте, здесь же несколько подсказок для тех, у кого возникла ошибка:

  • dnscrypt-proxy.toml: no such file or directory (dnscrypt-proxy.toml — нет такого файла или директории): скопируйте файл с образцом конфигурации и назовите его dnscrypt-proxy.toml как это написано выше.
  • listen udp 127.0.0.1:53: bind: permission denied (отклонён запрос на прослушивание порта): вы используете PowerShell без прав администратора, об этом также сказано выше.
  • listen udp 127.0.0.1:53: bind: address already in use (порт 53 уже используется): какая-то программа уже прослушивает DNS порт. Может быть какая-то другая программа, а может быть предыдущий экземпляр dnscrypt-proxy, который вы не остановили перед запуском нового.

Нет ошибок? Отлично!

Пока не закрывайте терминал. В дальнейшем мы установим dnscrypt-proxy как системную службу и нам не нужно будет каждый раз запускать её в командной строке. Но пока мы этого не сделали, dnscrypt-proxy будет работать только пока не закрыто окно консоли.

Теперь мы поменяем системные настройки DNS.

В Windows 11

Откройте настройки сети, для этого нажмите Win+i, перейдите на вкладку «Сеть и Интернет» затем выберите «Дополнительные сетевые параметры».

И нажмите кнопку «Дополнительные параметры сетевого адаптера».

В Windows 10

Откройте настройки сети, для этого нажмите Win+i, затем выберите «Сеть и Интернет».

И нажмите кнопку «Настройка параметров адаптера».

Кликните правой кнопкой мыши по сетевому адаптеру, который используется для выхода в Интернет, и выберите «Свойства».

Найдите и дважды кликните пункт IP версии 4 (TCP/IPv4).

В открывшемся окне поставьте переключатель на «Использовать следующие адреса DNS-серверов» и впишите 127.0.0.1:

В качестве резервного DNS сервера впишите «8.8.8.8».

Если ваш Интернет провайдер поддерживает IPv6, то повторите эту же процедуру для «IP версии 6 (TCP/IPv6)», но в качестве IPv6 адресов используйте «::1» и «2001:4860:4860::8888».

Откройте ещё одно окно командной строки и выполните там:

C:\dnscrypt-proxy\dnscrypt-proxy -resolve hackware.ru

Также в командной строке проверим IP адрес домена с помощью утилиты nslookup:

nslookup hackware.ru

Обратите внимание на строку:

Address: 127.0.0.1

Она означает, что IP адресом DNS сервера является 127.0.0.1.

Проверьте работу операционной системы — откройте веб сайты, загрузите файлы, используйте свою систему обычным образом, чтобы проверить, что нет никаких проблем с DNS.

Если что-то пошло не так и вы хотите вернуть всё назад, то откройте настройки сетевого адаптера, как это показано чуть выше и переключитесь на автоматическое получение адреса DNS-сервера.

Если всё нормально, то нажмите Ctrl+c в первом терминале, где запущен dnscrypt-proxy чтобы остановить DNS прокси.

Теперь зарегистрируйте его как системную службу (эту команду нужно выполнить в окне с повышенными привилегиями, то есть с правами администратора):

C:\dnscrypt-proxy\dnscrypt-proxy -service install

Если не появились ошибки, то это прекрасно! Значит ваша версия Windows совместима со встроенным установощиком.

Теперь, когда служба установлена, запустите её:

C:\dnscrypt-proxy\dnscrypt-proxy -service start

Всё готово! При перезагрузке компьютера, данная служба будет запускаться автоматически.

Если вам нужно остановить службу, то выполните:

C:\dnscrypt-proxy\dnscrypt-proxy -service stop

Чтобы перезапустить запущенную службу (например, после изменения конфигурационного файла) выполните:

C:\dnscrypt-proxy\dnscrypt-proxy -service restart

Для удаления службы выполните:

C:\dnscrypt-proxy\dnscrypt-proxy -service uninstall

Для проверки DNS сервера используйте команду:

C:\dnscrypt-proxy\dnscrypt-proxy -resolve example.com

Чтобы полностью удалить dnscrypt-proxy сервер выполните:

C:\dnscrypt-proxy\dnscrypt-proxy -service uninstall

А затем удалите папку C:\dnscrypt-proxy — всё готово!

Как обновить nscrypt-proxy

Чтобы установить новую версию, остановите службу, замените исполнимый файл (dnscrypt-proxy) на новую версию и запустите службу снова.

У dnscrypt-proxy много опций, но они будут рассмотрены в следующем разделе.

Как включить DNS через HTTPS (DoH) на уровне операционной системы в Linux

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

Данная инструкция с минимальными поправками должна также работать и в Linux Mint, Ubuntu и аналогичных. Если у вас данный дистрибутив, то попробуйте этот раздел и если что-то не получится, то пишите ваши ошибки в комментариях.

Установите пакет dnscrypt-proxy:

sudo apt install dnscrypt-proxy

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

Проверьте, чтобы порт 53 не был занят:

ss -lp 'sport = :domain'

В выводе должна быть всего одна строка, а именно шапка:

Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process

Если вывод содержит более чем одну первую строку с названием столбцов, нужно отключить сервис, который использует порт 53. Одним из частых виновников является systemd-resolved.service (NetworkManager), но другие сетевые менеджеры могут иметь аналогичные компоненты. В общем, какая бы там ни была служба (возможно, вы уже устанавливали другой кэширующий DNS сервер), её нужно остановить и убрать из автозагрузки. Если нет процессов, прослушивающих порт 53, то можно продолжать.

Выполните проверку, чтобы убедиться, что dnscrypt-proxy работает:

/usr/sbin/dnscrypt-proxy -resolve example.com

Запустите службу dnscrypt-proxy и проверьте её статус:

sudo systemctl start dnscrypt-proxy.service systemctl status dnscrypt-proxy.service

Если всё в порядке, добавьте службу в автозагрузку:

sudo systemctl enable dnscrypt-proxy.service

Откройте файл /etc/NetworkManager/NetworkManager.conf:

sudo gedit /etc/NetworkManager/NetworkManager.conf
[main]
dns=none

sudo systemctl restart NetworkManager

Сделайте резервную копию файла /etc/resolv.conf:

sudo cp /etc/resolv.conf /etc/resolv.conf.backup

А затем удалите /etc/resolv.conf (это важно, поскольку это может быть ссылка на файл, а не настоящий файл):

sudo rm -f /etc/resolv.conf

И создайте файл /etc/resolv.conf

sudo gedit /etc/resolv.conf

со следующим содержимым:

nameserver 127.0.2.1 # nameserver ::1 # для IPv6 options edns0 single-request-reopen EDNSPayloadSize 4096

Установка dnscrypt-proxy в Arch Linux, BlackArch и их производные

Установите пакет dnscrypt-proxy:

sudo pacman -S dnscrypt-proxy

Проверьте, чтобы порт 53 не был занят:

ss -lp 'sport = :domain'

В выводе должна быть всего одна строка, а именно шапка:

Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process

Если вывод содержит более чем одну первую строку с названием столбцов, нужно отключить сервис, который использует порт 53. Одним из частых виновников является systemd-resolved.service (NetworkManager), но другие сетевые менеджеры могут иметь аналогичные компоненты. В общем, какая бы там ни была служба (возможно, вы уже устанавливали другой кэширующий DNS сервер), её нужно остановить и убрать из автозагрузки. Если нет процессов, прослушивающих порт 53, то можно продолжать.

Выполните проверку, чтобы убедиться, что dnscrypt-proxy работает:

dnscrypt-proxy -resolve example.com

Запустите службу dnscrypt-proxy и проверьте её статус:

sudo systemctl start dnscrypt-proxy.service systemctl status dnscrypt-proxy.service

Если всё в порядке, добавьте службу в автозагрузку:

sudo systemctl enable dnscrypt-proxy.service

Откройте файл /etc/NetworkManager/NetworkManager.conf:

sudo gedit /etc/NetworkManager/NetworkManager.conf

и проверьте, имеются ли там следующие строки:

[main] dns=none

Если их нет, то добавьте их и перезапустите NetworkManager:

sudo systemctl restart NetworkManager

Сделайте резервную копию файла /etc/resolv.conf:

sudo cp /etc/resolv.conf /etc/resolv.conf.backup

А затем удалите /etc/resolv.conf (это важно, поскольку это может быть ссылка на файл, а не настоящий файл):

sudo rm -f /etc/resolv.conf

И создайте файл /etc/resolv.conf

sudo gedit /etc/resolv.conf

со следующим содержимым:

nameserver 127.0.0.1 # nameserver ::1 # для IPv6 options edns0 single-request-reopen EDNSPayloadSize 4096

Защита файла /etc/resolv.conf от изменений

Выше мы добавили настройку NetworkManager чтобы эта служба не меняла содержимое файла /etc/resolv.conf, как это делает она без предупреждений. На самом деле, NetworkManager действительно является самой частой причиной сброса настроек в /etc/resolv.conf, но не единственной. Подробности, а также способы, как определить, какая программа меняет файл /etc/resolv.conf и как надёжно заблокировать этот файл от изменения любыми программами, смотрите в статье «Как запретить NetworkManager менять файл /etc/resolv.conf».

Как настроить dnscrypt-proxy

Настройка dnscrypt-proxy выполняется с помощью файла dnscrypt-proxy.toml. В Windows этот файл расположен по пути C:\dnscrypt-proxy\dnscrypt-proxy.toml, а в Linux это файл /etc/dnscrypt-proxy/dnscrypt-proxy.toml. Независимо от операционной системы, настройка делается одинаково.

Откройте этот файл любым текстовым редактором, например, в Linux:

sudo gedit /etc/dnscrypt-proxy/dnscrypt-proxy.toml

Содержимое этого файла зависит от вашего дистрибутива: иногда там полный дефолтный файл, иногда уже настроенный сопровождающими пакета.

Чтобы после редактирования файла dnscrypt-proxy.toml изменения вступили в силу, выполните следующую команду.

C:\dnscrypt-proxy\dnscrypt-proxy -service restart
  • Для Linux:
sudo systemctl restart dnscrypt-proxy.service

Чтобы понять, что настраивать, немного информации о том, как работает dnscrypt-proxy. Для преобразования имён в IP адреса dnscrypt-proxy скачивает большой список DNS серверов и в фоне проверяет их доступность и скорость отклика. Запросы делаются к разным DNS серверам в зависимости от скорости отклика и алгоритмов балансировки нагрузки. Это можно изменить — например, можно выбрать определённое имя или несколько имён и указать его (или их) в директиве server_names. Если директива server_names пустая, то будут использоваться все сервера. Если в директиве server_names указано одно или более имён DNS серверов, то будут использоваться только эти сервера.

К примеру, я предпочитаю DNS сервер Google, тогда значение моей директивы:

server_names = ['google']

Если хотите сразу несколько DNS серверов, то укажите их используя следующий синтаксис:

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

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

C:\dnscrypt-proxy\dnscrypt-proxy -list
  • В Kali Linux:
/usr/sbin/dnscrypt-proxy -list -config /etc/dnscrypt-proxy/dnscrypt-proxy.toml
  • В Arch Linux, BlackArch:
dnscrypt-proxy -list -config /etc/dnscrypt-proxy/dnscrypt-proxy.toml

Директива listen_addresses устанавливает порт и IP адрес для прослушивания. Обычно, нет необходимости здесь что-то менять. Для работы с сокетами устанавливается следующее значение:

listen_addresses = []

Установите fallback_resolvers на

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

Если вам зачем-то нужно вести журнал сделанных запросов, то найдите и раскомментируйте следующие строки:

[query_log] file = '/var/log/dnscrypt-proxy/query.log'

Как добавить DNS сервер в исключение

Предположим, вы хотите использовать полный список DNS серверов, но хотите исключить некоторые из них. К примеру, как написали в комментарии, в данный момент у сервера rdns.faelix.net просрочен сертификат, что приводит к выводу предупреждений от антивирусного ПО. По этой причине мы хотим исключить данный сервер из списка используемых.

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

В первую очередь нам нужно знать имя проблемного DNS сервера. Для этого перейдите на страницу https://dnscrypt.info/public-servers

Внизу найдите выпадающий список «Rows per page» (Строк на страницу) и выберите там «All» (Все).

Нажмите в веб-браузере Ctrl+f для поиска по странице. Мы знаем, что проблемный адрес rdns.faelix.net, попробуем поискать по части имени «faelix»:

Итак, имена IPv4 DNS серверов это faelix-ch-ipv4 и faelix-uk-ipv4.

В файле настроек найдите disabled_server_names и добавьте имена туда:

disabled_server_names = ['faelix-ch-ipv4', 'faelix-uk-ipv4']

Если вы используете IPv6 подключение, то также добавьте в список исключений и IPv6 имена.

Сохраните файл настроек и перезапустите службу dnscrypt-proxy.

Документация по настройке dnscrypt-proxy на русском

На странице карточки программы размещён пример конфигурационного файла dnscrypt-proxy с объяснением всех опций и переводом комментариев на русский язык: https://kali.tools/?p=5964

Проверка работы dnscrypt-proxy

Я уже упоминал, что благодаря кэшированию, повторные DNS запросы обрабатываются быстрее. Для проверки можно выполнить два раза подряд команду:

time dig kali.tools +short

Первый ответ получен через 0,047s, а второй всего через 0,006s. Конечно, это только доли секунды, но всё равно хорошо. К тому же, вы реже будете сталкиваться с ситуацией, когда браузер «задумался» во время запроса из-за того, что по какой-то причине некоторые DNS ответы идут слишком долго или вовсе потеряны.

Можно проверить, сколько идёт запрос «напрямую», без DoH:

time dig kali.tools +short @8.8.8.8

В моём случае это 0,058s-0,094s с периодическими таймаутами, видимо, задержка на СОРМ. Видимо, зашифрованный трафик пропускается «как есть», а незашифрованный проходит какую-то обработку, вроде как проверку доменов/IP по реестру запрещённых сайтов и т. п. Больше шифрования — больше скорости!

Запустите Wireshark и начните захват трафика. Через некоторое время проверьте с использованием фильтра

Там должно быть пусто, совсем.

Также с помощью фильтра посмотрим на пакеты, которые уходят к DNS серверу и возвращаются от него:

ip.addr == 8.8.8.8

Как можно увидеть на скриншоте, всё зашифровано, теперь у Интернет-провайдера и других посредников нет никакой возможности узнать или изменить содержимое DNS запросов и ответов.

Настройка dnscrypt-proxy для использования с IPv6

Во-первых, измените файл /etc/resolv.conf

sudo gedit /etc/resolv.conf

там должны быть строки

nameserver 127.0.2.1 nameserver ::1 options edns0 single-request-reopen EDNSPayloadSize 4096

В файле dnscrypt-proxy.toml

sudo gedit /etc/dnscrypt-proxy/dnscrypt-proxy.toml

Нужно установить прослушивание IPv6 интерфейса:

listen_addresses = ['127.0.0.1:53', '[::1]:53'])
ipv6_servers = false
ipv6_servers = true

Помните, что сервер google это IPv4 сервер, а google-ipv6 это IPv6 сервер. Поэтому если вы установили значение server_names, то не забудьте туда вписать и IPv6 сервера, например:

server_names = ['google-ipv6', 'google']

Связанные статьи:

  • OpenSSL: принципы работы, создание сертификатов, аудит (79.1%)
  • Настройка программ и операционных систем для работы через прокси (78.4%)
  • Tor: от азов до продвинутого уровня (ч. 5): Как перенаправить весь трафик через сеть Tor (53.9%)
  • Tor: от азов до продвинутого уровня (ч. 9): Опции тонкой настройки Tor (52.9%)
  • Tor: от азов до продвинутого уровня (ч. 10): Рецепты и подсказки по использованию Tor (52.9%)
  • Контроль доступа к сайту (блокировка по IP, User-Agent) (RANDOM — 2.4%)

факультете информационной безопасности от GeekBrains? Комплексная годовая программа практического обучения с охватом всех основных тем, а также с дополнительными курсами в подарок. По итогам обучения выдаётся свидетельство установленного образца и сертификат. По этой ссылке специальная скидка на любые факультеты и курсы!

Рекомендуется Вам:

31 комментарий to Как включить DNS через HTTPS и для чего это нужно

«Распакуйте скаченный архив — в нём папка «win64». Переименуйте эту папку в «dnscrypt-proxy» и переместите в корень диска C:\. Таким образом, папка и все файлы расположены по пути C:\nscrypt-proxy\.» У вас опечатка, переименовать папку нужно в \nscrypt-proxy\

Alexey :

Приветствую! Спасибо, что обратили внимание. В принципе, оно и так работало (видно по скриншотам), но для красоты поправил во всех командах. Но на скриншотах осталось как было.

У меня еще вопрос, список автоматически загружаемых dns-серверов по умолчанию безопасен или нужно все же выбрать определенные (известные как гугл например)? Так то с предлагаемым списком cерверов dns работает очень шустро, не хотелось бы отказываться ��

Alexey :

Полный список DNS серверов, которые использует dnscrypt, можно посмотреть на этой странице: https://dnscrypt.info/public-servers/. Там же есть их описание. Мне не нравится, что многие из них что-то фильтруют (блокируют). Какие-то из них ведут журналы. Кстати, DNS сервера Google ведут журналы, но ничего не блокируют. Можно было бы составить списки по описанию, например, отобрать те из них, в чьём описании встречается uncensored и non-censoring и которые не ведут журналы, но лично я не понимаю, почему мы должны верить тому, что написано. То есть если вас беспокоит, будут ли сохранены ваши запросы в журнал, то да, надо отбирать те из них, кто журнал не ведёт (по их же словам). Если вас беспокоит цензура, то опять придётся выбирать те, которые ничего не фильтруют. Если эти вопросы вас не беспокоят, то, наверное, можно использовать все сервера.

Ещё интересные ссылки

  • https://github.com/DNSCrypt/dnscrypt-resolvers/blob/master/v3/relays.md
  • https://download.dnscrypt.info/dnscrypt-resolvers/v3/relays.md

Установил, все работает. Однако через месяц работы Kaspersky Total Security выдал следующую инфу: «Невозможно гарантировать подлинность домена, с которым устанавливается зашифрованное соединение» — «программа dnscrypt-proxy.exe, веб-адрес: rdns.faelix.net», Причина:»Этот сертификат или один из сертификатов в цепочке не актуален». Подскажите: как с этим бороться? Обращать внимание или игнорировать? При каждом запуске компа — нетбука высвечивается вышеуказанная инфа

Alexey :

Приветствую! Я открыл этот адрес в веб-браузере и даже там показано, что сертификат данного субдомена просрочен. Если вы используете полный список DNS серверов, то добавьте этот адрес в исключение. Или составьте свой собственный список DNS серверов, которые, по вашему мнению, заслуживают доверие.

Alexey :

Написал в статье раздел «Как добавить DNS сервер в исключение» на примере вашего проблемного сервера.

в wiresharke : ip addr == 8.8.8.8 — не показывает трафик — это правильно? ( так и должно быть? ) у вас на скриншотах все таки показан зашифрованный трафик

Alexey :

8.8.8.8 — это IP адрес DNS сервера Google который я выбрал в статье в качестве примера. Если вы выбрали другой DNS сервер или оставили автоматический выбор, то трафик к 8.8.8.8 может отсутствовать.

Доброго времени, Алексей Вышла новая версия исполняемого файла в windows понятно. В Kali установка была из репозитория. Файл автоматически версию не обнавляет, как заменить? Скачать с github установочный файл для linux amd64?

Alexey :

Приветствую! В Linux, тем более Rolling дистрибутиве основанном на Debian Testing, которым является Kali Linux, dnscrypt-proxy обязательно обновится, причём раньше чем во многих других дистрибутивах. К тому же, если посмотреть список изменений dnscrypt-proxy, то в версии 2.1.0 (от августа этого года) изменения несущественные. А в версии 2.1.1 (от сентября этого года), исправляют ошибки, которые были «представлены» в версии 2.1.0… Вам действительно не терпится получить эти выпуски? И если ответ «да, не терпится», то переходите на Arch Linux — там пакеты обновляются чуть ли не раньше, чем на официальных сайтах )))))

У меня в Kali версия файла до сих пор 2.0.45, в поиске пакетов также только эта версия, поэтому возник вопрос, возможно я что-то путаю.

Alexey :

  • 2.1.1 — последняя версия, выпущена недавно, исправляет баги, возможно, добавляет новые
  • 2.1.0 — незначительные улучшения, баги
  • КАКИЕ-ТО ТАМ БЕТЫ
  • 2.0.45 — последняя стабильная версия ветки 2.0.*, эта версия сейчас в репозитории

В репозитории сейчас последняя стабильная версия, за исключением двух совсем недавних. Что в этом вам кажется неправильным? Ветка 2.1.* чуть устаканется и пойдёт в репозитории.

Опять же, повторюсь, самые последние версии пакетов не входят в достоинства Debian, а уж тем более производные вроде Ubuntu и Linux Mint. Или вы живёте с этим, или переходите на Arch Linux.

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

Благодарю. Проблемы нет, всё работает. Хотел доп. пояснения по версии. За последними пакетами не гонюсь, понимаю, что в репозитории cтабильной ветки остается стабильный пакет до последнего, но руки «чесались»)

Работают только восьмерки и единицы. Для остальных бубен?

Alexey :

Нет. Вы что-то не так делаете. Хотя я не понимаю, о чём именно вы говорите… я, например, говорю о dnscrypt-proxy.

Да — dnscrypt-proxy.Получилось запустить только google и Cloudflare. Остальные FATAL ….. че-то там. Cloudflare в dnsleaktest говорит: 172.68.15.190 None Cloudflare Moscow, Russian Federation 172.68.15.196 None Cloudflare Moscow, Russian Federation 172.68.9.113 None Cloudflare Moscow, Russian Federation

Alexey :

Остальные FATAL ….. че-то там.

Что именно? Вас бы вряд ли устроил мой ответ «чё-то там сделайте чтобы чё-то там заработало». Я у себя выбрал в качестве DNS сервера НЕ Google Public DNS и НЕ Cloudflare, перезапустил службу DNSCrypt-proxy — всё работает. Если выбираете какие-то определённые сервера DNS, то напишите какие — могу проверить с компьютера в РФ (возможно, кто-то из них блокируется РКН). Чем больше конкретики, тем лучше — пишите ошибки полностью, желательно приводите настройки. Потому что у меня всё работает (я использую небольшой список отобранных DNS серверов, за работоспособность остальных DNS я ничего сказать не могу, но могу проверить). Результат dnsleaktest говорит о двух вещах: 1) Вы правильно настроили DNSCrypt и он у вас действительно работает 2) Вы не понимаете принцип работы/цели DNS через HTTPS Цель DNS через HTTPS в том, чтобы посредники (передатчики) вашего Интернет-трафика (например, ваш Интернет-провайдер или хакер, выполняющий в отношении вашего компьютера атаку человек-посередине) не могли бы записать и/или модифицировать ваши DNS запросы и получаемые ответы. Ни для каких приложений на вашем компьютере, в том числе веб-браузера, открывшего сайт https://dnsleaktest.com/, ваш DNS сервер НЕ является секретом. DoH НЕ пытается скрыть DNS сервер от веб-сайтов. DoH предотвращает прослушивание и модификацию DNS трафика для тех, кто может получить к нему доступ «на проводах» (как уже было сказано, это может быть Интернет-провайдер, или СОРМ). При использовании технологии DoH, НЕ является секретом, какой DNS сервер использует пользователь ни для Интернет-провайдер, ни для СОРМ — они видят, что до, например, IP адреса 8.8.8.8 идёт некий зашифрованный трафик. Конечно они могут догадаться, что это DNS запросы, поскольку 8.8.8.8 это популярный DNS сервер. Но для них весь трафик зашифрован — они не могут узнать, какие именно запросы вы туда отправляете и не могут подменить ответы. Именно это я и показывал в тестах Wireshark — распознать DNS запросы невозможно, но факт того, что он идёт до определённого IP, виден.

Благодарю! для opendns: sudo systemctl restart dnscrypt-proxy.service
$ /usr/sbin/dnscrypt-proxy -list -config /etc/dnscrypt-proxy/dnscrypt-proxy.toml
[2022-02-11 18:06:42] [NOTICE] dnscrypt-proxy 2.0.45
[2022-02-11 18:06:42] [NOTICE] Source [public-resolvers] loaded
[2022-02-11 18:06:42] [FATAL] No servers configured так для всех в таблице кроме жужла и Cloudflare . И кстати в wireshark-е — только 1.0.0.1 (Cloudflare) И почему Cloudflare типа стучит в Moscow, Russian Federation ? Хочу чтоб был за бугром. Или это норм, или РКН? Этот момент бы пояснить плиз. server_names = [‘opendns’]
fallback_resolvers = [‘208.67.222.222:53′,’208.67.220.220:53’] [query_log]
file = ‘/var/log/dnscrypt-proxy/query.log’ [nx_log]
file = ‘/var/log/dnscrypt-proxy/nx.log’ [sources]
[sources.’public-resolvers’]
url = ‘https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md'
cache_file = ‘/var/cache/dnscrypt-proxy/public-resolvers.md’
minisign_key = ‘f6LRCGA9i53mlYGPpvWucNSCh1CBM0QTaLn73YMJKJBJHVGCVHGCH66’
refresh_delay = 72
prefix = »

Alexey :

Начну новую ветку, чтобы сообщения не были слишком узкими. При использовании опции -list ведь даже не происходит попыток подключиться к серверам. Эта опция просто выводит список серверов, которые в конфигурационном файле указаны в качестве DNS серверов. Более того, если ничего не трогать и всё оставить как есть, то опция -list просто выведет полный список серверов. А если настроить директиву server_names, то опцией -list будут выведены сервера, которые вы выбрали для использования. Чтобы получить [FATAL] нужно что-то (скорее всего раздел [sources.’public-resolvers’]) самому напортить в своём конфигурационном файле. В этой инструкции показано как настроить основные моменты в dnscrypt-proxy, если о каких-то частях конфигурационного файла ничего не сказано, это не означает, что их можно удалять или произвольно менять. Попробуйте скачать исходный конфигурационный файл и проверить с ним. Что касается выбора DNS сервера, то выбор иностранной компании не означает, что физически DNS сервер будет находится заграницей. К примеру, если в качестве DNS прописать 8.8.8.8, IP который принадлежит Google и который находится в США, а затем зайти на https://dnsleaktest.com/, то выяснится, что компьютер действительно использует DNS сервер Google, но расположенный в Финляндии… Это контринтуитивно, но компании, имеющие сервера в разных странах, могут настроить маршрутизацию трафика так, что пользователи будут использовать ближайший к ним сервер, независимо от указанных в их конфигурациях IP. Это настраивается на уровне маршрутизации трафика между сетями ISP (Интернет-провайдеров). Проще говоря, вы не можете на это повлиять/изменить. Так и вышло в вашей ситуации. Вы выбрали 1.1.1.1 в качестве DNS сервера. Этот IP принадлежит Cloudflare. Но фактически для ваш компьютер в качестве DNS сервера использует IP 172.68.15.196, который также принадлежит серверу Cloudflare и находится в Москве (просто потому, что он ближайший к вам). Это может определяться, например, протоколом BGP (Border Gateway Protocol) или другими протоколами которые отвечают за маршрутизацию трафика в сети Интернет и о существовании которых большинство пользователей даже не догадывается. Чтобы получить самые общие представления посмотрите: Что такое BGP и почему от него зависит Интернет? Так вот, чтобы ваш компьютер использовал DNS сервера за пределами РФ, вам нужно (можно выбрать что-то одно): 1. Использовать DNS сервер компании, не имеющей серверов в РФ 2. Использовать VPN или прокси-сервер, находящийся за пределами РФ

В чем-то Вы мне постоянно приоткрываете глаза. Зациклилсо чет я на OpenDNS. А оказывается OpenDNS прекратил поддерживать DNSCrypt Proxy (вычитал на хабре).А надо-то всего-то dnscrypt.info/public-servers/ Спасибо за Ваш труд, и за отличнейший ресурс. Читал ваши материалы по xss. Хотелось бы про DOM. Кучу англ/яз ресурсов перелопатил — каша в голове. CTF-ка ну никак не дается.

DNS через HTTPS вы просто поменяли Хозяина, как работодателя. Где здесь шифрование? О вас всё знал ваш провайдер, а теперь всё знает Гугл или что-там у вас в настройках, кто теперь Хозяин (принимает DNS). Запрос DNS после тунеля HTTPS у кого приземляется, тот и ваш Хоязин.

Alexey :

Во-первых, у вас фиксация на слове «Хоязин/Хозяин» и это точно какая-то нездоровая хрень — но это не ко мне. Во-вторых, у вас полное непонимание технической части. На DNS сервера запросы могут приходить, например, от пользователей за NAT (технология при которой большое количество пользователей используют один единственный IP адрес) — при таких условиях даже при большом желании DNS сервер не может ответить, какому именно пользователю принадлежит конкретный запрос. А кроме IP адреса у DNS сервера больше нет способов индивидуализации пользователей. У Интернет-провайдеров достаточно средств для индивидуализации и сопоставления каждого DNS запроса/ответа с конкретным пользователем, заключившим договор. В-третьих, главная цель DoH это даже не анонимизация — об этом в комментариях чуть выше. Главная цель — предотвратить атаку DNS спуфинга (подмену DNS ответов, простая, но опасная атака). В-четвёртых, то, как у вас подгорает от этой технологии, говорит о том, что она действительно нужна и на самом деле действенная! Ну и в-пятых, самое главное — если вам не нужно — не делайте это! Всё на этом сайте только для тех, кому это нужно и кто понимает для чего это. Вас что, кто-то заставляет себе что-то настраивать? Живите как живёте — можете даже не заходить на этот сайт, я не против )))) Хотя DoH сейчас внедряется повсеместно, от веб-браузеров до ОС. Пригорает у вас или не пригорает — DoH скоро будет везде.

добрый день, а если у меня доменная сеть и ДНС сервер расположен на контроллере домена. могу я использовать такой вариант в связке с dnscrypt-proxy ? как это корректно реализовать?

Здравствуйте. У меня вроде всё заработало, но проверочная команда dnscrypt-proxy -resolve example выдаёт [FATAL] Unable to load the configuration file [dnscrypt-proxy.toml] — Maybe use the -config command-line switch?

День добрый! scaleway-fr отказал чет. Прописал scaleway-ams.Все вроде поднялось.Но в wireshark-е в фильтре ip.addr==51.15.122.250 только udp. Это норм?

dnscrypt-proxy�� :
Отличная статья, как и все остальные на Ваших сайтах, очень благодарен

Alexey :

Добавлен раздел 6.2.1 Как включить DNS через HTTPS (DoH) на уровне операционной системы в Windows (в настройках ОС) Теперь включить DNS через HTTPS (DoH) в Windows 11 можно без установки дополнительного ПО, но есть ограничения — выбрать можно только из предложенных DNS серверов.

Здравствуйте. Сейчас попробовала установить на Kali, пишет: Package dnscrypt-proxy is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source.

Alexey :

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *