Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

SEC_TLS_SNI_FILTER Сетевое оборудование и VPN

Блокировка сайтов через TLS SNI и DNS Filtering на фаерволе MikroTik/Linux

Обновлено: 25.08.2026 · Официальная документация ↗
  • Необходимость блокировки доступа к запрещенным веб-ресурсам и социальным сетям без подмены сертификатов (SSL Interception/MITM).
  • Обход стандартных IP-блокировок пользователями через Cloudflare CDN и динамические Anycast IP-адреса.
  • Утечки DNS-трафика через сторонние публичные резолверы и DoH (DNS over HTTPS).
  • Повышенная нагрузка на CPU шлюза при использовании неоптимизированных регулярных выражений L7-фильтрации.

1. Блокировка HTTPS через TLS Host (SNI) в MikroTik RouterOS

Метод анализирует незашифрованное поле Server Name Indication в пакете Client Hello на этапе TLS-рукопожатия:

/ip firewall filter
add chain=forward action=drop protocol=tcp dst-port=443 tls-host="*facebook.com*" comment="Block Facebook via SNI"
add chain=forward action=drop protocol=tcp dst-port=443 tls-host="*.tiktok.com" comment="Block TikTok via SNI"
add chain=forward action=drop protocol=tcp dst-port=443 tls-host="*torrent*" comment="Block Torrent trackers"

2. Перехват и перенаправление DNS (DNS Hijacking)

Принудительно заворачивайте все клиентские DNS-запросы на локальный доверенный резолвер шлюза:

/ip firewall nat
add chain=dstnat action=redirect to-ports=53 protocol=udp dst-port=53 in-interface-list=LAN comment="Redirect UDP DNS"
add chain=dstnat action=redirect to-ports=53 protocol=tcp dst-port=53 in-interface-list=LAN comment="Redirect TCP DNS"

3. Блокировка протоколов обхода DoH (DNS over HTTPS) и DoT

/ip firewall filter
add chain=forward action=drop protocol=tcp dst-port=853 comment="Drop DNS over TLS (DoT)"
add chain=forward action=drop protocol=udp dst-port=853 comment="Drop DoT UDP"
# Блокировка публичных DoH-серверов по спискам IP
add chain=forward action=drop protocol=tcp dst-port=443 dst-address-list=DoH_Servers comment="Drop DoH access"

4. Фильтрация на уровне Linux nftables (альтернатива)

table inet filter {
    chain forward {
        type filter hook forward priority 0; policy accept;
        # Дроп пакетов по паттерну SNI в расширении payload
        tcp dport 443 @th,160,256 0x00000000 drop
    }
}
💡 Практика специалистов: Всегда совмещайте перехват 53 порта (DNS NAT Redirection) с блокировкой исходящих соединений на TCP/UDP порт 853 (DoT) и известные IP резолверов Cloudflare/Google (1.1.1.1, 8.8.8.8) на 443 порту. Без этого современные браузеры автоматически перейдут на шифрованный DNS и обойдут фильтрацию.

Частые вопросы (FAQ)

Работает ли фильтрация по TLS SNI, если клиент использует ECH (Encrypted Client Hello)?

При включенном ECH поле SNI шифруется публичным ключом сервера, полученным через DNS HTTPS-запись (Type 65). Для нейтрализации ECH необходимо блокировать DNS-запросы типа HTTPS/SVCB на локальном DNS-сервере или блокировать DoH-трафик, вынуждая браузер откатываться к классическому открытому SNI.

Почему правило с tls-host не блокирует сайты, открытые по протоколу HTTP (порт 80)?

Параметр tls-host анализирует исключительно структуры TLS-хэндшейка на порту 443. Для порта 80 необходимо использовать стандартные правила фильтрации HTTP Host Header или строчные DNS-блокировки.

Сильно ли SNI-фильтрация нагружает процессор маршрутизатора?

Проверка выполняется только для пакетов со статусом connection-state=new при открытии TCP/TLS-сессии. Последующие пакеты пропускаются через FastTrack или Established/Related, поэтому нагрузка на CPU минимальна.

Как заблокировать доступ к домену сразу на всех мобильных приложениях?

Рекомендуется комбинировать три уровня: блокировку DNS-запросов (статическая запись 127.0.0.1 в DNS), сброс пакетов по TLS SNI в фаерволе и добавление автономных систем (ASN) сервиса в адресные списки блокировки IP.

Полезные материалы
Рекомендуем