Перейти к основному содержимому

Выбор инструмента

Изначально было принято решение использовать технологию ebpf, так как она обладает рядом очевидных преимуществ по сравнению с nftables и iptables. Однако, учитывая тот факт, что многие крупные компании до сих пор используют устаревшие версии ядра Linux, которые не поддерживают ebpf, мы были вынуждены пересмотреть свое решение в пользу nftables (преимущества описаны ниже).

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

iptables

Плюсы
  • Имеет длительную историю использования и широкое распространение.
  • Обладает качественной документацией и обширным набором ресурсов для обучения и отладки.
  • Представляет собой мощный инструмент для управления трафиком с обширным набором настроек и возможностей.
  • Обеспечивается хорошей поддержкой и имеет широкое сообщество пользователей.
  • Совместим с другими инструментами, такими как fail2ban, для обеспечения дополнительной защиты сервера.
Минусы
  • Обладает сложным и запутанным синтаксисом, что может затруднить работу начинающих пользователей.
  • Не полностью поддерживает декларативную конфигурацию, что усложняет отслеживание и управление правилами.
  • Некоторые функции, такие как обработка фрагментированных пакетов, могут работать медленнее, чем в nftables и ebpf.
  • Имеет ограниченную гибкость по сравнению с более современными решениями, такими как nftables и ebpf.

ebpf

Плюсы
  • Высокая производительность и гибкость достигаются за счет использования JIT-компиляции и возможности динамической загрузки и отключения программ. Это особенно важно в условиях высокой нагрузки и сложной сетевой инфраструктуры.
  • Более широкий набор инструментов для анализа сетевых пакетов и принятия решений на основе различных метрик позволяет эффективно контролировать сетевой трафик.
  • Универсальность ebpf позволяет использовать эту технологию не только для задач брандмауэра, но и для мониторинга и анализа сетевого трафика.
Минусы
  • Ограничения в возможностях: ebpf не поддерживает некоторые функции, которые могут быть полезны в качестве брандмауэра, например, отслеживание состояния соединения.
  • Сложность настройки: использование ebpf требует определенного уровня знаний, что может сделать его настройку и использование более сложным для неопытных пользователей. Учитывайте это при выборе инструмента для обеспечения безопасности вашей сетевой инфраструктуры.

nftables

Плюсы
  • Имеет простой и понятный синтаксис, что упрощает конфигурирование и отладку правил.
  • Обеспечивает полностью декларативный подход к конфигурации брандмауэра.
  • Обрабатывает фрагменты пакетов быстрее, чем iptables.
  • Поддерживает широкий спектр функций, включая отложенное применение правил и автоматическое управление временными правилами.
  • Позволяет динамически обновлять правила без перезагрузки или перекомпиляции ядра, что особенно важно в случаях, когда необходимо быстро изменить конфигурацию брандмауэра в реальном времени.
  • Обладает возможностью группировки правил для более эффективного управления правилами, связанными с различными группами пакетов.
  • Обладает поддержкой более сложных типов матчей, которые могут использоваться для определения конкретных условий, таких как наличие определенных флагов TCP или значений IP-адресов.
  • Поддерживает нативный синтаксис для работы с IP-адресами и другими типами данных, что упрощает конфигурацию брандмауэра.
  • Позволяет отслеживать состояние соединений, что позволяет создавать более сложные правила, основанные на состоянии соединения.
Минусы
  • Относительно новый инструмент, поэтому у него меньше сообщество пользователей и ресурсов для обучения и отладки, чем у iptables.
  • Некоторые функции, такие как поддержка определенных модулей ядра, могут быть ограничены.
  • Не все возможности, доступные в iptables, могут быть доступны в nftables.