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

Блокировка

Режим блокировки останавливает трафик, совпавший с целями сета, вместо того чтобы куда-либо его направлять. Укажите в целях сета домены рекламы и трекеров, нежелательные IP или категорию GeoSite - и b4 заблокирует их во всей сети: на каждом устройстве LAN и на самом роутере, без выходного интерфейса и upstream-прокси.

Выбирается на вкладке Маршрутизация как режим Блокировка.

IPv6

Всё написанное ниже описывает то, что происходит в пределах семейств адресов, которые обрабатывает b4. Обработка IPv6 по умолчанию выключена, и тогда сет блокировки не пишет IPv6-правил вообще, поэтому заблокированное назначение, отвечающее ещё и по IPv6, остаётся доступным по IPv6. См. IPv6 ниже.

Как это работает​

Каким бы способом устройство ни пыталось добраться до заблокированного сайта, b4 его останавливает - и только этот сайт, поэтому остальная часть страницы продолжает работать.

Как это работает (подробно)​

  1. Блокировка на уровне DNS (домены). Когда устройство запрашивает домен из сета, b4 сам отвечает на запрос «не существует» (NXDOMAIN). Имя не разрешается в адрес, поэтому устройство вообще не может к нему подключиться. Это основной уровень, и он охватывает каждое устройство в сети, чей DNS проходит через роутер.

  2. Блокировка соединения (домены). Если у устройства уже есть адрес - например, оно использует шифрованный DNS, который b4 не видит, или кешированный результат - b4 всё равно читает имя назначения из TLS- или QUIC-рукопожатия (SNI) и завершает соединение, когда это имя есть в сете. Это сохраняет блокировку рабочей, даже когда уровень DNS обойдён.

  3. Блокировка по адресу (IP). Цели, заданные как обычные IP, диапазоны CIDR или категория GeoIP, блокируются в файрволе по адресу назначения.

Поскольку первые два уровня работают по имени, режим блокировки не ломает посторонние сайты, которые оказались на тех же серверах, что и заблокированный хост - частая проблема при блокировке только по IP-адресу на общих CDN.

Изменения применяются на лету, без перезапуска.

Настройка​

  1. Откройте вкладку Маршрутизация сета
  2. Установите Режим в Блокировка
  3. Выберите Действие блокировки (см. ниже)
  4. Добавьте назначения для блокировки в Цели сета

Выходной интерфейс или upstream-прокси не нужны.

Действия блокировки​

ДействиеЧто видит устройство
Отклонить (по умолчанию)Соединение сразу завершается ошибкой - TCP reset для TCP или ICMP unreachable для UDP и QUIC. Лучший вариант для рекламы и трекеров: страница сразу отказывается от слота.
ОтброситьСоединение молча поглощается и просто завершается по таймауту. Используйте, когда нужно вообще не отправлять ответ.

Цели​

Режим блокировки использует те же цели, что и остальные режимы маршрутизации:

  • Домены - точные имена или шаблоны regexp:
  • IP и диапазоны CIDR - отдельные адреса или подсети
  • Категории GeoSite - например, category-ads-all для готового списка рекламы и трекеров
  • Категории GeoIP - блокировка по стране или ASN

Готовый блокировщик рекламы​

Чтобы начать блокировку без ручного добавления доменов, импортируйте готовый сет. На странице Сеты создайте новый сет, откройте его вкладку Импорт/Экспорт и вставьте конфигурацию ниже. Сет нацелен на широкий список доменов рекламы и трекеров плюс категорию GeoSite category-ads-all, режим уже установлен в Блокировка.

{"b4_version":"1.65.0","name":"adblock","fragmentation":{"strategy":"none"},"faking":{"sni":false},"targets":{"sni_domains":["ad.mail.ru","advertronic.io","vu.okcdn.ru","adkernel.com","adfox.ru","nr-data.net","rubiconproject.com","adition.com","mc.yandex.com","log.strm.yandex.ru","analytics.yahoo.com","criteo.com","taboola.com","ad4m.at","1rx.io","hbx.media.net","media.net","adform.net","analyticsengine.s3.amazonaws.com","analytics.s3.amazonaws.com","ad.doubleclick.net","analytics.google.com","api.bugsnag.com","app.bugsnag.com","browser.sentry-cdn.com","app.getsentry.com","ads-api.twitter.com","log.byteoversea.com","log.fc.yahoo.com","adtech.yahooinc.com","appmetrica.yandex.ru","metrika.yandex.ru","fingerprintjs.com","px.srvcs.tumblr.com","device-metrics-us.amazon.com","cdn.cookielaw.org","consent.cookiebot.com","sdk.privacy-center.org","cdn.privacy-mgmt.com","api.impact.com","cdn.dynamicyield.com","widget.intercom.io","bnc.lt","bingads.microsoft.com","ads.microsoft.com","snap.licdn.com","ct.pinterest.com","geolocation.onetrust.com","consent.trustarc.com","app.usercentrics.eu","advertising-api-eu.amazon.com","fls-na.amazon.com","advertising.yandex.ru","ironsource.mobi","is.com","pangleglobal.com","posthog.com","o0.ingest.sentry.io","lr-ingest.com","mineralt.io","pixel.quora.com","qevents.quora.com","ads.vk.com","advertising.apple.com","ads.huawei.com","ngfts.lge.com","xp.apple.com","cmp.osano.com","consentcdn.cookiebot.com","zenaps.com","clientstream.launchdarkly.com","match.adsrvr.org","smartyads.com","adcolony.com","mouseflow.com","edge.fullstory.com","stats.wp.com","adsrvr.org","c.bing.com","app-measurement.com","cdn.segment.com","quantcast.com","rudderstack.com","snowplowanalytics.com","adjust.com","singular.net","wzrkt.com","ads.pinterest.com","ads.x.com","ads-sg.tiktok.com","tracking.rus.miui.com","cookiebot.com"],"ip":["5.255.255.77/32"],"geosite_categories":["category-ads-all"]},"enabled":true,"routing":{"enabled":true,"mode":"block"}}

Для работы части с category-ads-all нужна загруженная база GeoSite - см. Цели.

IPv6​

Правила блокировки пишутся отдельно для каждого семейства адресов, и b4 пишет их только для тех семейств, которые обрабатывает. Поддержка IPv6 в разделе Настройки, Основные, Движок пакетов по умолчанию выключена, и при выключенной поддержке сет блокировки не создаёт IPv6-правил вообще.

Чего это стоит по слоям:

  • DNS-синкхол. По-прежнему делает основную работу. NXDOMAIN скрывает имя от клиента независимо от того, какую запись он спрашивал - и A, и AAAA, - поэтому устройство, резолвящее через роутер, не получит адреса ни одного семейства. Исключение - запрос, который приходит на роутер по самому IPv6: пока поддержка IPv6 выключена, такой запрос пересылается без изменений, а не отправляется в синкхол, и в логе он отмечается как dns-ipv6-disabled. Именно так ведут себя устройства, которым адрес резолвера пришёл в router advertisement по IPv6.
  • Блокировка соединения по имени. Не применяется. b4 не читает IPv6-пакеты, поэтому SNI в IPv6-рукопожатии TLS или QUIC никогда не проверяется.
  • Блокировка по адресу. Только IPv4. IP, диапазоны CIDR и категории GeoIP применяются в файрволе для IPv4, а IPv6-элементы сета никуда не устанавливаются.

На практике это значит, что устройство, у которого уже есть IPv6-адрес заблокированного хоста - из шифрованного DNS, которого роутер не видит, или из собственного кеша, - откроет этот хост по IPv6 беспрепятственно.

Блокировка покрывает оба семейства, когда в разделе Настройки, Основные, Движок пакетов включена Поддержка IPv6 и сервис перезапущен. Блокировать IPv6 на роутере таким образом - это не то же самое, что выключить IPv6 для сети: последнее делается настройками роутера вне b4.

Охват​

Режим блокировки действует на всю сеть в пределах тех семейств адресов, которые обрабатывает b4: он останавливает совпавшие назначения для каждого устройства в сети и для самого роутера. Ему не нужны выходной интерфейс, таблица маршрутизации или прокси, поэтому он работает на любой конфигурации, которую поддерживают остальные режимы маршрутизации.

подсказка

Быстрый блокировщик рекламы для всей сети: создайте сет, добавьте категорию GeoSite category-ads-all в его Цели, установите режим маршрутизации Блокировка и оставьте действие Отклонить.

к сведению

Блокировка по имени требует, чтобы DNS устройства или его TLS/QUIC-рукопожатие проходили через роутер. Трафик, который уходит из сети через отдельный туннель, не видимый роутеру (например, VPN, настроенный прямо на устройстве), находится вне досягаемости b4.