Поднимаете свежий VPS, что-то деплоите и через пару минут лог авторизации забит попытками входа с IP, которые вы впервые видите. Это фоновый шум публичного интернета: боты непрерывно сканируют каждый доступный адрес. Между этим шумом и вашими сервисами стоит файрвол. И большинство тех, кто его держит, не объяснят, что он делает, дальше фразы «ну, он блокирует всякое».
Исправляем. Разберем, как работает файрвол, какие типы стоит знать, как обрабатываются правила и как выбрать тот, что подходит именно вашей конфигурации, — а не тот, что вы увидели в сравнительной таблице вендора.
Файрвол — это устройство сетевой безопасности, которое мониторит входящий и исходящий трафик и решает, что пропустить, а что заблокировать, по набору заранее заданных правил. Он стоит между вашей внутренней сетью и внешними сетями — чаще всего публичным интернетом — и работает как первая линия обороны: легитимный трафик пропускает, вредоносный отсекает до того, как тот доберется до чего-то важного.
Файрвол фильтрует трафик одним или несколькими способами:
Независимо от типа, любой файрвол делает три вещи:
Файрволы бывают аппаратные (hardware) и программные (software). Аппаратные — это выделенные устройства, которые защищают всю сеть на периметре и держат высокую пропускную способность. Программные (включая host-based-файрволы) работают на отдельном устройстве и фильтруют трафик только для этого хоста. На практике используют оба: аппаратный на границе сети, программный — на каждой машине. На Linux-VPS этот программный файрвол — обычно iptables или nftables, обернутые в ufw.
Типы файрволов различаются по тому, на каком уровне модели OSI они работают, как отслеживают соединения и насколько глубоко инспектируют трафик. Вот что реально используется сейчас.
Работает на сетевом уровне (layer 3) и проверяет каждый пакет изолированно по списку контроля доступа. Фильтрует по четырем параметрам: source IP, destination IP, порты и протокол (TCP, UDP, ICMP). Состояние соединений не отслеживает — каждый пакет оценивается сам по себе, ранее принятые соединения не запоминаются.
Из-за этого пакетные файрволы быстрые и дешевые в работе, но ограниченные. Они не читают содержимое на уровне приложений, поэтому не отличат легитимный HTTP-запрос от вредоносного на том же порту. Правила ведутся вручную — это вполне терпимо на маленькой сети и мучительно на большой.
Stateful-файрвол отслеживает состояние каждого соединения в таблице состояний. Когда приходит пакет, файрвол проверяет, относится ли он к установленному (established), связанному (related) или новому соединению, — и решает соответственно. Если вы разрешили исходящий запрос, ответный входящий пропускается автоматически, без отдельного правила.
Это современный стандарт. Фильтрует по IP, порту и протоколу, как и пакетная фильтрация, но таблица состояний дает понимание трафика в контексте, а не пакет за пакетом. На Linux ровно это делает iptables -m conntrack --ctstate ESTABLISHED,RELATED — принять ответный трафик для инициированных вами соединений, отбросить непрошеный входящий.
Прокси-файрвол (файрвол прикладного уровня, layer 7) выступает посредником между вашей внутренней сетью и внешними. Он терминирует входящее соединение, инспектирует всю полезную нагрузку на прикладном уровне — HTTP, FTP, DNS — и открывает отдельное соединение к получателю от вашего имени. Напрямую с вашими хостами никто не общается.
Поскольку он читает прикладные протоколы, прокси-файрвол защищает от атак прикладного уровня (application layer attacks), которые пакетная фильтрация не видит. Терминирование и пересоздание каждого соединения добавляет задержку, и иногда он помечает безобидный трафик, вызывая задержки в работе.
NGFW берет возможности традиционного файрвола (stateful-инспекция, NAT, поддержка VPN) и добавляет URL-фильтрацию, threat intelligence и осведомленность о приложениях. Отличие от традиционных файрволов в том, что NGFW видит, какое именно приложение генерирует трафик, а не только какой порт оно использует, и применяет политику на этом уровне (пропустить Slack, заблокировать BitTorrent, оба по 443).
NGFW — это не одна функция, а набор технологий под одним названием, где каждый компонент закрывает слепые зоны другого.
WAF защищает конкретное веб-приложение или API, а не всю сеть. Он инспектирует HTTP/HTTPS-запросы на предмет атак прикладного уровня — SQL-инъекций, межсайтового скриптинга (XSS) и подделки межсайтовых запросов (CSRF) — и блокирует вредоносную нагрузку до того, как она дойдет до кода приложения.
Если у вас публичный веб-сервер или API, WAF практически обязателен. Сетевой файрвол спокойно пропустит попытку SQL-инъекции, потому что на уровне пакетов это просто валидный HTTPS-запрос. WAF — тот слой, который читает тело запроса и замечает ' OR 1=1--.
Виртуальный файрвол — это программный файрвол, развернутый как виртуальный appliance вместо физического железа. Работает на гипервизорах вроде VMware ESXi, KVM или Hyper-V, либо внутри публичных облаков — AWS, Azure, GCP. Делает все то же, что аппаратный (stateful-инспекцию, функции NGFW), но масштабируется вместе с вашей виртуальной инфраструктурой, а не привязан к стойке.
Для всех, кто держит нагрузки на VPS, это и есть актуальная модель. VPS от is*hosting работают на KVM-виртуализации, так что вы управляете настройкой файрвола на уровне ОС на каждой ноде — никакой вышестоящей фильтрации, в которую вы не можете заглянуть.
Облачный файрвол (cloud firewall) защищает трафик в облачных средах и поставляется как управляемый сервис — часто его называют firewall as a service (FWaaS). Вы не управляете железом, вы управляете политикой.
Cloud-native-файрвол создан для работы в облачном масштабе — с автоматическим масштабированием, мультитенантной изоляцией и эластичной защитой, которая растет и сжимается вместе с вашим трафиком. Когда на запуске трафик утраивается, cloud-native-файрвол масштабируется под него без ручного провижининга.
Если вы разворачиваетесь в нескольких регионах, слой файрвола должен жить там же, где ваши нагрузки. С VPS-нодами в 40+ локациях вы строите правила на каждой ноде рядом с деплоем, а не гоните весь трафик через одну бутылочную горловину.
Контейнерный файрвол защищает контейнерные среды — Docker и Kubernetes — на уровне pod и namespace, а не на уровне хоста. Традиционные файрволы предполагают относительно статичные хосты со стабильными IP. Контейнеры так не работают: они создаются и уничтожаются постоянно, а их IP эфемерны.
Контейнерный файрвол применяет политику по лейблам, идентичности сервиса и неймспейсам, так что правило «frontend-под может общаться с API-подом и больше ни с кем» переживает переезд контейнеров между нодами. Для всех, у кого кластер Kubernetes или стек Docker Compose на VPS, это слой, который контролирует east-west-трафик между сервисами, — то, чего периметровый файрвол никогда не видит.
Это слои, а не конкуренты. Аппаратный держит периметр, программный — каждый хост. Для эшелонированной обороны держите оба.
|
Критерий |
Аппаратные (hardware) |
Программные (software) |
|
Охват |
Вся сеть на периметре |
Один хост (host-based) |
|
Производительность |
Высокая, выделенное железо |
Использует CPU и RAM хоста |
|
Гибкость |
Централизованно, один набор правил на всех |
На каждое устройство, под конкретную машину |
|
Для чего |
Граница офисной/ЦОД-сети |
Отдельные серверы, VPS, эндпоинты |
UTM-устройство собирает stateful-инспекцию, предотвращение вторжений и антивирус в один аппарат с единым интерфейсом управления. Соблазн в простоте: одна коробка, одна консоль, один вендор вместо сшивания отдельных продуктов.
UTM подходит малому и среднему бизнесу, которому нужна нормальная защита без выделенной команды безопасности. По сравнению с enterprise-уровневым NGFW здесь компромисс — глубина: UTM меняет часть гранулярного контроля на простоту управления.
Когда пакет приходит на файрвол, он проходит упорядоченный процесс.
Правила говорят файрволу, как обрабатывать попытки соединения. Любой файрвол, независимо от типа, фильтрует по одним и тем же базовым параметрам.
Правила обрабатываются по порядку, и выигрывает первое совпадение. Совпало с верхним правилом — остальные не проверяются. Не совпало ни с одним — корректно настроенный файрвол блокирует по умолчанию. Поэтому правила безопасности идут от специфичных к общим.
Например, нужно пропустить весь HTTP-трафик, кроме идущего с 100.100.1.1:
Поменяйте порядок и разрешающее правило сработает первым, блокирующее не отработает вовсе, и 100.100.1.1 пройдет.
Deep packet inspection (DPI) изучает фактическое содержимое пакета — полезную нагрузку, а не только заголовок. Базовая пакетная фильтрация читает конверт: source, destination, порт, а DPI вскрывает конверт и читает содержимое.
Эта разница и позволяет DPI обнаруживать вредоносный код, спрятанный внутри в остальном валидного трафика, выполнять URL-фильтрацию и применять контроль на уровне приложений. Это базовая возможность NGFW и причина, по которой они могут блокировать конкретное приложение, пропуская другие на том же порту. Цена — нагрузка на обработку: читать каждый пакет дороже по CPU, чем проверять заголовок.
Правильная конфигурация файрвола зависит от того, где живет ваша сеть.
Эшелонированы по умолчанию: аппаратный файрвол или NGFW на периметре, host-based-файрволы на эндпоинтах, часто это сегментированные внутренние зоны, чтобы пробоина в одной не дотянулась до остальных.
Обычно один программный файрвол или файрвол, встроенный в прошивку роутера. Для большинства домашних задач антивируса плюс роутерного файрвола достаточно.
В облачных средах файрвол программно-определяемый и часто поставляется как firewall as a service. Вы задаете security groups и политики, провайдер их применяет. Плюс политика масштабируется вместе с инстансами.
Контейнерным нагрузкам нужна политика на уровне pod и namespace, применяемая контейнерным файрволом, потому что IP эфемерны, а периметровые правила не отслеживают сервисы, мигрирующие между нодами.
Если поднимаете правила файрвола на новом сервере, наш гайд по первичной защите сервера проходит по шагам хардненинга при первом запуске — SSH-ключи, настройка ufw и закрытие дефолтов до того, как хоть что-то будет выставлено наружу.
Современные файрволы подтягивают живые данные о том, что атакует остальной мир, и действуют на их основе.
Фиды threat intelligence дают файрволу обновления в реальном времени о появляющихся угрозах: вредоносные IP, известные плохие домены, активные сигнатуры эксплойтов. Вместо того чтобы ждать, пока атака совпадет с написанным вручную правилом, файрвол блокирует источники, уже помеченные где-то еще.
IDPS мониторит сеть на паттерны угроз, затем логирует и блокирует их. Он сверяет трафик с известными сигнатурами атак и следит за аномальным поведением, защищая инфраструктуру и чувствительные данные и помогая соответствовать требованиям регуляторов.
Многие файрволы интегрируют поддержку VPN для безопасного удаленного доступа. Файрвол и VPN решают разные задачи: файрвол контролирует, что доходит до вашей сети, VPN шифрует соединение и защищает данные в передаче — и хорошо работают вместе.
Новые файрволы применяют машинное обучение к анализу трафика, помечая поведение, которое не совпадает с известной сигнатурой, но отклоняется от нормальных паттернов. Полезно против новых атак, но не заменяют вменяемую настройку правил.
Пропустите вендорскую таблицу. Начните со своих реальных ограничений.
Файрвол должен справляться с вашим трафиком на пике, а не в среднем. Файрвол, который упирается в ограничения на линейной скорости, хуже бесполезного.
Подбирайте тип под угрозу. Публичное веб-приложение? Нужен WAF. Мультирегиональный облачный деплой? Cloud-native. Кластер Kubernetes? Контейнерный файрвол. Один захардненный VPS? Host-based stateful-фильтрация покрывает большую часть.
Оцените потребности в пропускной способности на три года вперед и берите то, что справится с запасом. Менять файрвол через год из-за того, что недооценили, — дорогое удовольствие.
Если оцениваете NGFW, важны эти функции: дешифрование, deep packet inspection, контентная фильтрация, песочница и безопасный удаленный доступ. Берите те, что будете использовать, игнорируйте набивку спецлиста.
Один вендор упрощает управление и поддержку, особенно на общей ОС. Несколько добавляют гибкость, но и сложность. Это оправдано, только если вы стандартизируетесь на общих API и открытых стандартах.
|
Тип организации |
Рекомендуемый файрвол |
|
Дом / соло-разработчик |
Файрвол роутера + host-based программный |
|
Один VPS / небольшой сервер |
Host-based stateful-файрвол (ufw/nftables) |
|
Малый и средний бизнес |
UTM или начальный NGFW |
|
Веб-приложение / API |
WAF + сетевой файрвол |
|
Мультирегиональное облако |
Cloud-native-файрвол |
|
Kubernetes / Docker |
Контейнерный файрвол + host-файрвол |
|
Enterprise |
NGFW с threat intelligence + IDPS |
Файрвол хорош ровно настолько, насколько хороша его настройка. Важнее всего три области.
Держите ПО файрвола пропатченным, чтобы он распознавал и блокировал новые угрозы. Непропатченный файрвол живет во вчерашней картине угроз.
Если защищаете что-то более ответственное — скажем, блокчейн-ноду — эти основы остаются фундаментом, но экспозиция другая; наш гайд по защите блокчейн-нод разбирает дополнительный хардненинг под эту нагрузку.
Файрвол защищает то, что вы поставили за ним, а это начинается с того, где живет ваш сервер. На VPS host-level-файрвол ваш — iptables, nftables, ufw, на выбор — с полным root-доступом и без вышестоящей фильтрации, в которую вы не можете заглянуть.
KVM-виртуализация, NVMe-хранилище в 40+ локациях и полный root-доступ — настройте каждое правило файрвола сами, до того как откроете порт.