qf хостовый firewall на eBPF
как начать

Демо в режиме сосуществования (coexist) — без риска для прода

Агент раскатывается рядом с существующим iptables или Cilium и ничего не ломает. Дальше идёт проверка концепции (PoC) на подмножестве хостов, управляемый переход к запрету по умолчанию (default-deny) и раскатка на весь парк. Это демо или пробный доступ (trial) под задачу, а не «скачал и поставил».

путь внедрения

Как попробовать qf без риска

Начать с qf — это четыре управляемых шага без риска для прода: демо в сосуществовании рядом с существующим iptables или Cilium, PoC разграничения доступа между серверами (east-west) на подмножестве хостов, поэтапный переход к запрету по умолчанию и раскатка на весь парк. Это демо или пробный доступ под вашу задачу, а не публичная загрузка.

Периметр отсекает внешний трафик, но доступ между серверами внутри сегмента остаётся открытым. PoC как раз показывает, что реально видно и что закрыто. На каждом шаге межсетевой экран (firewall) остаётся наблюдаемым и обратимым: по умолчанию qf работает в режиме fail-open (ALLOW), поэтому забытое правило не отрежет хост. Сегментация вводится осознанно, по шагам log → наблюдать → deny, а не разом.

4 шага

От демо до всего парка

Каждый шаг обратим и наблюдаем. Опорное демо — замена ручного iptables декларативной политикой, видимой всей команде.

  1. 01

    Демо в сосуществовании

    Агент раскатывается рядом с существующим iptables или Cilium и не трогает прод-трафик. Вы видите весь «iptables-зоопарк» парка как одну декларативную политику с аудитом. Механизм — eBPF на TC-хуке: TCX на ядре ≥6.6 (сосуществует с Cilium), classic TC на 5.15–5.16. На этой фазе qf только наблюдает и ничего не отрезает.

  2. 02

    PoC на подмножестве хостов

    Выбираете dev- или staging-парк, описываете политику как код с метками-селекторами (label selectors), наблюдаете события правил (вердикты, verdicts) и аудит «было → стало» каждого изменения. Fail-open по умолчанию: firewall не станет причиной простоя сам по себе.

  3. 03

    Управляемый переход к запрету по умолчанию

    Поэтапно и наблюдаемо: log → наблюдать → deny. Предпросмотр (preview) показывает, какие хосты и правила изменятся до применения; каскад пересчитывает затронутые хосты. История версий политики и поколения бандлов сохраняются, аудит фиксирует «было → стало». Откат означает возврат к предыдущему поколению, а не отдельную кнопку «мгновенного отката». Запрет по умолчанию вы включаете сами на этом шаге, а не получаете при установке.

  4. 04

    Раскатка на весь парк

    Подключение без ручной настройки (zero-touch): два поля в agent.conf плюс Ansible, лейблы приезжают из enrollment-токена. Ни одного per-host ручного шага: каскад сам доводит политику до всех хостов, осиротевших машин не остаётся. Обновление агента на парке — тем же Ansible-плейбуком через пакеты .deb/.rpm, без ручного обхода машин.

Рабочее демо на dev-парке за час

Агент раскатывается на dev-парк в сосуществовании за час. Команда и руководитель ИБ сразу видят весь iptables как декларативную политику с ревью и аудитом изменений, боевой трафик при этом не затрагивается. Так подход проверяется на своём парке до решения о закупке, за которым стоят CISO и CTO.

подключение без ручной настройки

Что нужно, чтобы подключить хост

Минимум ручной работы на хосте: идентичность и политики приезжают из токена.

01 · agent.conf

Два поля в конфиге

Минимальная настройка — /etc/qf/agent.conf с двумя ключами: QF_ENDPOINT (адрес центра управления, control plane) и QF_ENROLL_TOKEN (одноразовый токен подключения из UI). Больше ничего вручную на хост прописывать не нужно.

02 · Ansible

Раскатка по парку

Один плейбук ставит агент на весь парк — без индивидуальной настройки каждой машины. Ни одного per-host ручного шага.

03 · лейблы из токена

Идентичность без ручной разметки

Лейблы хоста приезжают из enrollment-токена. Политики применяются по лейблам сразу после подключения — не нужно размечать хосты руками.

факт-числа

Что понадобится для старта

4 шага
от демо до всего парка
2 поля
в agent.conf для подключения без ручной настройки
≥ 5.15
минимальная версия ядра Linux
5–15 с
каскад политики на 500 хостов

Агент — Linux (x86_64/arm64), ядро ≥ 5.15. До 32 правил на ядрах 5.15–5.16 и до 2048 на ≥5.17. Последовательная рассылка (fan-out): 30–90 с на 5000 хостов. Один управляющий сервер держит более 5000 агентов.

границы

Что qf не делает

Пределы покрытия стоит знать до PoC, чтобы они не стали сюрпризом позже.

Известные ограничения →
про сосуществование

Сосуществование ≠ «всё закрыто»

В демо-режиме qf сосуществует с текущим стеком и ничего не отрезает: default — fail-open (ALLOW). Переход к запрету по умолчанию идёт поэтапно и под вашим контролем, а не включается «из коробки».

вопросы

Частые вопросы

Это бесплатная загрузка?

Нет. Доступ выдаётся под вашу задачу через демо или пробный доступ, а не публичной загрузкой. Формат подбирается под задачу: демо, пробный доступ в вашем контуре (on-prem) или доступ к приватной бете облака.

Рискует ли демо продом?

Нет. Демо идёт в сосуществовании: агент работает рядом с существующим iptables или Cilium и ничего не отрезает. По умолчанию qf в режиме fail-open (ALLOW), поэтому забытое правило не оставит хост без связи.

Нужно ли сразу закрывать весь трафик?

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

Что нужно для PoC?

Подмножество Linux-хостов с ядром ≥ 5.15 (x86_64 или arm64) и центр управления (от 1 vCPU / 256 МБ RAM, без Kubernetes и etcd). Агенты подключаются без ручной настройки: два поля в agent.conf плюс Ansible, лейблы из токена. Разворачивается и в закрытом контуре (air-gap) без интернета; наружу агент не звонит (phone-home) — Ed25519 подтверждает аутентичность политики, не лицензию.

qf на вашем парке в режиме сосуществования