Вопрос или проблема
Я пытаюсь полностью заблокировать YouTube в моей сети. Я полностью контролирую маршрутизацию и DNS (Linux: ipfilter/dnsmasq). Проблема в том, что я не могу заблокировать YouTube, не заблокировав другие сервисы Google (такие как Docs, Gmail) в качестве сопутствующего ущерба. Вот что я пробовал:
- Блокировка DNS с использованием dnsmasq: Легко настроить, работает для некоторых клиентов. Однако Chrome использует DNS-over-QUIC и DNS-over-TCP в качестве резервного варианта (отчасти произвольно), что приводит к повторному появлению YouTube.
- Фильтрация для TLS SNI: фильтрация iptables, которая пытается блокировать TLS SNI “youtube”. Не работает, потому что трафик TLS v1.3 использует зашифрованное рукопожатие (TLS SNI hostname уже зашифрован) и QUIC тоже.
- Фильтрация на уровне IP: Использование нескольких DNS-запросов (круговой обмен DNS-ответами) для сбора всех v4 и v6 адресов “www.youtube.com” и “youtube.com”. Их всех блокировка с использованием ipset. Работает надежно, но также препятствует работе всех сервисов Google. Похоже, что при просмотре адресов, используемых для сервисов Google, нет возможности их различить (возможно, они всегда одинаковые).
Как я могу надежно заблокировать YouTube на моем маршрутизаторе (не на клиентах) без воздействия на другие сервисы Google?
Ответ или решение
Блокировка YouTube, не затрагивая другие службы Google, представляет собой непростую задачу из-за интеграции и использования общих IP-адресов и доменов между различными сервисами Google. Разберем подробно возможность решения этой проблемы, исходя из описанного сценария и используя различные методы блокировки с точки зрения теории, примеров и практического применения.
Теория
Блокировка доступа к YouTube, сохраняя доступ к другим службам, таким как Gmail и Google Docs, требует хорошо продуманного подхода из-за архитектуры Google, где используются общие IP-адреса и домены для различных сервисов. Проблема усугубляется использованием современных протоколов безопасности, таких как DNS-over-HTTPS (DoH) и TLS 1.3, где данные трафика шифруются и скрываются от простой проверки.
Пример
Рассмотрим несколько попыток блокировки YouTube:
-
DNS-блокировка через dnsmasq: Этот метод прост в реализации и работает для большинства случаев. Однако современные браузеры, такие как Chrome, могут обходить его, используя DNS-over-QUIC и DNS-over-TCP как резервные варианты.
-
Фильтрация по TLS SNI: Традиционная фильтрация IP-трафика через iptables, которая блокирует SNI (Server Name Indication) с указанием "youtube", сталкивается с проблемами из-за использования зашифрованных рукопожатий в TLS 1.3 и QUIC, что делает невозможным анализ SNI.
-
IP-блокировка: Использование ipset для блокировки IP-адресов доменов YouTube (через массовое получение адресов через DNS-запросы). Этот метод эффективно блокирует YouTube, но также ограничивает доступ и к другим службам, так как Google использует много общих IP-адресов для своих сервисов.
Применение
Существует несколько подходов, которые могут помочь в решении данной задачи:
-
Использование Proxy-сервера или стороннего веб-фильтра:
- Установите на вашем маршрутизаторе proxy-сервер (например, Squid) и настройте его для фильтрации URL на уровне приложения. Так вы сможете блокировать конкретные URL-адреса (например, youtube.com), сохраняя доступ к другим сервисам Google, которые используют разные URL.
- Помимо этого, существуют коммерческие решения, такие как OpenDNS, которые предоставляют более гибкие возможности фильтрации контента.
-
Контроль доступа на уровне сети с использованием DPI (Deep Packet Inspection):
- DPI позволяет анализировать трафик на более глубоком уровне и может идентифицировать пакеты данных, принадлежащие определённым сервисам, включая YouTube, за счет анализа метаданных и шаблонов трафика.
- Хотя DPI может быть дорогостоящим и требовать значительных вычислительных ресурсов, он обеспечивает более точную фильтрацию.
-
Использование политик групповой политики и фильтрации контента:
- В случае использования корпоративной сети или доменной структуры можно настроить политики на компьютерах пользователей для блокировки доступа к определённым приложениям или веб-сайтам.
- Это может включать использование инструментов управления, таких как Microsoft Family Safety или аналогичные, которые могут блокировать доступ на уровне приложения и браузера.
-
Программное обеспечение для родительского контроля и сетевых фильтров:
- Многие из них позволяют более избирательно блокировать контент в зависимости от категории и URL, избегая блокировок других сервисов Google.
-
Реализация на уровне приложений:
- Рассмотреть возможность блокировки приложений через установку специфичного программного обеспечения на уровне операционных систем, особенно если используется управляемая сеть с предопределённым набором устройств.
И так, к основным советам можно отнести использование комбинированного подхода: прокси-сервера в сочетании с DPI и продвинутыми средствами управления контентом. Это позволит эффективно управлять доступом к интернет-ресурсам, включая YouTube, без значимого воздействия на другие сервисы Google.