Сб. Фев 27th, 2021

Infernal news

News for every taste

Шифруем DNS трафик в системах Linux

DNS трафик

Если вы беспокоитесь о своей безопасности, то вам необходимо знать, что 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 трафик в системах Linux

По умолчанию шифрование DNS идет через резолвер Sinodun, можно отредактировать конфигурационный файл и вписать туда например DNS от Cloudflare, о котором вы можете прочитать на WIKI. Так же можно найти и другие сервисы, предоставляющие подобные услуги. Либо, поднять своей сервер и настроить на нем DNS. Но, об этом в следующий раз.

Настраиваем резолвер DNS

Для редактирования конфигурационного файла “stubby.yml” воспользуемся текстовым редактором Nano, о котором вы можете прочитать в данной статье. И так, для редактирования файла “stubby.yml” переходим в терминал и вводим команду:

sudo nano /etc/stubby/stubby.yml

Далее, нам необходимо найти строку “DEFAULT UPSTREAMS” и закомментировать резолверы которые идут по умолчанию:

Шифруем DNS трафик в системах Linux

Далее спускаемся до строки “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 трафик в системах Linux

Вы же можете выбрать что то иное из списка, либо, добавить свой сервер 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, в других средах рабочего стола принцип такой же. И так, открываем настройки, далее идем в настройки сети и щелкаем на шестеренку:

Шифруем DNS трафик в системах Linux

В открывшемся окне переходим во вкладку “ipv4” и отключаем ползунок настройки автоматического назначения DNS, после чего вписываем в поле значение:

127.0.0.1

Шифруем DNS трафик в системах Linux

Применяем настройки и теперь можно запустить “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

Шифруем DNS трафик в системах Linux

После установки необходимо вашего пользователя добавить в группу wireshark, для этого вводим команду:

sudo usermod -a -G wireshark name

Где слово “name” меняем на имя вашего пользователя:

Шифруем DNS трафик в системах Linux

Теперь скачиваем файл с архивом Termshark, для этого переходим по адресу:

https://github.com/gcla/termshark/releases
Шифруем DNS трафик в системах Linux

И качаем архив предназначенный для Linux , после чего необходимо распаковать архив и перейти в папку Termshark, как это сделать в терминале читайте в этой статье где написано как распаковывать архивы и в этой, где написано как перемещаться по директориям. После чего запускаем файл termshark, для чего вводим следующую команду:

sudo ./termshark

В открывшемся окне программы поле “Filter” вводим “DNS”, затем нажимаем кнопку “Apply”:

Шифруем DNS трафик в системах Linux

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

Заключение

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

Open a chat
Hello