Пошаговая инструкция по установке DNSCrypt в Windows

Материал из ТХАБ.РФ
Версия от 16:22, 7 ноября 2016; Админ (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

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

Инструкции даны с учётом того, что на компьютере установлена OC Windows 8 с русскоязычной локализацией. Для других операционных систем действия, возможно, будут несколько иными, но мало отличаться как по описанию, так и по приведённым снимкам экранов.

Конкретные IP-адреса, указанные в статье, актуальны на момент её написания и могут измениться в будущем. Не используйте их без проверки работоспособности.


Небольшой FAQ

Что такое DNS? Что такое DNS? Не вдаваясь в подробности, коих немало, можно сказать, что система DNS превращает имена серверов, например rutracker.org, в их IP-адреса, например 195.82.146.214. Так функционирует связь в интернете: соединение между машинами происходит по таким адресам, а не по привычным и более удобным для запоминания человеку именам различных сайтов. Когда вы хотите попасть на форум Рутрекера, вы просите ваш браузер соединиться с тем сервером, на котором этот форум работает. Браузер по имени домена rutracker.org определяет его IP-адрес и создаёт соединение с соответствующим сервером.

Что такое DNSCrypt? Что такое DNSCrypt? Опять же, в двух словах: это DNS-сервер, к которому можно подсоединиться стандартным образом из других программ для разрешения имён интернет-сайтов, т.е. преобразования строковых имён типа rutracker.org в IP-адреса типа 195.82.146.214. Сам этот сервер не занимается подобным преобразованием, а запрашивает его у заданного ему внешнего сервера. Суть использования DNSCrypt в том, что запрос внешнего сервера происходит в шифрованном виде и по нестандартному протоколу, что не даёт провайдеру возможность заменить DNS-ответ на свой и затрудняет выявление использования этой программы.

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

Что может сделать провайдер? Что может сделать провайдер? Ваш браузер обращается к локальной службе DNS и просит её определить IP-адрес нужного сервера. Служба обращается к тому серверу DNS, чей адрес прописан в настройках сетевого соединения компьютера. Так или иначе запрос либо попадает на сервер DNS вашего провайдера, либо проходит через его обычные сервера, чтобы достичь внешнего сервера DNS, например Яндекс.DNS или Google DNS. В этот момент провайдерская система может принять решение об измении ответа сервера, и вместо правильного IP-адреса 195.82.146.214 вы получите IP-адрес, например, провайдерского сервера, соединившись с которым, вы увидите в своём браузере страницу с информацией о блокировке. Или провайдер может вернуть неверный адрес, соединение с которым вообще невозможно. К тому же, ваша локальная служба DNS запомнит провайдерский ответ как правильный и впредь будет использовать его при последующих попытках соединения с тем же сайтом, пока срок действительности такого ответа не истечёт. Ещё одним неприятным моментом может стать то, что провайдер отметит факт запроса вами имени заблокированного сайта.

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

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

Антивирусы Антивирусные системы, работающие на машине, могут препятствовать запуску DNSCrypt и мешать её работе. Посему в случае каких-то подозрений на этот счёт либо находите в своих антивирусах способ внесения dnscrypt-proxy.exe в белые списки разрешённых для запуска и выхода в сеть приложений (это, конечно, предпочтительный вариант), либо отключайте антивирусы. Также неплохо бы зайти в настройки firewall (брандмауэра) операционной системы и посмотреть там аналогичные установки.


Установка DNSCrypt в Windows

Шаг 1. Скачайте последнюю версию DNSCrypt, на данный момент это 1.6.0.


Файл:DNSCrypt 01.png
Шаг 2. Распаковка zip.
 
Файл:DNSCrypt 022.png
Шаг 2. Путь для распаковки.
 
Файл:DNSCrypt 023.png
Шаг 2. Содержимое директории.

Шаг 2. Зайдите в директорию, куда скачался файл, и распакуйте его содержимое в корневую директорию диска C:. Нажмите правой кнопкой мыши на скачанном файле, выберите пункт меню «Извлечь все…» («Extract all…»), а в появившемся окне введите путь C: и нажмите кнопку «Извлечь» («Extract»). В результате у вас должна создасться директория C:\dnscrypt-proxy-win32. Чтобы не забыть версию установленной программы, переименуйте директорию в C:\dnscrypt-proxy-1.6.0. Внутри этой директории должны находиться файлы dnscrypt-proxy.exe, dnscrypt-resolvers.csv, несколько файлов .dll и прочие, проверьте это.

Внимание. Если вы решите выбрать другой путь установки DNSCrypt, имейте это в виду, когда далее в тексте будет встречаться путь C:\dnscrypt-proxy-1.6.0, и заменяйте его на свой. Правила тут обычные: 1) чем ближе к корню диска, тем легче жить, и 2) не надо использовать пробелы и русские буквы в именах директорий и файлов. Эта инструкция подразумевает, что выбран путь C:\dnscrypt-proxy-1.6.0.


Шаг 3. Теперь надо открыть файл dnscrypt-resolvers.csv и решить для себя, какой из перечисленных там серверов DNSCrypt мы хотим использовать. Вспомните, что DNSCrypt — это две парные друг другу программы, и сейчас мы выбераем серверную часть.

Выбрать не так уж сложно: посмотрите на 4-ю колонку списка из файла dnscrypt-resolvers.csv, это страна или город, где располагается сервер. Для начала найдите ту, что находится ближе к вам географически — так работа с сервером будет побыстрее. Критериев выбора может быть много и у каждого они индивидуальны. Давайте выберем Румынию? Выделите эту строку в файле, чтобы не потерять её.

Внимание. Для удобного просмотра файла dnscrypt-resolvers.csv потребуется какой-нибудь офисный пакет работы с таблицами, например MS Excel, OpenOffice Calc или LibreOffice Calc, они умеют открывать файлы этого типа. Если таких программ нет, открывайте его простым Блокнотом, хотя это будет не так удобно.


Файл:DNSCrypt 041.png
Шаг 4. Запуск cmd.exe.
 
Файл:DNSCrypt 042.png
Шаг 4. Переход в директорию DNSCrypt.

Шаг 4. Далее вам понадобится открыть приложение командной строки с административными правами. Автор делает просто: в Windows 8 (и, наверное, выше) можно нажать сочетание клавиш Win-X и в появившемся списке выбрать пункт «Командная строка (администратор)» («Command Prompt (Admin)»). Для других версий Windows откройте Windows Explorer (Проводник), введите в адресную строку: %WINDIR%\System32, нажмите Enter, там найдите файл cmd.exe, нажмите на нём правой кнопкой мыши и выберите пункт «Запустить от имени администратора» («Run as administrator»). Если система запросит подтверждение запуска, соглашайтесь. Далее, в открывшейся консоли надо перейти в директорию, где находится DNSCrypt. Введите:

CD C:\dnscrypt-proxy-1.6.0

и нажмите Enter.


Файл:DNSCrypt 05.png
Шаг 5. Тестирование выбранного сервера.

Шаг 5. Теперь мы протестируем тот сервер, который выбрали на шаге 3. В консоли введите команду:

dnscrypt-proxy -R ovpnto-ro --test=0

Помните, что мы выбрали Румынию? Имя румынского сервера «ovpnto-ro» (1-я колонка списка из файла dnscrypt-resolvers.csv), его мы тут и использовали.

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

[INFO] - [ovpnto-ro] does not support DNS Security Extensions
[INFO] + Namecoin domains can be resolved
[INFO] + Provider supposedly doesn't keep logs
[NOTICE] Starting dnscrypt-proxy 1.6.0
[INFO] Generating a new session key pair
[INFO] Done
[INFO] Server certificate #808464433 received
[INFO] This certificate looks valid
[INFO] Server key fingerprint is C64C:8DED:E891:8980:092D:9D00:23F2:0184:BE23:0264:D861:23F9:EEA4:1D9A:5199:746F

Мы видим, что сервер ответил. Из ответа видно, какие функции он поддерживает, а какие нет. Сертификат валиден, т.е. это именно тот сервер, за который себя выдаёт. Можно пользоваться.

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


Файл:DNSCrypt 06.png
Шаг 6. Установка сервера службой.

Шаг 6. Выбранный сервер нас устраивает и мы желаем пользоваться им для преобразования имён сайтов в IP-адреса. Вводим следующую команду для настройки DNSCrypt на работу с этим сервером:

dnscrypt-proxy -R ovpnto-ro --install

Видим, что сервер установился как служба в Windows, видим путь в Реестре, где теперь расположены его текущие настройки, и видим совет настроить наше сетевое соединение на осуществление DNS-запросов на адрес 127.0.0.1:53.


Шаг 7. Теперь вам требуется изменить настройки DNS вашего сетевого соединения. Так как в разных версиях Windows способ конфигурации сети различается, мы можем отправить вас в систему помощи Microsoft, где даны подробные инструкции.

Вы должны задать для DNS-сервера тот адрес, который был выведен в консоли после установки DNSCrypt, т.е. 127.0.0.1. Номер порта 53 указывать не надо, т.к. по умолчанию для DNS-запросов используется именно он.

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


Отключение DNSCrypt

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

dnscrypt-proxy --uninstall

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


Перенастройка DNSCrypt

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


Обновление списка серверов DNSCrypt

Довольно часто сервера DNSCrypt, многие из которых поддерживаются энтузиастами или небольшими сетевыми организациями на свои деньги, временно останавливаются или вовсе выводятся из эксплуатации, или могут работать нестабильно. В этом случае разработчики DNSCrypt обновляют список серверов, удаляя из него проблемные. Или наоборот, добавляют в него вновь появившиеся сервера. Это случается довольно часто: если посмотреть историю изменений файла dnscrypt-resolvers.csv, вы увидите, что различные изменения вносятся несколько раз в месяц. В результате может оказаться, что выбранного вами сервера уже нет в списке и он в любой момент может отказаться работать. Время от времени полезно обновлять этот файл. Просто загрузите его себе во временную директорию и посмотрите, что выбранный вами сервер не пропал оттуда и его параметры не изменились, или что его изменения вас устраивают (сравните с вашим текущем файлом). Затем положите новый файл поверх текущего, после этого отключите DNSCrypt, а затем заново включите его, используя старый либо вновь выбранный сервер.


Если разрешение имён перестало работать

Первым делом проверьте несколько привычных вам доменных имён, возможно, нужный вам сайт просто перестал функционировать или в настоящее время меняет свои настройки.

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


Файл:DNSCrypt 07.png
Неуспешное тестирование сервера.

Одной из причин отказа DNSCrypt может быть то, что выбранный вами сервер DNSCrypt временно не работает или вообще был выведен из эксплуатации. Это можно проверить несколькими способами, один из них описан тут. Запустите административную консоль, перейдите в директорию установки DNSCrypt, отключите службу DNSCrypt и выполните тестирующую команду из шага 5. В результате вы можете получить какое-либо сообщение об ошибке при связи и проверке сервера. Ошибки могут быть разные, но главное, что это ошибки, т.е. вы увидите в ответе строки, начинающиеся с [ERROR]. В примере автор использовал латвийский сервер, который был удалён из списка 15 января 2016 года. В этом случае вы должны выполнить действия, описанные в разделе Обновление списка серверов DNSCrypt.


Графические оболочки

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

DNSCrypt WinClient

Одной из графических оболочек является DNSCrypt WinClient. Она позволяет сделать почти все те же действия, что и оригинальная DNSCrypt, кроме шага проверки работоспособности выбранного сервера (шаг 5 основного раздела). Выполните его, если хотите, а остальное вы можете сделать с помощью этой программы.


Файл:DNSCrypt WinClient.png
Основное окно DNSCrypt WinClient.

Итак, идите на сайт WinClient и загрузите её последнюю на данный момент версию. Для вашего удобства сохраните файл dnscrypt-winclient.exe в той же директории, где вы установили DNSCrypt, а затем запустите его от имени администратора (как это сделать, рассказано в описании шага 4). Согласившись с предупреждением системы о запуске программы с администраторскими правами, вы увидите основное окно WinClient. Перейдите во вкладку «Config».


В зависимости от того, запущен ли у вас уже клиент DNSCrypt, некоторые надписи будут отличаться от того, что показано на приведённой картинке: левая кнопка будет иметь надпись «Install» (DNSCrypt не установлен или не запущен) или «Uninstall» (DNSCrypt в данный момент запущен), а правая кнопка, соответственно, «Start» или «Stop». В этом окне вы можете сделать те же самые шаги, что делали в основном разделе: выбрать подходящий вам сервер DNSCrypt (выпадающий список «Select Provider») и запустить ваш клиент с соответствующей настройкой. Нажимая на «Install», вы устанавливаете клиент как службу Windows, а нажимая на кнопку снова, удаляете эту службу. Нажимая «Start» / «Stop», вы запускаете и останавливаете клиент в обычном режиме, например, если вы не уверены в работоспособности выбранного сервера DNSCrypt и хотите временно запустить клиент, чтобы проверить его работу.

Когда вы настроили службу и запустили её, вы можете закрыть окно программы.

Единственным недостатком программы на данный момент является то, что, запускаясь, она не определяет выбранный вами сервер DNSCrypt и всегда выделяет первый элемент из списка доступных серверов (он берётся из того же файла dnscrypt-resolvers.csv). Имея это в виду, можно управлять вашим клиентом DNSCrypt удобней, чем в консоли.

DNSCrypt Windows Service Manager

Другой графической оболочкой является DNSCrypt Windows Service Manager. Функционально она почти не отличается от DNSCrypt WinClient, но имеет небольшое преимущество: она правильно показывает выбранный вами сервер DNSCrypt.


Файл:DNSCrypt Windows Service Manager 01.png
Основное окно DNSCrypt Windows Service Manager — сервис установлен.
 
Файл:DNSCrypt Windows Service Manager 02.png
Основное окно DNSCrypt Windows Service Manager — сервис не установлен.

Домашняя страница проекта находится на GitHub, а вы можете сразу загрузить архив с последней версией программы. Это ZIP-файл, внутри которого единственный исполняемый файл dnscrypt-winservicemgr.exe. Загрузите себе архив и извлеките из него исполняемый файл в ту же директорию, где вы установили DNSCrypt, а затем запустите его от имени администратора.

Вверху вы увидите список всех ваших сетевых интерфейсов, выберите тот, через который вы выходите в интернет. Ниже находится список серверов DNSCrypt из файла dnscrypt-winclient.exe («Select Provider») и выбор протокола («Protocol»), с помощью которого клиент будет отправлять DNS-запросы на сервер; выберите «UDP». Под списком серверов находится основная кнопка программы, она запускает («Enable») или останавливает («Disable») DNSCrypt как службу Windows. Наконец, внизу окна вы можете видеть текущее состояние DNSCrypt — запущен он (зелёная надпись «enabled») или остановлен (красная надпись «disabled»). Размер шрифта подобран неудачно и часть слова обрезается.

Когда вы настроили службу и запустили её, вы можете закрыть окно программы.

Ссылки