3) Убираем все существующие DNS-сервера, чтобы поля Servers и Dynamic Servers (из DHCP Client) были пустыми и все запросы шли через DNS over HTTPS (не обязательно для 6.47.1+). В союзе уверены, что в случае принятия закона будет необходимо модернизировать или изъять криптографии из всех государственных информационных систем, что повлечет за собой бюджетные затраты. Скорее всего, вам нужно будет добавить один из этих дружественных DoH DNS-серверов в настройки DNS вашей операционной системы, если вы хотите, чтобы DoH постоянно работал в Vivaldi.
Настройка DoH
Перед включением необходимо определиться, какой сервис вы будите использовать. На сегодняшний день их достаточно и выбрать есть из чего, так же вы может быть захотите свой сервер поднять. Из общедоступных есть следующие:
В примере я буду использовать проверенный временем Cloudflare. Они обещают не передавать аналитику третьим лица.
Открываем IP – DNS и вставляем строку резолвера в Use DoH Server
Обратите внимание на адреса в Servers. Это классические вышестоящие резолверы имен. Их убирать не нужно. Потому что Mikrotik не будет знать, какой IP соответствует cloudflare-dns.com. Да, это нюанс, про который нельзя забывать.
Попробуем проверить работу по новой технологии через nslookup.
Так же видно, что в кэше тоже ничего нет. В чем может быть причина? Правильно в сертификате!
MikroTik поддерживает DNS over HTTPS (DoH).
Импорт сертификатов
RouterOS ничего не знает о сертификате Cloudflare и о других, т.к. в него не импортированы корневые публичные ключи глобальных CA и по этому он не может выстроить доверие. Допустим в ОС Windows они уже идут в составе и добавляются / удаляются с обновлениями.
Прежде чем импортировать корневой CA вам нужно понять, кем был выпущен сертификат для одного из сервис-провайдеров. Допустим, для моего примера выпустил DigiCert.
Качаем его публичную часть по этой ссылке. Делаем его Upload на девайс, после в System – Certificates импортируем.
Теперь все отлично. Как вы видите, ничего сложного нет, выбираем сервис, который вам больше нравится, прописываем его в настройках и импортируем CA того, кто выпустил вашему сервису сертификат, и все на этом настройка DoH на MikroTik завершена.
Представитель Microsoft сообщил, что компания поддерживает DoH, но они не могут поделиться своими точными планами. Однако, поскольку DoH в Vivaldi работает так же, как и в Chrome, он не будет шифровать DNS-запросы, если пользователь не использует DNS-сервер для всей ОС, который также имеет интерфейс DoH, и указан выше на этой странице. Для блокировки сайтов провайдерам или регуляторам требуется знать доменное имя URL , получаемое через DNS-запрос, и IP-адрес блокируемого ресурса.
Протокол DNS-over-HTTPS
По стандарту поддерживается только HTTP/2 и защищённое соединение TLS.
Отправка DNS-запроса может производится стандартными методами GET и POST. В первом случае запрос трансформируется base64URL-encoded строку, а во-втором — через тело POST-запроса в двоичной форме. При этом при запросе и при ответе DNS используется специальный MIME-тип данных application/dns-message.
Обратите также внимание на заголовок cache-control: в ответе со стороны веб-сервера. В параметре max-age содержится значение TTL для возвращаемой записи DNS (или минимальное значение если возвращается их набор).
Исходя из вышеизложенного, функционирование DoH сервера состоит из нескольких этапов.
- Получить HTTP запрос. Если это GET то декодировать пакет из base64URL кодировки.
- Отправить этот пакет DNS серверу.
- Получить ответ от DNS сервера
- Найти минимальное значение TTL в полученных записях.
- Вернуть клиенту ответ по HTTP.
Собственный DNS-over-HTTPS сервер. Как хоббиту шифровать DNS запросы – SecurityForAll
Свой DNS-over-HTTPS сервер
Наиболее простым, быстрым и эффективным способом запустить свой собственный DNS-over-HTTPS сервер представляется использование HTTP/2 веб-сервера H2O, о котором автор уже вкратце писал (см. «Высокопроизводительный веб-сервер H2O»).
Исключение составляет лишь обработчик URL /dns-query за который отвечает, собственно, наш DNS-over-HTTPS сервер, написанный на mruby и вызываемый через опцию обработчика mruby.handler-file.
Обратие внимание, что за обработку пакетов DNS отвечает локальный кэширующий сервер, в данном случае Unbound из стандратной поставки FreeBSD. С точки зрения безопасности это оптимальное решение. Впрочем, ничто не мешает заменить localhost на адрес другого DNS, который вы предполагаете использовать.
Отстаётся перезапустить H2O и посмотреть что же из этого получилось.
Выполняйте эти действия одно за другим. Если предпринятые меры не помогли, переходите к следующему способу. В организации Роскомсвобода полагают, что запрет использования современных протоколов и алгоритмов шифрования, которые применяются все большим количеством веб-сервисов и ИТ-компаний, сродни запрету устанавливать надежные замки на двери или непрозрачные занавески на окнах. Если этот функционал не нужен, то просто закомментируйте удалите строку с портом 53 в файле root ipt-set и перезагрузите сервер.
Все настройки выполнены в VPS от hostsailor.com. У других хостеров наверняка также, но могут быть нюансы.
Всё, что написано ниже, написано только для маленьких хоббитов волею случая проживающих в Мордоре и находящихся под надзором злобного Саурона. Это просто сказка, любые совпадения с реальностью случайны.
Всё, что описано ниже, выглядит сложным. Но это не сложно . С этим справится любой хоббит, даже если у него лапки. Нужно просто верить в себя и следовать плану.
В этих записях вписан IP арендованного хоббитом VPS. Думаю не нужно напоминать, что виртуальный сервер должен находится за пределами Мордора. Хоббит, используя эту статью, арендовал предельно дешёвую виртуалку с такими параметрами:
Как видно, на сервере установлена операционная система CentOS 7. Далее нужно настроить защищённый вход на сервер, как описано здесь, и файрволл сервера, как описано здесь. Только при настройке файрволла нужно в ipt-set записать другое содержимое:
Не забудьте про правильное имя внешнего интерфейса в переменной IF_EXT (вторая строчка), как описано в этой статье.
Проверим, не сидит ли какая-то дефолтная http служба на нужном нам 80-ом порту:
Проверим, что операционная система теперь знает, где брать nginx и модули к нему:
Еще раз проверьте, что файрволл настроен и открытые порты выглядят так:
Теперь любым удобным способом откроем для редактирования файл /etc/nginx/conf.d/default.conf (хоббитам с лапаками рекомендую использовать WinSCP и Notepad++). В этом файле сразу после строчки
и вместо localhost вписать своё доменное имя. У хоббита это так (не удалите случайно точку с запятой!):
Файл можно сохранить и закрыть. Запускаем nginx и смотрим, что всё в порядке:
Дальше в браузере на компьютере переходим по доменному адресу сервера. У хоббита это http://ns1.theshire.ru
Оно живое! Но только по протоколу HTTP, а нам надо по HTTPS. Для этого нужно сделать SSL сертификаты от letsencryp. Сертификаты весь прогрессивный эльфийский мир делает с помощью Certbot. Поскольку epel-release мы не используем, то ставить certbot хоббиту придётся через жопу Pip.
Что делать, если DNS-сервер не отвечает — Лайфхакер
- Найти строчки, начинающиеся на «server_name», и заменить в них доменное имя ns1.theshire.ru на своё.
- Найти строчки, начинающиеся на «ssl_certificate», и заменить в них путь на сертификат своим. Свой путь можно найти в аналогичных строчках файла /etc/nginx/default.conf.old
Содержание статьи