Что такое файрвол и зачем он нужен
Файрвол, он же межсетевой экран, стоит между сетью и устройством и решает, каким соединениям разрешено пройти. Он анализирует входящие и исходящие пакеты и по заданным правилам пропускает их дальше или отбрасывает. Коротко: это фильтр трафика с заранее описанной политикой доступа.
Файрвол бывает отдельным устройством на периметре сети и программой внутри операционной системы. Задача в обоих случаях одна: контролировать, кто и куда может подключиться. Базовое объяснение этой роли собрано в материале Что такое файрвол: простое объяснение для начинающих, а практические задачи фильтрации и риски работы без неё разобраны в статье Зачем нужен файрвол: практические задачи и риски.
Фильтр опирается на три величины: IP-адреса, порты и протоколы. Из них складываются условия правил, поэтому без понимания полей пакета логика фильтрации остаётся набором непонятных записей.
Из чего состоит пакет: IP-адреса, порты и протоколы
Каждый сетевой пакет несёт заголовок с адресной информацией. Классический пакетный фильтр читает именно заголовки — IP-заголовок и TCP-заголовок, — а не полезную нагрузку, которую формируют приложения (Network Security — School of SRE). Удобная аналогия: пакет похож на почтовый конверт, где указан адрес получателя, обратный адрес отправителя и способ доставки.
В заголовке есть четыре поля, на которые фильтр смотрит в первую очередь:
- IP-адрес отправителя и IP-адрес получателя: кто и кому отправляет данные.
- Порт источника и порт назначения: какая программа на клиенте и какой сервис на сервере участвуют в обмене.
- Тип протокола: TCP, UDP или ICMP.
Порты нумеруются в диапазоне от 0 до 65535 и делятся на три группы: системные (0–1023), пользовательские (1024–49151) и динамические или частные (49152–65535) (IANA Service Name and Transport Protocol Port Number Registry). За популярными сервисами закреплены стандартные значения: 443 для HTTPS (в реестре IANA — «http protocol over TLS/SSL»), 80 для HTTP — эти же порты по умолчанию использует и HTTP/2 (List of TCP and UDP port numbers). Протоколы различаются поведением: TCP сначала устанавливает соединение с подтверждением, UDP отправляет датаграммы без рукопожатия, ICMP служит для служебных сообщений и знаком по утилите ping. Подробнее о том, что значит открытый и закрытый порт, рассказано в статье Порты и правила файрвола простыми словами.
Как файрвол принимает решение: правила и критерии
Все настройки файрвола сводятся к списку правил. У каждого правила две части: условие и действие. Условие описывает, каким должен быть пакет, например TCP, порт назначения 443, любой источник. Действие говорит, что с пакетом делать: пропустить (allow, accept) или заблокировать (deny, drop).
Пакет проверяется по цепочке правил, и порядок строк имеет значение: правило, стоящее выше, разбирается раньше. При этом стоит оговориться, что принцип «первого совпадения» и строгий обход цепочки сверху вниз — это распространённая модель, а не универсальная гарантия: конкретное поведение зависит от реализации файрвола, и в одних системах оно именно такое, в других порядок и обработка совпадений устроены иначе. Поэтому при настройке всегда сверяйтесь с документацией вашего экрана.
Сравнение на этом уровне идёт по заголовку, содержимое пакета здесь не изучается. Одна оговорка: в IPv6 файрволу иногда приходится пройти по цепочке расширенных заголовков, прежде чем он доберётся до транспортного заголовка или зашифрованной нагрузки, и только затем принять решение — пропустить пакет или отбросить (RFC 7045).
Пример набора из двух правил: первое разрешает TCP на порт 443 с любого IP, второе запрещает всё остальное. Пакет на порт 443 пройдёт по первому правилу. Пакет на порт 22 под первое условие не подойдёт и упрётся во второе.
Порядок правил и правило по умолчанию
Очерёдность правил критична. Если сверху встанет правило «разрешить весь трафик», все запреты ниже окажутся бесполезны: до них очередь просто не дойдёт. Ошибка в порядке строк создаёт брешь в защите, при этом сами настройки выглядят корректно и проверку «на глаз» проходят.
Отдельно работает правило по умолчанию, или default policy. Оно срабатывает, когда пакет не совпал ни с одним явным правилом. В защищённых конфигурациях чаще применяют default deny: блокируется всё, что не разрешено явно. Обратная политика default allow пропускает всё, кроме перечисленных запретов, и оставляет больше возможностей для незваного доступа.
Входящий и исходящий трафик: в чём разница
Входящий трафик приходит на устройство извне, исходящий отправляется с устройства наружу. Правила для этих направлений задаются отдельно, и итоговые политики могут сильно отличаться.
Типичная настройка сервера: запретить входящий SSH на порт 22 из интернета и разрешить исходящий HTTP на порт 80 для обновлений. Так сервер принимает только нужные подключения и сохраняет возможность самому обращаться к внешним ресурсам.
Многие современные экраны отслеживают состояние соединения. Механизм connection tracking позволяет ядру вести учёт логических сетевых соединений и связывать между собой все пакеты, из которых состоит одно соединение, — именно на этом строится stateful-фильтрация, и она работает даже со «безсостояниевыми» протоколами вроде UDP (Connection tracking — RouterOS Manual). Пакет в состоянии established принадлежит уже существующему соединению из таблицы учёта, а состояние related означает, что пакет относится к соединению, связанному с одним из существующих, — например, это ICMP-сообщение об ошибке или пакет данных FTP (там же). На практике это значит, что ответные пакеты проходят по уже открытой сессии и отдельное правило под каждый ответ не требуется. Как устроены пакетные фильтры, stateful-схемы и прикладные прокси, разобрано в статье Виды файрволов: пакетные, stateful и прикладные.
Пример: как запрос проходит через цепочку правил
Возьмём сервер с тремя правилами в таком порядке.
| № | Условие | Действие |
|---|---|---|
| 1 | TCP, порт назначения 443, любой источник | Разрешить |
| 2 | TCP, порт назначения 22, любой источник | Запретить |
| 3 | Любой трафик, правило по умолчанию | Запретить |
Пользователь открывает сайт по HTTPS. Браузер формирует пакет, в заголовке которого стоит IP-адрес сервера и порт назначения 443. Пакет доходит до правила 1, условие совпадает, действие «разрешить» применяется, и соединение устанавливается. Ответные пакеты от сервера проходят по уже открытой сессии, если экран ведёт учёт состояний.
Тот же пользователь пробует подключиться по SSH. Новый пакет идёт на порт назначения 22. Правило 1 не совпадает: порт другой. Правило 2 совпадает, действие «запретить» применяется, соединение обрывается. Правило 3 в обоих сценариях остаётся невостребованным, потому что совпадение нашлось раньше.
Обратите внимание на границы возможностей. Фильтр на этом уровне не открывает письма, не смотрит содержимое страниц и не проверяет файлы. Он сопоставляет заголовок с условиями и выносит решение о пропуске или блокировке.
Почему VPN может не работать из-за файрвола
VPN-клиент поднимает соединение на конкретный порт и протокол. Если файрвол закрывает этот порт, туннель не встанет, хотя на стороне сервера всё настроено верно. Разбор типовых ошибок VPN-подключения относит к частым причинам сбоя неверный адрес сервера, порт, тип протокола, а также помехи со стороны файрволов, антивирусов и утилит обхода блокировок (разбор ошибки установки VPN-соединения).
Проверка строится на тех же полях заголовка, что и любая фильтрация. Сначала убеждаются, что в настройках подключения указан правильный URL или IP-адрес и корректный порт, обычно 443 или 10443 для SSL VPN. Если порт закрыт, соединение не установится (там же). После этого смотрят, разрешён ли нужный протокол и нет ли запрета в исходящем направлении.
Частая причина путаницы: соединение блокирует не сервер, а локальный экран или промежуточное устройство. Именно поэтому диагностику начинают с проверки доступности порта, а не с переустановки клиента.
Чем DPI отличается от классического файрвола
Классический файрвол смотрит на заголовок: IP, порт, протокол. DPI, или глубокая инспекция пакетов, идёт дальше и анализирует содержимое трафика, включая сигнатуры протоколов. Такие системы разбирают первые пакеты соединения и при совпадении с известным шаблоном блокируют или замедляют поток (обзор методов фильтрации VPN-трафика).
На практике это выглядит так: DPI-фильтры научились распознавать стандартные протоколы OpenVPN и WireGuard, поэтому для устойчивой работы выбирают решения с обфускацией, среди них VLESS+Reality, AmneziaWG, Shadowsocks с Cloak (там же).
Обфускация маскирует соединение под обычный HTTPS-запрос, и тогда системам инспекции сложно определить и заблокировать такой трафик (обзор обфускации VPN). Важная оговорка: маскировка под HTTPS не даёт абсолютной гарантии. Современные DPI-системы умеют вычислять отпечатки TLS-рукопожатия (JA3/JA4) и анализировать статистику трафика — распределение размеров пакетов, разброс интервалов между ними, всплески, — поэтому клиент, который не идеально повторяет рукопожатие обычного браузера, может быть распознан. Эти оценки взяты из неофициального технического разбора и отражают позицию автора, а не данные вендорской документации или рецензируемого исследования (разбор фингерпринтинга протоколов). Фильтрация по глубокому анализу применяется не только операторами связи: устройство государственных систем цензуры разобрано в статье Великий китайский файрвол в 2026 году.
Разница принципиальная. Классический экран отвечает на вопрос «с какого адреса, на какой порт и по какому протоколу», DPI отвечает на вопрос «на что похож этот трафик».
Итог: как файрвол фильтрует трафик
Фильтрация сводится к трём шагам. Экран читает заголовок пакета, сравнивает его поля с условиями правил по порядку и применяет действие первого совпавшего правила. Если совпадений нет, вступает правило по умолчанию, чаще всего запрет.
Условия строятся на IP-адресах, портах и протоколах. Правила задаются отдельно для входящего и исходящего направлений, а учёт состояний избавляет от необходимости описывать каждый ответный пакет. Порядок строк и выбранная политика по умолчанию определяют, насколько плотной получится защита.
DPI работает на другом уровне: он анализирует содержимое и сигнатуры, распознаёт стандартные VPN-протоколы, а обфускация помогает такому трафику выглядеть как обычный HTTPS. Понимание этой механики экономит время при диагностике: если соединение не встаёт, первым делом проверяют адрес, порт и протокол, а уже потом ищут причину в приложении.