Файрвол на границе закрывает вход снаружи, но доступ между серверами внутри сети не ограничен: горизонтальный доступ (east-west) между ними остаётся открытым, и одно проникновение растекается по всему парку. Ручной iptables этого не закрывает и на сотнях машин разъезжается. qf — файрвол на каждом сервере (host-firewall) на eBPF: одна политика, доступ между серверами под контролем, каждое изменение с аудитом «было → стало».
Периметровый файрвол и NGFW закрывают вход снаружи (north-south) — попытку зайти в сеть с улицы. Но внутри сегмента доступ между серверами ничем не ограничен: горизонтальный доступ (east-west) между ними не заблокирован, просто невидим и никем не проверяется. Галочка «файрвол есть» стоит, а доступ между серверами открыт.
Стоит атакующему закрепиться на одном сервере, он двигается вбок: боковое перемещение (lateral movement) по открытым внутренним связям охватывает весь парк. Периметр этого не видит: он смотрит на границу, а не на трафик между машинами внутри. Это не то, за что уже платят периметровому файрволу; это отдельный слой, которого в схеме просто нет.
Проще на бытовом примере: вокруг района стоит забор с охраной на въезде, а между домами внутри замков нет, и попавший внутрь ходит свободно. qf ставит замки на двери между серверами: разграничение доступа между серверами (микросегментация) на уровне каждого хоста. Это отдельный слой, он дополняет периметровый NGFW, а не заменяет его; где проходит честная граница покрытия, разобрано на странице архитектуры.
Архитектура и границы →Закрыть горизонтальный доступ вручную, правкой iptables на каждом хосте, теоретически можно. На масштабе это разъезжается. Конкурент здесь не другой продукт, а статус-кво: скрипты, Ansible-роли и iptables, размазанные по парку.
«iptables не масштабируется. Точка.» · «Легко отрезать себе доступ к удалённой машине.» · «Менять iptables на 500 машинах из одного окна браузера.»
qf не «ещё один скрипт раскатки». Правила описываются один раз централизованно и применяются на каждом сервере детерминированно. Это правила как код (firewall as code).
Доступ описывается метками-селекторами (label selectors) в центре управления (control plane), один раз, с ревью, а не руками на каждой машине. Хосты попадают под правило по меткам, а не по спискам IP.
При изменении центр управления каскадом находит затронутые хосты и показывает в сухом прогоне (dry-run), какие правила добавятся и уберутся — до того, как что-либо уедет в прод.
Каждое изменение доступа фиксируется до и после. Одна консоль и одна история на весь парк вместо N разрозненных наборов правил, которые никто не помнит.
Один центр управления обслуживает парк агентов; политика доезжает до всех затронутых хостов за секунды, а не за ручной обход.
qf по умолчанию пропускает трафик, а не режет. Забытое правило не станет причиной простоя, а разрыв связи с центром управления не рвёт трафик: сервер продолжает работать по последним правилам. Переход к режиму «по умолчанию запрещать» (default-deny) — управляемый и поэтапный (сначала логирование, затем наблюдение, затем запрет), а не «big-bang» из коробки.
qf работает на eBPF/TC-хуке инлайн, без цепочек iptables и без их конфликтов. Он заменяет ручное управление правилами на парке централизованной политикой; локальный iptables на отдельной машине это не отменяет, но источником правды для парка становится политика в центре управления.
qf работает на L3/L4 по IPv4: адреса, диапазоны портов, протоколы, состояние соединения. Вне охвата: L7/DPI нет; непарсимый L4 (SCTP/GRE/ESP) проходит мимо правил и не попадает под запрет по умолчанию; IPv6-CIDR не энфорсится (v6 — best-effort по протоколу и порту, по умолчанию дропается). qf закрывает горизонтальный доступ на уровне L3/L4 и дополняет периметровый NGFW, а не заменяет его; подробная граница разобрана на странице архитектуры.
Нет. По умолчанию qf работает в режиме fail-open (пропускать) — это осознанный выбор, чтобы firewall не стал причиной простоя. Разграничение доступа между серверами вводится поэтапно и наблюдаемо: сначала логирование и наблюдение, затем управляемый переход к режиму «по умолчанию запрещать».
Нет. Центр управления автономен — это Go-сервис и PostgreSQL, без Kubernetes и без etcd. Агенты — лёгкие процессы на хостах. Подходит для парков, которые не живут в Kubernetes.
На ядрах 6.6+ qf крепится через TCX и сосуществует с Cilium. На ядрах ниже 6.6 без Cilium используется классический TC; на <6.6 вместе с Cilium агент не стартует из-за конфликта qdisc: это честный предел, а не тихий сбой.
На демо видно, как разграничение доступа между серверами закрывается одной политикой, с аудитом каждого изменения и сухим прогоном до применения.