Обычно 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-серверы, взятые со страницы Википедии.
Провайдер | Хост | IP-адреса | Блокирование | Порт |
---|---|---|---|---|
Cloudflare | cloudflare-dns.com | 1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001 | нет | 853 |
Google Public DNS | dns.google | 8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844 | нет | 853 |
Quad9 | dns.quad9.net | 9.9.9.9 149.112.112.112 2620:fe::fe 2620:fe::9 | Опасные домены | 853 |
CleanBrowsing | security-filter-dns.cleanbrowsing.org family-filter-dns.cleanbrowsing.org adult-filter-dns.cleanbrowsing.org | 185.228.168.9 185.228.168.168 185.228.168.10 2a0d:2a00:1::2 2a0d:2a00:1:: 2a0d:2a00:1::1 | Опасные домены Семейный фильтр Контент для взрослых | 853 |
Adguard | dns.adguard.com dns-family.adguard.com | 94.140.14.14 94.140.15.16 2a00:5a60::ad1:0ff 2a10:50c0::bad2:ff | Реклама Контент для взрослых | 853 |
Yandex.DNS | common.dot.dns.yandex.net safe.dot.dns.yandex.net family.dot.dns.yandex.net | 77.88.8.1 77.88.8.8 | Нет Опасные домены Семейный фильтр | 853 |
Чтобы использовать 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. И дома, и на работе я использую беспроводную сеть, и каким бы надёжным не был пароль этих сетей, всегда есть некая вероятность, что один из соседей решит попробовать себя в роли крутого хакера.
Что вы думаете?
Показать комментарии / Оставить комментарий