Перейти к основному содержанию

DNS-фильтрация

Чтобы лучше понять DNS-фильтрацию, надо сначала ответить на вопрос «‎Что такое DNS?»

Что такое DNS?

DNS расшифровывается как «‎Domain name system» или «‎Система доменных имён». Её цель — переводить имена доменов, понятные человеку, в нечто понятное браузерам, т.е. в IP-адреса. Таким образом, каждый раз, когда вы переходите на сайт, ваш браузер посылает запрос на специальный сервер (DNS-сервер). Этот сервер смотрит на имя запрашиваемого домена и отвечает соответствующим IP-адресом. Очень схематично это выглядит так:

Как работает DNS

Разумеется, всё то же самое применимо не только к браузерами к приложениям, но и к программам, которые посылают какие-либо веб-запросы.

Как работает DNS-фильтрация?

Когда вы используете одно из приложений AdGuard, поддерживающее DNS-фильтрацию, оно работает как буфер между вашим устройством и DNS-сервером. Все DNS-запросы, которые ваши браузеры или приложения собираются отправить, сначала обрабатываются AdGuard. Если вы используете DNS-сервер, предоставленный по умолчанию вашим интернет-провайдером, ваш DNS-трафик, скорее всего, не зашифрован и уязвим для отслеживания и перехвата. AdGuard зашифрует все ваши DNS-запросы до того, как они будут отправлены, так что никакие злоумышленники не смогут получить доступ к их содержимому. Кроме того, AdGuard может определить запросы к рекламным, трекинговым и «взрослым» сайтам и перенаправить их «‎в никуда» вместо того, чтобы переслать на DNS-сервер. Подробнее об этом мы расскажем чуть позже.

Как работает DNS-фильтрация

DNS-фильтрация — это мощный инструмент, который поддерживается всеми основными приложениями AdGuard: AdGuard для Windows, AdGuard для Mac, AdGuard для Android и AdGuard для iOS.

DNS-фильтрация может быть условно разделена на две основные функции: шифрование DNS-трафика и его перенаправление на DNS-сервер, а также блокировка определённых доменов с помощью локальных DNS-фильтров.

DNS-серверы

В мире существуют тысячи DNS-серверов, и все они уникальны по своим свойствам и целям. Большинство просто возвращает IP-адрес запрошенного домена, но некоторые выполняют дополнительные функции: они блокируют рекламные, трекинговые, «взрослые» домены и т.д. Сегодня все крупные DNS-серверы используют один или несколько надёжных протоколов шифрования DNS-трафика: DNS-over-HTTPS, DNS-over-TLS. AdGuard также предоставляет свой DNS-сервис, и он стал самым первым DNS-провайдером в мире, который добавил поддержку нового и многообещающего протокола шифрования DNS-over-QUIC. AdGuard располагает несколькими разными серверами для разных целей. Эта диаграмма иллюстрирует работу блокирующих серверов AdGuard:

AdGuard DNS

Другие DNS-провайдеры могут работать иначе, так что узнайте все подробности перед тем, как делать выбор в пользу того или иного DNS-сервера. Вы можете найти список некоторых популярных DNS-провайдеров в этой статье. Все приложения AdGuard, которые поддерживают DNS-функционал, также предоставляют на выбор список проверенных DNS-серверов и даже дают возможность вручную указать любой предпочитаемый вами DNS-сервер.

Локальные DNS-фильтры

Но если полагаться только на DNS-серверы в вопросе фильтрации DNS-трафика, то неизбежны потери в гибкости. Если выбранный сервер блокирует какой-либо домен, вы не сможете на него перейти, пока не переключитесь на другой сервер. С AdGuard же вам даже не обязательно настраивать какой-то конкретный DNS-сервер, чтобы фильтровать DNS-трафик. Все продукты AdGuard позволяют добавлять локальные DNS-фильтры, будь то простые файлы hosts или фильтры, использующие более сложный DNS-синтаксис. Они работают сходным образом с обычными рекламными фильтрами: когда DNS-запрос подходит под одно из правил в активном фильтре, он блокируется. А точнее, перенаправляется «в никуда».

Чтобы получить доступ к DNS-фильтрации в AdGuard для iOS, вам сначала потребуется включить «Расширенный режим» в настройках.

Вы можете добавлять столько собственных DNS-фильтров, сколько захотите. Например, вы можете задействовать DNS-фильтр AdGuard. Он буквально блокирует всё то же самое, что и сервер AdGuard DNS, но в данном случае вы вольны использовать любой другой DNS-сервер. Плюс, при использовании данного метода вы можете добавить больше фильтров или же создать собственные правила-исключения. Всё это было бы невозможно в случае с использованием только DNS-сервера.

Существуют сотни различных DNS-фильтров, вы можете выбрать нужные вам здесь.

Сравнение DNS-фильтрации с сетевой фильтрацией

Мы называем сетевой фильтрацией «обычный» способ, которым самостоятельные приложения AdGuard (кроме браузерных расширений) фильтруют весь сетевой трафик, отсюда и название. Освежить знания о сетевой фильтрации можно, прочитав эту статью.

Во-первых, мы сразу хотим оговориться, что с AdGuard вам не нужно выбирать между ними. Вы всегда можете использовать обычную сетевую фильтрацию и DNS-фильтрацию одновременно. Однако важно понимать разницу между этими двумя подходами. DNS-фильтрация обладает как своими уникальными преимуществами, так и недостатками.

Плюсы DNS-фильтрации:

  1. На некоторых платформах это единственный способ фильтровать весь системный трафик. Например, на iOS только Safari поддерживает блокировку контента в привычном смысле. Фильтровать трафик всех остальных браузеров и приложений поможет только DNS-фильтрация.
  2. С некоторыми формами слежки (такими как CNAME-трекинг) может справиться только DNS-фильтрация.
  3. Этап обработки DNS-запроса — самое раннее, когда можно заблокировать рекламу или трекер. Это помогает немного сэкономить время жизни батареи и трафик.

Недостатки DNS-фильтрации:

  1. DNS-фильтрация — «грубый» метод. Это означает, что с её помощью не получится убрать, например, белые пустые блоки, остающиеся после заблокированной рекламы. Также не получится применить никакие косметические правила. Многие виды более сложной рекламы не могут быть заблокированы на уровне DNS (точнее, могут, но только ценой полной блокировки домена, который также используется для других, полезных целей).

Пример разницы Пример разницы между DNS-фильтрацией и сетевой фильтрацией

  1. Невозможно определить источник DNS-запроса, то есть вы не сможете различать трафик разных приложений на DNS-уровне. Это помешает ведению подробной статистики и сделает невозможным создание правил, работающих только для конкретных приложений.

Мы рекомендуем использовать DNS-фильтрацию вместе с сетевой фильтрацией, а не вместо неё, если это возможно.