Обычно DNS получает, а затем возвращает запросы в открытом виде. При некотором желании любой может получить эти данные. Прекратить это безобразие, а заодно повысить уровень конфиденциальности и безопасности можно с помощью протокола DoT (DNS-over-TLS).
Потребность в надёжных мерах обеспечения безопасности в сети становится всё более высокой в условиях постоянного вызова со стороны злоумышленников. Особенно сейчас, когда любая организация работает в сложной цифровой и сетевой экосистеме. К сожалению, случается, что администраторы время от времени сталкиваются с угрозами, которые нарушают целостность коммуникаций, что приводит к потере важных данных.
Ниже мы рассмотрим, как с помощью встроенных возможностей Linux повысить уровень конфиденциальности сети, усилить защиту от потенциальных киберугроз и сохранить бесперебойную передачу данных в сетях. В этом нам поможет стандарт шифрования DNS-запросов DoT (DNS-over-TLS), который использует тот же протокол безопасности TLS, что и веб-сайты с HTTPS используют для шифрования и аутентификации связей.
Проблема DNS
По своей сути система доменных имён (DNS) выступает в роли некоего каталога, в котором записаны все адреса, существующие в интернете. К примеру, пользователь вводит название сайта в свой браузер. Сервер DNS за считанные доли секунды переводит это удобное для человеческого восприятия доменное имя в числовой IP-адрес. Неудивительно, что любое удалённое сетевое соединение зависит от надёжной работы сервера DNS.
Однако в традиционной работе DNS есть один ключевой недостаток. Процесс преобразования доменных имён в IP-адреса происходит в открытом виде. В этом случае отсутствие шифрования создаёт определённую уязвимость. Так данные, переданные в открытом виде, могут быть перехвачены, просмотрены, значит, ими могут воспользоваться злоумышленники.
Каждый раз, когда происходит DNS-запрос, любой человек, обладающий необходимыми инструментами, может увидеть к какому сайту или сервису пытается получить доступ тот или иной пользователь. Это открывает двери для множества угроз: от простого прослушивания пакетов до более организованных атак типа «man-in-the-middle», когда ответ на запрос редактируется для перенаправления пользователя на вредоносный сайт.
В бурно развивающемся мире цифровых технологий угрозы становятся всё более изощрёнными с каждым днём. IT-специалисты понимают, что статус-кво DNS-коммуникаций неприемлем. Именно здесь на помощь приходит стандарт шифрования запросов DoT (DNS-over-TLS), который использует стандартный протокол для выполнения разрешения удалённой системы DNS с использованием TLS.
DNS-over-TLS — безопасная итерация основополагающего интернет-протокола
DNS-over-TLS (DoT) — это защищённая версия традиционного DNS. По своей сути DoT берет обычную систему DNS и оборачивает её в протокол Transport Layer Security (TLS), обеспечивая тем самым зашифрованный канал для DNS-запросов.
Если вы знакомы с HTTPS (расширением протокола HTTP для поддержки шифрования SSL/TLS), концепция DoT является вполне аналогичной. В то время как HTTPS шифрует действия пользователя по просмотру веб-страниц, то DoT нацелен на шифрование запросов по поиску доменных имён.
Процесс начинается, когда клиент хочет разрешить доменное имя. Вместо того чтобы отправлять запрос в открытом виде, клиент устанавливает TLS-соединение с DNS-сервером. В рамках этого шифрованного соединения DNS-запрос отправляется в безопасном режиме. Это гарантирует, что посредники, будь то интернет-провайдеры или потенциальные злоумышленники, не смогут просмотреть или подделать DNS-трафик.
Ключевыми преимуществами DoT являются:
- Сквозное шифрование: При использовании DoT DNS-запросы шифруются от источника (клиента) до места назначения (DNS-резольвера). Это обеспечивает полную конфиденциальность DNS-запросов пользователя.
- Целостность данных: Протокол TLS гарантирует, что пакеты данных, как запросы, так и ответы, остаются неприкосновенными. Любая попытка подделки быстро обнаруживается, что предотвращает любую возможность перенаправления.
- Аутентификация сервера: DoT облегчает аутентификацию DNS-серверов. Когда клиент устанавливает TLS-соединение, он может проверить сертификат сервера, гарантируя, что он подключается к настоящему DNS-серверу, а не к его подделке.
Подготовка системы
Для перехода на использование стандарта DNS-over-TLS готовность системы имеет первостепенное значение. Учитывая, что данный ресурс ориентирован на Linux, я сосредоточусь на требованиях, специфичных для Linux, которые включают:
- Операционная система: Должен быть установлен дистрибутив Linux. Ubuntu с его широкой поддержкой сообщества и надёжной производительностью служит отличной платформой для внедрения DoT.
- Доступ пользователей: В случае работы на удалённой машине необходимо иметь доступ root или sudo. Это необходимо для установки пакетов, изменения конфигурации системы и перезапуска служб.
Что касается серверной части, то стоит отметить, что потребуется подключение к DNS-серверу, который также поддерживает DoT. Ниже представлены общедоступные DNS-серверы, взятые со страницы Википедии.
Чтобы использовать DoT вместо стандартного сервиса имён, ваш systemd должен иметь версию 239 или выше, поскольку более ранние версии не поддерживают опцию DNSOverTLS. Чтобы проверить версию systemd, введите в командной строке:
systemd --version
Если версия systemd ниже 239, то непременно подумайте об обновлении системы. По умолчанию в последних версиях Ubuntu включен systemd-resolved. Это системная служба, которая управляет сетевыми именами и разрешает их. Чтобы убедиться, что systemd-resolved запущен, введите:
sudo systemctl status systemd-resolved.service
Вы должны получить утвердительный ответ. Иначе службу надо запустить, но прежде необходимо активировать её автозапуск:
sudo systemctl enable systemd-resolved.service
sudo systemctl start systemd-resolved.service
По умолчанию в системе DNS-over-TLS не работает. Чтобы его включить, надо отредактировать конфигурационный файл «/etc/systemd/resolved.conf». Откроем его в текстовом редакторе с помощью команды:
sudo nano /etc/systemd/resolved.conf
В этом файле строка «DNS» задает DNS-серверы, которые должен использовать systemd-resolved. Я использую DNS-сервер Cloudflare, который поддерживает DoT. Строка «FallbackDNS» — это резервные сервера, которые будут задействованы в случае, когда основные DNS-серверы будут вне доступа. Наконец, в строке «DNSOverTLS» надо установить значение «yes», которое и включит использование шифрования DNS-запросов.
Строки конфигурации должны выглядеть следующим образом:
[Resolve]
DNS=1.1.1.1 1.0.0.1
FallbackDNS=8.8.8.8 8.8.8.4.4
DNSOverTLS=yes
Нажмите «Ctrl+X», затем «Y» и «Enter», чтобы сохранить и выйти из редактора nano.
После этого необходимо перезапустить службу, чтобы изменения вступили в силу:
sudo systemctl restart systemd-resolved
Проверка и мониторинг
Любые изменения в конфигурации необходимо проверять, иначе мы не достигнем желаемого результата. Сначала убедимся, что система использует указанный нами в конфигурационном файле DNS-сервер. Для этого наберите в командной строке следующее:
resolvectl status | grep 'Current DNS Server'
Если результат совпадает с указанными вами серверами (например, 1.1.1.1), то это предварительный признак того, что всё идёт по плану.
DoT — это фундаментальная функция безопасности для современных сетей, но, как и все системы, DoT требует бдительности. Его нельзя просто включить и забыть; за ним нужно активно следить.
Прежде чем отслеживать трафик на интерфейсе, необходимо определить его имя с помощью команды ip a или ip addr show:
ip a
Эта команда выдаст список всех сетевых интерфейсов. Как правило, проводные соединения обозначаются как «ethX» (например, eth0), а беспроводные — как «wlanX» (например, wlan0).
Найдите интерфейс, который имеет inet-адрес (IPv4) или inet6-адрес (IPv6) и находится в состоянии «UP». Как правило, это и есть активный сетевой интерфейс. В моём случае это беспроводной интерфейс «wlp2s0».
Теперь, когда вы определили активный сетевой интерфейс, используйте инструмент «tcpdump» для мониторинга DNS-трафика. При использовании DoT мониторинг становится критически важным для отслеживания активного шифрования. Включить мониторинг DNS-трафика можно командой:
sudo tcpdump -i wlp2s0 -n 'port 853'
Замените wlp2s0 на свой сетевой интерфейс.
С помощью приведенной выше команды «tcpdump» перехватывает и регистрирует сетевой трафик. Если DoT функционирует, то имена доменов, к которым осуществляется доступ, не будут отображаться в открытом виде. DoT работает через порт 853 и через него проходят все зашифрованные запросы.
Пока инструмент «tcpdump» активен, зайдите на несколько сайтов. И вы увидите, что вместо узнаваемых доменных имён в выводе только зашифрованные данные, что подтверждает эффективность DoT.
Важность регулярного мониторинга трафика невозможно переоценить. Мониторинг помогает выявить необычные схемы трафика и потенциальные угрозы безопасности, а также гарантирует, что DoT работает без сбоев. Конечно, такие инструменты, как DoT, — это лишь часть решения для поддержания безопасной среды.
Каждая система, независимо от ее назначения, является потенциальной мишенью. Поэтому обновление системы — это не роскошь, а необходимость. В конце концов, вам ничего не стоит набрать в консоли команду:
sudo apt update && sudo apt upgrade
и дождаться окончания её выполнения.
Регулярные обновления устраняют выявленные уязвимости системы и обеспечивают оптимальную производительность. Что позволяет не только обеспечить надёжность работы DoT, но и повышает безопасность всей системы.
Периодические аудиты безопасности также важны. Такие инструменты, как Nmap, Sniffnet или Wireshark, помогут вам контролировать и просматривать сетевой трафик. Убедитесь, что открыты и доступны только необходимые порты, регулярно просматривайте и обновляйте конфигурации, следя за тем, чтобы не использовались устаревшие протоколы или программное обеспечение.
Заключение
DoT — это не просто обновление самого используемого протокола, это изменение парадигмы в сторону соблюдения конфиденциальности данных и повышения уровня безопасности. Каждый IT-специалист несёт ответственность за обеспечение безопасности вверенного ему цифрового пространства. Принятие и использование DoT показывает уровень этой ответственности.
На своём домашнем ноутбуке и рабочем компьютере, на обоих установлен Ubuntu Linux, я давно включил DoT. И дома, и на работе я использую беспроводную сеть, и каким бы надёжным не был пароль этих сетей, всегда есть некая вероятность, что один из соседей решит попробовать себя в роли крутого хакера.