Для себя я выбрал opennic сервер с поддержкой dnscrypt.
dnscrypt будет полезен тем, у кого провайдер перехватывает днс ответы от альтернативных DNS серверов, или желающим не оставлять для ФСБ и Яровой в СОРМ лог запрошенных url.
Пинг ~23мс, Anycast, число хопов на трейсроутах до любых ресурсов вдвое короче стало, чем со стандартными днс от моего isp. И даже короче, чем с opendns от google (хорошо это или несовсем, не берусь судить однозначно). У этого сервера dnssec (DNS Security Extensions) не поддерживается, но в этом пока нет смысла для простого пользователя. За несколько месяцев использования проблем с этим сервером не наблюдал.
Напишу мануал для windows, настраивать 5 минут.
Для работы с dnscrypt сервером нужно установить службу в windows, которая будет заниматься шифрованием dns-резолва.
1)
Качаем свежую версию dnscrypt по этой ссылке
2) Распаковываем скачанный архив в папку юзера. Можно вбить %AppData% в адресной строке проводника и сразу попасть в C:\Users\[user name]\AppData\Roaming. Таким образом, распакованные файлы будут лежать по пути: "C:\Users\[user name]\AppData\Roaming\dnscrypt-proxy-win32".
Можно и в C:\Program Files\ папку положить, но я не советую так делать с программами, которые не устанавливаются через "setup" файл.
Заходим в распакованную папку "dnscrypt-proxy-win32".
3) Теперь нужно выбрать DNS-сервер с поддержкой opennic и dnscrypt. Я уже сделал это за вас, но если хотите поискать сами, вот ссылки на листы:
https://servers.opennicproject.org/
https://dnscrypt.org/dnscrypt-resolvers.html
https://github.com/jedisct1/dnscrypt-proxy/blob/master/dnscrypt-resolvers.csv
Не все сервера с поддержкой dnscrypt, умеют резолвить альтарнативные зоны opennic, будьте внимательны. Проверяйте ping и делайте tracert, чтобы найти сервер с небольшим пингом и нормальным трейсроутом. Избегайте российских серверов.
Российских советую избегать потому, что попробовал днс серверы яндекса и с удивлением обнаружил, что они занимаются блоировкой сайтов, отказываясь давать ip, заблокированных в РФ доменов! Второй российский сервер оказался с запредельным числом хопов, а третий вообще "протекал".
Если ваша основная цель при настройке dnscrypt не дать ФСБ и яровой собирать на вас досье, внимательнее проверяйте, где географически расположен сервер и кто его владелец (понятно, думаю, что сервер должен быть не в СНГ, а владелец не ражданином РФ). Провайдер не увидит ваши днс запросы, однако их видит сам DNS сервер, поэтому крутым анонимам стоит арендовать себе VPS и поднять собственный DNS сервер, чтобы не было нужды доверять чужому дядьке. Ну или хотя бы резолвить через VPN, чтобы вашего ip не было в логах днс сервера. Впрочем, для большинства будет достаточно и того, что сервер не российский, а логов лишился ваш провайдер.
4) Открываем файл "dnscrypt-resolvers.csv". Его нужно открыть в Excel или аналоге. Если у вас не установлен Excel, можно воспользоваться online редактором, например
этим.
Стираем все строки, чтобы не мешались. И заполняем данные выбранного сервера (серверов).
Необходимо правильно заполнить следующие поля: Resolver address, Provider name, Provider public key, Provider public key TXT record (если значение указано). Name можно задать произвольно. Остальные ячейки можно оставить пустыми.
Для сервера, который я выбрал, будут следующие значения:
Resolver address: 169.239.202.202:443 (кроме 443 порта сервер слушает ряд альтернативных, но я рекомендую оставить именно дефолтный 443)
Provider name: 2.dnscrypt-cert.dnsrec.meo.ws
Provider public key: 1A6A:D0A3:2B4C:5A61:A695:D153:670D:69AB:1690:3F9E:C3F7:F64F:13E5:35A3:18B2:28A5
Name: dnsrec.meo.ws
Сохраняем отредактированный csv файл под тем же именем в ту же папку, заменив старый.
5) Находясь в распакованной вами на шаге 2 папке, копируем из адресной строки проводника путь.
Запускаем от имени администратора консоль. Если кто не знает, что это такое: Ищем "cmd.exe" через меню "пуск", кликаем ПКМ и выбираем "запустить от имени администратора".
Пишем cd, затем вставляем скопированный путь. Получится:
cd C:\Users\[user name]\AppData\Roaming\dnscrypt-proxy-win32
Жмём Enter
6) Проверяем, живой ли сервер.
dnscrypt-proxy.exe -R "dnsrec.meo.ws" --test=0
Enter
Вместо "dnsrec.meo.ws", само собой, можете подставлять любые имена, добавленные вами в csv файл.
Должно написать что-то вроде:
скрытый текст
[INFO] - [dnsrec.meo.ws] does not support DNS Security Extensions
[INFO] + Provider supposedly doesn't keep logs
[NOTICE] Starting dnscrypt-proxy 1.9.4
[INFO] Generating a new session key pair
[INFO] Done
[INFO] Server certificate with serial #149***1 received
[INFO] This certificate is valid
[INFO] The key rotation period for this server may exceed the recommended value. This is bad for forward secrecy.
[INFO] Server key fingerprint is E737:***:6376
Как я уже говорил, отсутствие DNS Security Extensions пугать не должно. Эта фича нам не даст никаких дополнительных профитов.
Строка "The key rotation period..." тоже не является ошибкой.
В случае ошибок, пробуем другой сервер.
7) Устанавливаем службу dnscrypt в windows и определяем сервер.
dnscrypt-proxy.exe -R "dnsrec.meo.ws" --install
Enter
Последняя строка сообщит нам:
[INFO] Now, change your resolver settings to 127.0.0.1:53
8) Идём в свойства сетевого адаптера, через который подключаемся к интернету. Если используем два адаптера для подключения - как кабельный ethernet, так и wifi адаптер, изменяем свойства обоих.
Панель управления\Сеть и Интернет\Сетевые подключения
ПКМ по адаптеру -> свойства
Двойной клик по строке с "TCP/IPv4"
В первом поле под "использовать следующие адреса DNS серверов" вписываем 127.0.0.1
Порт поумолчанию и так используется 53ий, его нигде не нужно указывать.
OK -> OK
Таким образом, стандартный DNS клиент windows будет посылать запросы на 127.0.0.1:53, где их примет установленная нами служба dnscrypt-proxy.exe, зашифрует и только затем отправит на сервер. Соответственно, расшифровка ответа от DNS сервера произойдет в обратном порядке.
9) Стираем кеш dns:
ipconfig /flushdns
Enter
Перезапускать tcpip стек не нужно, но кеш стереть обязательно при смене днс сервера.
10) Дополнительно можно проверить днс на протечку, читай ниже первый абзац под ♦.
Готово.
Теперь вы не только можете открывать альтернативные домены из emercoin, но и шифровать ваши DNS-запросы.
♦ Подменяет ли ваш провайдер не зашифрованные днс ответы от альтернативных серверов, можно проверить, например так:
Прописываем в свойствах адаптера dns адрес google 8.8.8.8
Идём на сайт
https://dnsleaktest.com/ и жмём extended test
В результате вы должны получить одну строку. Если строки две, одна из которых с описанием вашего провайдера, значит он ваш днс резолв слушает и/или перехватывает.
Так же можно проверить на протечку и ваш dnscrypt сервер после настройки.
♦ Если захотите на время перестать использовать dnscrypt, просто удалите в свойствах адаптера адрес локал хоста (127.0.0.1) и впишите любой, какой захотите. Или поставьте галочку "получать автоматически".
Затем очистите кеш днс: ipconfig /flushdns
♦ Чтобы сменить сервер, просто удалите службу целиком через dnscrypt-proxy --uninstall
Затем установите вновь в обычном порядке (как на шаге 7), указав имя нового сервера.
Не забудьте стереть кеш днс.
♦ Если захотите полность удалить службу dnscrypt, выполните команду:
dnscrypt-proxy --uninstall
И удалите распакованную папку.
Удалите адрес 127.0.0.1 в свойствах сетевого адаптера
Очистите кеш днс.
♦ Как обновлять dnscrypt?
1) Сначала проверим версию установленной службы.
Для этого зайдите в папку с dnscrypt: C:\Users\[user name]\AppData\Roaming\dnscrypt-proxy-win32, зажмите shift и кликните ПКМ. Выбираем "открыть окно команд".
Вбиваем в консоль:
dnscrypt-proxy --v
Видим версию и дату компиляции, запоминаем.
Закрываем консоль.
2) Проверяем, есть ли более свежая версия. Для этого идём сюда
https://download.dnscrypt.org/dnscrypt-proxy/
В соседнем столбце от архива со свежайшей версией под именем "LATEST-win32-full.zip" указана дата компиляции (сейчас это "07-May-2017 13:43"). Если эта дата актуальнее, чем вы получили в консоли на шаге 1, скачиваем архив.
Так же, можно пролистав список ниже, найти указание версии в имени архива датированного актуальным числом. Сейчас это архив "dnscrypt-proxy-win32-full-1.9.5.zip".
Ссылки LATEST-win32-full.zip и dnscrypt-proxy-win32-full-*.*.*.zip датированные одинаковым числом, скачают один и тот же файл.
Распакуйте скачанный архив куда-нибудь. Сразу удалите файл dnscrypt-resolvers.csv, имевшийся в архиве.
3) Открываем консоль (cmd.exe) обычным способом из меню пуск. Останавливаем службу следующей командой:
net stop dnscrypt-proxy
Получим сообщение: "Служба "dnscrypt-proxy" успешно остановлена."
Не спешим закрывать консоль.
4) Удаляем все файлы,
кроме dnscrypt-resolvers.csv, в папке C:\Users\[user name]\AppData\Roaming\dnscrypt-proxy-win32.
Остановить службу на предыдущем шаге нужно было, чтобы ОС позволила удалить файл dnscrypt-proxy.exe устаревшей версии.
Перемещаем в папку файлы, распакованные из свежего архива на шаге 2.
5) Запускаяем службу обратно командой:
net start dnscrypt-proxy
Получим сообщение:
Служба "dnscrypt-proxy" запускается.
Служба "dnscrypt-proxy" успешно запущена.
Готово.
ps возможно, в будущем можно будет обновлять программу одной командой в консоли, без возни со скачиванием архива и тп. Но пока разработчики не реализовали эту функцию.