Если вы беспокоитесь о своей безопасности, то вам необходимо знать, что DNS трафик обычно не использует не какого шифрования. А это может привести как к атаке, так и к утечке вашего трафика. Даже если вы используете например VPN, например Wireguard о котором можно прочесть в данной статье, то все равно ваш трафик не защищен. А все дело в том, что по средством DNS могут вычислить все ваши посещаемые ресурсы. Соответственно, так же могут произвести и атаку, по этому, по мимо того же VPN, желательно еще и шифровать трафик DNS. Этим мы и займемся , а именно рассмотрим способ шифрования DNS трафика методом DNS поверх TLS. Шифровать трафик DNS можно и DNSCrypt-proxy, о котором расскажу как нибудь в следующей статье.
Шифруем DNS трафик
Для шифрования трафика DNS необходимо установить пакет “Stubby”, вкратце, это локальный DNS резолвер, который шифрует трафик по средством DNS поверх TLS. И так, для установки в операционной системе Linux, открываем терминал и вводим команду:
Для Debian/Ubuntu
sudo apt install stubby
Для Arch/Manjaro
sudo pacman -S stubby
По умолчанию шифрование DNS идет через резолвер Sinodun, можно отредактировать конфигурационный файл и вписать туда например DNS от Cloudflare, о котором вы можете прочитать на WIKI. Так же можно найти и другие сервисы, предоставляющие подобные услуги. Либо, поднять своей сервер и настроить на нем DNS. Но, об этом в следующий раз.
Настраиваем резолвер DNS
Для редактирования конфигурационного файла “stubby.yml” воспользуемся текстовым редактором Nano, о котором вы можете прочитать в данной статье. И так, для редактирования файла “stubby.yml” переходим в терминал и вводим команду:
sudo nano /etc/stubby/stubby.yml
Далее, нам необходимо найти строку “DEFAULT UPSTREAMS” и закомментировать резолверы которые идут по умолчанию:
Далее спускаемся до строки “OPTIONAL UPSTREAMS” и в ней раскомментируем необходимый нам резольвер, в нашем же случае это DNS от Cloudflare. Cloudflare предоставляет пользователям DNS на адресах 1.1.1.1 и 1.0.0.1 для сетей с IPv4 и 2606:4700:4700::1111 и 2606:4700:4700::1001 для сетей с IPv6. Их то мы и раскомментируем:
Вы же можете выбрать что то иное из списка, либо, добавить свой сервер DNS, для этого достаточно вписать примерно следующую конфигурацию:
## Name DNS 8.8.8.8
— address_data: 8.8.8.8
tls_auth_name: «dns.name»
Давайте поясню, вместо “Name” вам необходимо вписать имя вашего сервера, далее, вместо “8.8.8.8” вписываете ваш ip адрес сервера. После чего сохраняете отредактированный файл сочетанием клавиш “ctrl + o” и выходите из редактора Nano сочетанием клавиш “ctrl +x”.
Настройка сети
Теперь необходимо задать параметры DNS в настройках сети, приведу пример настройки в рабочем окружении Gnome 3, в других средах рабочего стола принцип такой же. И так, открываем настройки, далее идем в настройки сети и щелкаем на шестеренку:
В открывшемся окне переходим во вкладку “ipv4” и отключаем ползунок настройки автоматического назначения DNS, после чего вписываем в поле значение:
127.0.0.1
Применяем настройки и теперь можно запустить “stubby”, для этого выполняем следующие команды:
sudo systemctl start stubby
sudo systemctl enable stubby
Проверяем шифрование DNS
Для проверки DNS шифрования существует множество способов, мы же воспользуемся Termshark. Termshark по сути тот же Wireshark. Так что вы можете выбрать для проверки шифрования DNS Wireshark, так как по большей части, функционал у них одинаков, и Termshark является надстройкой над Wireshark. И так, для установки Termshark необходимо сначала установить пакет “tshark”, для этого вводим команду в терминале:
Для Debian/Ubuntu
sudo apt install tshark
Для Arch/Manjaro
sudo pacman -S wireshark-cli
После установки необходимо вашего пользователя добавить в группу wireshark, для этого вводим команду:
sudo usermod -a -G wireshark name
Где слово “name” меняем на имя вашего пользователя:
Теперь скачиваем файл с архивом Termshark, для этого переходим по адресу:
И качаем архив предназначенный для Linux , после чего необходимо распаковать архив и перейти в папку Termshark, как это сделать в терминале читайте в этой статье где написано как распаковывать архивы и в этой, где написано как перемещаться по директориям. После чего запускаем файл termshark, для чего вводим следующую команду:
sudo ./termshark
В открывшемся окне программы поле “Filter” вводим “DNS”, затем нажимаем кнопку “Apply”:
Как видите, в окне программы не чего не отображается, так как трафик DNS у нас шифруется, в противном же случае у вас будут отображаться передаваемые сетевые пакеты.
Заключение
Это лишь один из способов зашифровать ваш DNS трафик, и в данный же момент это лишь усилит вашу защиту и предотвратит утечку вашего трафика. В сети вы так же можете найти и другие сервисы предоставляющие безопасные DNS, но, не забывайте, что тот кто контролирует DNS, контролирует и весь трафик, который проходит через него и в случае чего, может так же произвести атаку. По этому доверять первым попавшимся сервисам так же не стоит. Более подробно про то, что такое DNS вы можете прочитать на WIKI.