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

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

https://github.com/gcla/termshark/releases

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

sudo ./termshark

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

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

Заключение

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

А на этом сегодня все. Надеюсь данная статья будет вам полезна.
Журнал Cyber-X

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *