Безопасность

Как работает файрвол: типы, правила, лучшие практики

Первая линия обороны вашей сети. Разбираем, как работает файрвол, все типы — от пакетной фильтрации до NGFW и cloud-native, и какой подойдет вам.

Наташа М. 1 фев 2024 7 мин
Как работает файрвол: типы, правила, лучшие практики
Содержание

Поднимаете свежий VPS, что-то деплоите и через пару минут лог авторизации забит попытками входа с IP, которые вы впервые видите. Это фоновый шум публичного интернета: боты непрерывно сканируют каждый доступный адрес. Между этим шумом и вашими сервисами стоит файрвол. И большинство тех, кто его держит, не объяснят, что он делает, дальше фразы «ну, он блокирует всякое».

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

Что такое файрвол и как он работает

Файрвол — это устройство сетевой безопасности, которое мониторит входящий и исходящий трафик и решает, что пропустить, а что заблокировать, по набору заранее заданных правил. Он стоит между вашей внутренней сетью и внешними сетями — чаще всего публичным интернетом — и работает как первая линия обороны: легитимный трафик пропускает, вредоносный отсекает до того, как тот доберется до чего-то важного.

Ключевые механизмы

Файрвол фильтрует трафик одним или несколькими способами:

  • Пакетная фильтрация (packet filtering) — проверяет отдельные пакеты по правилам для source IP, destination IP, порта и протокола. Быстро, просто, без отслеживания состояния.
  • Stateful-инспекция — отслеживает состояние активных соединений в таблице состояний (state table) и принимает решения по контексту соединения, а не по изолированным пакетам. Современный базовый уровень.
  • Прокси-сервис — терминирует соединения на прикладном уровне (layer 7), читая и фильтруя протоколы вроде HTTP, FTP и DNS от имени внутренней сети.
  • Next-Generation Firewall (NGFW) — объединяет stateful-инспекцию с deep packet inspection, осведомленностью о приложениях и встроенной системой предотвращения вторжений.

Основные функции

Независимо от типа, любой файрвол делает три вещи:

  • Мониторинг трафика — проверяет входящий и исходящий трафик по своему набору правил в реальном времени.
  • Контроль доступа — разрешает или запрещает соединения по source, destination, порту и протоколу.
  • Контентная фильтрация — блокирует доступ к конкретным сайтам, сервисам или категориям контента согласно политике.

Файрволы бывают аппаратные (hardware) и программные (software). Аппаратные — это выделенные устройства, которые защищают всю сеть на периметре и держат высокую пропускную способность. Программные (включая host-based-файрволы) работают на отдельном устройстве и фильтруют трафик только для этого хоста. На практике используют оба: аппаратный на границе сети, программный — на каждой машине. На Linux-VPS этот программный файрвол — обычно iptables или nftables, обернутые в ufw.

Типы файрволов

Типы файрволов

Типы файрволов различаются по тому, на каком уровне модели OSI они работают, как отслеживают соединения и насколько глубоко инспектируют трафик. Вот что реально используется сейчас.

Packet Filtering Firewall (пакетная фильтрация)

Работает на сетевом уровне (layer 3) и проверяет каждый пакет изолированно по списку контроля доступа. Фильтрует по четырем параметрам: source IP, destination IP, порты и протокол (TCP, UDP, ICMP). Состояние соединений не отслеживает — каждый пакет оценивается сам по себе, ранее принятые соединения не запоминаются.

Из-за этого пакетные файрволы быстрые и дешевые в работе, но ограниченные. Они не читают содержимое на уровне приложений, поэтому не отличат легитимный HTTP-запрос от вредоносного на том же порту. Правила ведутся вручную — это вполне терпимо на маленькой сети и мучительно на большой.

Stateful Inspection Firewall

Stateful-файрвол отслеживает состояние каждого соединения в таблице состояний. Когда приходит пакет, файрвол проверяет, относится ли он к установленному (established), связанному (related) или новому соединению, — и решает соответственно. Если вы разрешили исходящий запрос, ответный входящий пропускается автоматически, без отдельного правила.

Это современный стандарт. Фильтрует по IP, порту и протоколу, как и пакетная фильтрация, но таблица состояний дает понимание трафика в контексте, а не пакет за пакетом. На Linux ровно это делает iptables -m conntrack --ctstate ESTABLISHED,RELATED — принять ответный трафик для инициированных вами соединений, отбросить непрошеный входящий.

Proxy Firewall (прокси-файрвол)

Прокси-файрвол (файрвол прикладного уровня, layer 7) выступает посредником между вашей внутренней сетью и внешними. Он терминирует входящее соединение, инспектирует всю полезную нагрузку на прикладном уровне — HTTP, FTP, DNS — и открывает отдельное соединение к получателю от вашего имени. Напрямую с вашими хостами никто не общается.

Поскольку он читает прикладные протоколы, прокси-файрвол защищает от атак прикладного уровня (application layer attacks), которые пакетная фильтрация не видит. Терминирование и пересоздание каждого соединения добавляет задержку, и иногда он помечает безобидный трафик, вызывая задержки в работе.

Next-Generation Firewall (NGFW)

NGFW берет возможности традиционного файрвола (stateful-инспекция, NAT, поддержка VPN) и добавляет URL-фильтрацию, threat intelligence и осведомленность о приложениях. Отличие от традиционных файрволов в том, что NGFW видит, какое именно приложение генерирует трафик, а не только какой порт оно использует, и применяет политику на этом уровне (пропустить Slack, заблокировать BitTorrent, оба по 443).

NGFW — это не одна функция, а набор технологий под одним названием, где каждый компонент закрывает слепые зоны другого.

Web Application Firewall (WAF)

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 / Cloud-Native Firewall

Облачный файрвол (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-трафик между сервисами, — то, чего периметровый файрвол никогда не видит.

Аппаратный файрвол vs Программный файрвол

Это слои, а не конкуренты. Аппаратный держит периметр, программный — каждый хост. Для эшелонированной обороны держите оба.

Критерий

Аппаратные (hardware)

Программные (software)

Охват

Вся сеть на периметре

Один хост (host-based)

Производительность

Высокая, выделенное железо

Использует CPU и RAM хоста

Гибкость

Централизованно, один набор правил на всех

На каждое устройство, под конкретную машину

Для чего

Граница офисной/ЦОД-сети

Отдельные серверы, VPS, эндпоинты

Unified Threat Management (UTM)

UTM-устройство собирает stateful-инспекцию, предотвращение вторжений и антивирус в один аппарат с единым интерфейсом управления. Соблазн в простоте: одна коробка, одна консоль, один вендор вместо сшивания отдельных продуктов.

UTM подходит малому и среднему бизнесу, которому нужна нормальная защита без выделенной команды безопасности. По сравнению с enterprise-уровневым NGFW здесь компромисс — глубина: UTM меняет часть гранулярного контроля на простоту управления.

Как работает файрвол: процесс фильтрации

Как работает файрвол: процесс фильтрации

Когда пакет приходит на файрвол, он проходит упорядоченный процесс.

  1. Сверка с правилами. Файрвол сравнивает пакет со списком правил сверху вниз, проверяя source, destination, порт и протокол.
  2. Применение метода. Применяет свой метод фильтрации — пакетную фильтрацию, stateful-поиск по таблице состояний или полную инспекцию прикладного уровня — в зависимости от типа.
  3. Анализ содержимого. Для stateful- и NGFW-класса инспектируется полезная нагрузка: deep packet inspection читает содержимое пакета, а не только заголовки.
  4. Принятие решения. Файрвол действует по первому совпавшему правилу и останавливается. Совпало с блокирующим — пакет отброшен; с разрешающим — пропущен. Поэтому специфичные правила идут выше общих.
  5. Логирование. Действие записывается. Логи — это то, где вы замечаете паттерны атак, отлаживаете, почему что-то дропается, и кормите аудиты.
  6. Постоянное обновление правил. Правила пересматриваются по мере изменения угроз и добавления/удаления сервисов.

Правила и политики файрвола

Правила говорят файрволу, как обрабатывать попытки соединения. Любой файрвол, независимо от типа, фильтрует по одним и тем же базовым параметрам.

  • Source. Откуда инициируется соединение — IP-адрес или диапазон.
  • Destination. Куда оно идет — выражается через destination IP и порты.
  • Contents. Что соединение пытается передать (видно только файрволам, инспектирующим содержимое прикладного уровня).
  • Protocol packets. «Язык» соединения. В интернете и внутри подсетей это в подавляющем большинстве TCP/IP.
  • Ports. Подуровень каждого хоста. По портам файрвол отличает SSH (22) от HTTP (80) и HTTPS (443) на одном IP.

Правила обрабатываются по порядку, и выигрывает первое совпадение. Совпало с верхним правилом — остальные не проверяются. Не совпало ни с одним — корректно настроенный файрвол блокирует по умолчанию. Поэтому правила безопасности идут от специфичных к общим.

Например, нужно пропустить весь HTTP-трафик, кроме идущего с 100.100.1.1:

  1. Block — запретить HTTP с 100.100.1.1 (специфичное — ставим первым)
  2. Allow — разрешить весь HTTP (общее — ставим последним)

Поменяйте порядок и разрешающее правило сработает первым, блокирующее не отработает вовсе, и 100.100.1.1 пройдет.

Deep Packet Inspection

Deep Packet Inspection

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 и продвинутые функции безопасности

Threat Intelligence и продвинутые функции безопасности

Современные файрволы подтягивают живые данные о том, что атакует остальной мир, и действуют на их основе.

Threat Intelligence

Фиды threat intelligence дают файрволу обновления в реальном времени о появляющихся угрозах: вредоносные IP, известные плохие домены, активные сигнатуры эксплойтов. Вместо того чтобы ждать, пока атака совпадет с написанным вручную правилом, файрвол блокирует источники, уже помеченные где-то еще.

IDPS (обнаружение и предотвращение вторжений)

IDPS мониторит сеть на паттерны угроз, затем логирует и блокирует их. Он сверяет трафик с известными сигнатурами атак и следит за аномальным поведением, защищая инфраструктуру и чувствительные данные и помогая соответствовать требованиям регуляторов.

Интеграция с VPN

Многие файрволы интегрируют поддержку VPN для безопасного удаленного доступа. Файрвол и VPN решают разные задачи: файрвол контролирует, что доходит до вашей сети, VPN шифрует соединение и защищает данные в передаче — и хорошо работают вместе.

Файрволы с ИИ

Новые файрволы применяют машинное обучение к анализу трафика, помечая поведение, которое не совпадает с известной сигнатурой, но отклоняется от нормальных паттернов. Полезно против новых атак, но не заменяют вменяемую настройку правил.

Как выбрать файрвол для бизнеса

Пропустите вендорскую таблицу. Начните со своих реальных ограничений.

Требования к пропускной способности

Файрвол должен справляться с вашим трафиком на пике, а не в среднем. Файрвол, который упирается в ограничения на линейной скорости, хуже бесполезного.

Выбор типа файрвола

Подбирайте тип под угрозу. Публичное веб-приложение? Нужен WAF. Мультирегиональный облачный деплой? Cloud-native. Кластер Kubernetes? Контейнерный файрвол. Один захардненный VPS? Host-based stateful-фильтрация покрывает большую часть.

Производительность и масштабируемость

Оцените потребности в пропускной способности на три года вперед и берите то, что справится с запасом. Менять файрвол через год из-за того, что недооценили, — дорогое удовольствие.

Возможности NGFW

Если оцениваете 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

Лучшие практики настройки файрвола

Файрвол хорош ровно настолько, насколько хороша его настройка. Важнее всего три области.

Настройка правил файрвола

  • Default deny. Блокируйте все, затем явно разрешайте только нужное. Обратный подход — разрешать по умолчанию — означает, что дыры вы будете латать вечно.
  • Минимальные привилегии. Давайте каждому сервису минимум доступа, необходимый для работы. Базе данных не нужно принимать соединения из публичного интернета.
  • Специфичные правила — выше. Как показано выше, выигрывает первое совпадение. Ставьте исключения над общими правилами, которые они изменяют.

Регулярные обновления и патчи

Держите ПО файрвола пропатченным, чтобы он распознавал и блокировал новые угрозы. Непропатченный файрвол живет во вчерашней картине угроз.

Мониторинг и аудит

  • Логируйте события и просматривайте логи, по ним вы замечаете паттерны и восстанавливаете ход инцидентов.
  • Регулярно проводите аудит уязвимостей.
  • Используйте контроль изменений для правил, чтобы каждая правка отслеживалась и откатывалась.
  • Периодически вычищайте неиспользуемые правила — это снижает нагрузку на обработку и количество ошибок.

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

Где работает файрвол

Файрвол защищает то, что вы поставили за ним, а это начинается с того, где живет ваш сервер. На VPS host-level-файрвол ваш — iptables, nftables, ufw, на выбор — с полным root-доступом и без вышестоящей фильтрации, в которую вы не можете заглянуть.

VPS

KVM-виртуализация, NVMe-хранилище в 40+ локациях и полный root-доступ — настройте каждое правило файрвола сами, до того как откроете порт.

Выбрать тариф