Наличие функционала Statefull Firewall с поддержкой до L7 включительно (FWaaS)

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

Роль HAProxy в сетевой инфраструктуре

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

Примечание

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

HAProxy является stateless firewall, поддерживая различные алгоритмы балансировки (Round Robin, Least Connections) для уровня L4 (TCP) и L7 (HTTP), реализуя при этом значительное количество statefull функций.

Statefull возможности HAProxy

HAProxy выступает в роли высокопроизводительного statefull прокси-сервера с отслеживанием состояния, который контролирует активные соединения и состояние сессий на уровне приложений. Хотя его часто используют для балансировки нагрузки, он обеспечивает безопасность приложений, фильтруя трафик на основе сложных условий уровня 7 (HTTP), списков контроля доступа (ACL) и отслеживания информации о состоянии для блокировки вредоносного поведения.

Ключевые аспекты HAProxy как средства обеспечения безопасности с сохранением состояния:

  • Списки контроля доступа (ACL)

    HAProxy использует ACL для анализа запросов и ответов, что позволяет блокировать IP-адреса, ограничивать пути URL или проверять заголовки HTTP, обеспечивая фильтрацию приложений с сохранением состояния.

  • Проверка состояния (уровень 7)

    В отличие от стандартных межсетевых экранов, которые отслеживают только IP-адрес/порт, HAProxy отслеживает состояние сессий, что позволяет ему управлять протоколом HTTP keep-alive, таблицами stick-tables и сложной маршрутизацией на основе данных приложения.

  • Stick-Tables

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

  • PacketShield (только для ALOHA)

    На оборудовании HAProxy ALOHA выделенный модуль на уровне ядра, называемый PacketShield, действует как высокопроизводительный межсетевой экран с отслеживанием состояния, защищая от объемных DDoS-атак и TCP-флудов.

Предупреждение

Для стандартных развертываний Linux HAProxy следует использовать в паре с межсетевым экраном уровня ядра, например iptables, nftables или ufw.

Применение на периметре и внутри инфраструктуры

HAProxy может применяться как:

  • На периметре облачной инфраструктуры — для фильтрации входящего трафика, балансировки нагрузки и защиты от DDoS-атак
  • Внутри инфраструктуры (на уровне vNIC) — для маршрутизации трафика между виртуальными машинами и контейнерами, обеспечения безопасности на уровне приложений

Достоинства HAProxy

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

HAProxy хорошо масштабируется с помощью потоков. Это стало возможным благодаря:

  • Событийно-ориентированной архитектуре, позволяющей чрезвычайно быстро реагировать на события ввода-вывода
  • Параллелизму на SMP-машинах, обеспечиваемому облегченной многопоточностью
  • Планировщику задач, постоянно переключающемуся между низкой задержкой и высокой пропускной способностью
  • Постоянному стремлению к экономии ресурсов на каждом уровне архитектуры

Надежность

Обеспечение бесперебойной работы веб-серверов благодаря:

  • Надежности и обзору происходящего
  • Проверке средств защиты от некорректного поведения
  • Встроенным проверкам на недопустимые ситуации (невозможные условия, бесконечные циклы и т.д.), которые в других продуктах могут привести к сбоям, но в HAProxy немедленно вызовут сбой с дампом проблемы

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

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

  • Chroot
  • Снижение привилегий
  • Предотвращение создания форков
  • Строгая проверка протокола
  • Проверка на наличие невозможных состояний
  • Подробная трассировка в случае обнаружения нарушений

Примечание

Можно усилить защиту операционной системы, ограничить количество открытых портов и доступных сервисов, но сам балансировщик нагрузки остается уязвимым. Поэтому принцип «нулевого количества ошибок» нецелесообразен, и HAProxy использует многоуровневую защиту.

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

В экосистеме OpenStack функционал statefull firewall реализуется через:

  • FWaaS (Firewall as a Service) — расширение Neutron для управления межсетевыми экранами
  • Octavia — сервис балансировки нагрузки, который может использовать HAProxy в качестве драйвера
  • Neutron — базовая сетевая служба с поддержкой security groups