Releases: UncleStephenCode/OpenShield
Release list
v0.2.4
OpenShield v0.2.4 — дерево правил и групповое управление
Интерфейс
- Исходящие правила представлены деревом
cgroup → исполняемые файлы. - Выбор cgroup показывает все правила группы, выбор вложенного пути — только правила соответствующего приложения.
- Исправлено выравнивание счётчиков трафика с учётом Unicode, больших чисел и узких терминалов.
- Добавлена клавиша
gдля управления выбранной группой: удаление, Accept, Reject, Drop, включение и выключение.
Безопасность групповых операций
- Изменения доступны только root и требуют подтверждения.
- Группа и ревизия политики фиксируются при открытии меню. Устаревшая команда отклоняется без автоматического повтора.
- Изменения применяются одной транзакцией с сохранением существующего механизма отката и fail-closed защиты.
- Входящие правила и правила других групп не затрагиваются.
- Accept/Reject/Drop сохраняют состояние enabled/disabled.
Важно: включение группы активирует также отключённые шаблоны приложений, которые могут разрешать неограниченный исходящий доступ. В интерфейс добавлено предупреждение.
Документация и проверки
- Дополнены все 31 ресурс локализации.
- Обновлена документация на русском и английском.
- Пройдены 545 Rust-тестов, форматирование и Clippy.
- В контейнерах Tumbleweed x86_64 проверены установка RPM, групповые операции и реальный TCP/UDP-трафик с nftables и iptables fallback.
Обновление
Обновляйте демон и TUI вместе: предыдущая сборка демона не поддерживает новую команду группового управления.
v0.2.3
OpenShield v0.2.3 — дерево правил и групповое управление
Интерфейс
- Исходящие правила представлены деревом
cgroup → исполняемые файлы. - Выбор cgroup показывает все правила группы, выбор вложенного пути — только правила соответствующего приложения.
- Исправлено выравнивание счётчиков трафика с учётом Unicode, больших чисел и узких терминалов.
- Добавлена клавиша
gдля управления выбранной группой: удаление, Accept, Reject, Drop, включение и выключение.
Безопасность групповых операций
- Изменения доступны только root и требуют подтверждения.
- Группа и ревизия политики фиксируются при открытии меню. Устаревшая команда отклоняется без автоматического повтора.
- Изменения применяются одной транзакцией с сохранением существующего механизма отката и fail-closed защиты.
- Входящие правила и правила других групп не затрагиваются.
- Accept/Reject/Drop сохраняют состояние enabled/disabled.
Важно: включение группы активирует также отключённые шаблоны приложений, которые могут разрешать неограниченный исходящий доступ. В интерфейс добавлено предупреждение.
Документация и проверки
- Дополнены все 31 ресурс локализации.
- Обновлена документация на русском и английском.
- Пройдены 545 Rust-тестов, форматирование и Clippy.
- В контейнерах Tumbleweed x86_64 проверены установка RPM, групповые операции и реальный TCP/UDP-трафик с nftables и iptables fallback.
Обновление
Обновляйте демон и TUI вместе: предыдущая сборка демона не поддерживает новую команду группового управления.
v0.2.2
OpenShield v0.2.2 — дерево правил и групповое управление
Интерфейс
- Исходящие правила представлены деревом
cgroup → исполняемые файлы. - Выбор cgroup показывает все правила группы, выбор вложенного пути — только правила соответствующего приложения.
- Исправлено выравнивание счётчиков трафика с учётом Unicode, больших чисел и узких терминалов.
- Добавлена клавиша
gдля управления выбранной группой: удаление, Accept, Reject, Drop, включение и выключение.
Безопасность групповых операций
- Изменения доступны только root и требуют подтверждения.
- Группа и ревизия политики фиксируются при открытии меню. Устаревшая команда отклоняется без автоматического повтора.
- Изменения применяются одной транзакцией с сохранением существующего механизма отката и fail-closed защиты.
- Входящие правила и правила других групп не затрагиваются.
- Accept/Reject/Drop сохраняют состояние enabled/disabled.
Важно: включение группы активирует также отключённые шаблоны приложений, которые могут разрешать неограниченный исходящий доступ. В интерфейс добавлено предупреждение.
Документация и проверки
- Дополнены все 31 ресурс локализации.
- Обновлена документация на русском и английском.
- Пройдены 545 Rust-тестов, форматирование и Clippy.
- В контейнерах Tumbleweed x86_64 проверены установка RPM, групповые операции и реальный TCP/UDP-трафик с nftables и iptables fallback.
Обновление
Обновляйте демон и TUI вместе: предыдущая сборка демона не поддерживает новую команду группового управления.
v0.2.1
OpenShield v0.2.1 — дерево правил и групповое управление
Интерфейс
- Исходящие правила представлены деревом
cgroup → исполняемые файлы. - Выбор cgroup показывает все правила группы, выбор вложенного пути — только правила соответствующего приложения.
- Исправлено выравнивание счётчиков трафика с учётом Unicode, больших чисел и узких терминалов.
- Добавлена клавиша
gдля управления выбранной группой: удаление, Accept, Reject, Drop, включение и выключение.
Безопасность групповых операций
- Изменения доступны только root и требуют подтверждения.
- Группа и ревизия политики фиксируются при открытии меню. Устаревшая команда отклоняется без автоматического повтора.
- Изменения применяются одной транзакцией с сохранением существующего механизма отката и fail-closed защиты.
- Входящие правила и правила других групп не затрагиваются.
- Accept/Reject/Drop сохраняют состояние enabled/disabled.
Важно: включение группы активирует также отключённые шаблоны приложений, которые могут разрешать неограниченный исходящий доступ. В интерфейс добавлено предупреждение.
Документация и проверки
- Дополнены все 31 ресурс локализации.
- Обновлена документация на русском и английском.
- Пройдены 545 Rust-тестов, форматирование и Clippy.
- В контейнерах Tumbleweed x86_64 проверены установка RPM, групповые операции и реальный TCP/UDP-трафик с nftables и iptables fallback.
Обновление
Обновляйте демон и TUI вместе: предыдущая сборка демона не поддерживает новую команду группового управления.
v0.2.0
OpenShield v0.2.0 объединяет развитие проекта из версий v0.1.29–v0.1.32: переработанный интерфейс управления правилами, адаптивные уровни обработки трафика, оптимизированную fail-closed атрибуцию приложений и воспроизводимый performance gate для nftables и резервного iptables.
Новый интерфейс управления правилами
- TUI разделён на вкладки состояния, исходящих правил, входящих правил, событий и справки.
- Исходящие правила группируются по приоритету:
- cgroup v2;
- проверенный путь исполняемого файла;
- адрес назначения.
- В правой панели показываются протокол, адрес, порт, интерфейс, аргументы запуска, UID, идентичность версии файла, источник правила, UUID и временные метки.
- Группировка влияет только на отображение: каждое правило сохраняет собственный UUID и независимую семантику.
- Добавлена отдельная вкладка входящих разрешений с выбором источника/CIDR, локального порта, интерфейса и протокола.
- Входящий трафик по-прежнему запрещён по умолчанию.
- Исправлены сообщения об успешном создании, изменении и удалении правил.
- Вместо неясного состояния «Подписка» отображается фактический backend: nftables или iptables.
Адаптивные уровни обработки
StatusV2 показывает фактически используемый тракт:
- L3 KernelNative —
BlockAllлибоEnforcingбез правил, привязанных к приложениям. - L2 ConntrackHybrid — application-bound TCP: первое соединение проходит NFQUEUE-атрибуцию, established TCP использует conntrack-generation fast path.
- L1 Nfqueue —
Learning, application-bound UDP, ICMP, ICMPv6 и правилаAny, требующие повторной атрибуции. - Unknown — прежняя версия протокола или непроверенное состояние.
Уровень обработки не изменяет строгость правил. nftables остаётся предпочтительным backend, а iptables/ip6tables используется только как проверенный fallback. Собственный модуль ядра, eBPF, CAP_BPF, MOK или изменение Secure Boot не требуются.
Производительность и безопасность
- Добавлен ограниченный
SOCK_DIAG-поиск сетевого сокета. - NFQUEUE обрабатывает микрооперации до 32 уже готовых пакетов без ожидания заполнения.
- Для каждого пакета сохраняется отдельный
SOCK_DIAG; совместно используются только ограниченные снимки владельцев/proc. - На пакетную операцию действует единый fail-closed срок 250 мс.
- Кеш решений между пакетными операциями не используется.
- Неопределённая идентичность, тайм-аут или превышение лимитов приводят к запрету пакета.
- UDP, ICMP и ICMPv6 продолжают повторную атрибуцию для каждого иначе не совпавшего пакета.
- Терминальные ошибки NFQUEUE переводят демон в наблюдаемый карантин
EmergencyBlockAll. - Сохранение обученных правил выполняется двухфазно и не удерживает блокировку движка во время
fsync. - Наблюдение за nftables получает таблицы, цепочки и счётчики одним процессом
nftза цикл.
Нагрузочный стенд и release gate
В tests/perf реализовано тестирование настоящими сокетами и процессами:
- baseline без OpenShield;
- network-only правила;
- application-bound TCP;
- application-bound UDP;
- режимы
EnforcingиLearning; - nftables и iptables fallback;
- входящий HTTP с keep-alive и короткими соединениями;
- исходящий TCP;
- UDP streaming и high-PPS профили с пакетами 128–512 байт;
- фазы warm-up, ramp, steady-state и burst.
Собираются throughput, PPS, CPS, concurrency, latency p50/p95/p99, CPU/RSS демона, retransmits, packet loss, softirq, conntrack, NIC drops и ошибки NFQUEUE. Результаты сохраняются в JSON, CSV и Markdown.
Релиз блокируют:
- падение throughput/PPS более чем на 10%;
- нарушение абсолютных лимитов CPU/RSS или задержки;
- drops и ошибки NFQUEUE;
- fail-open;
- несостоятельность baseline или насыщение генератора/peer.
Относительные CPU/latency-регрессии временно остаются диагностическими в CI-профиле, но продолжают блокировать production-like профиль.
Проверенный результат v0.1.32
Сохранённый локальный performance gate прошёл для nftables и iptables:
- 36 групп сравнения;
- 108 независимых AB/BA-пар;
- 276 записей метрик;
- худшее среднее падение throughput: 0,407%;
- худшее падение PPS: 0,527%;
- пиковый CPU демона: 26,78% одного ядра;
- пиковый RSS: 7,66 МиБ;
- пиковая p99 задержка запроса: 2,717 мс;
- drops, NFQUEUE errors и fail-open не обнаружены;
- все четыре проверки контролируемой перегрузки подтвердили fail-closed и восстановление.
Эти результаты относятся к точным артефактам v0.1.32 и не заменяют запуск release workflow для v0.2.0.
Локализация и документация
- Поддерживается 31 отдельный файл локализации.
- Проверяются полнота ключей, параметры подстановки и отсутствие скрытого массового fallback на английский.
- Обновлены английские и русские README, архитектура, модель угроз, аудит безопасности, документация упаковки и совместимости.
- Автоматическая проверка переводов не заменяет последующую проверку носителями языков.
Важное замечание для серверов
Новая установка запускается в режиме Learning, но входящий трафик запрещён по умолчанию. Перед удалённой установкой следует заранее обеспечить правило для административного доступа либо иметь локальную консоль или независимый out-of-band канал.
v0.1.32
v0.1.31
v0.1.30
v0.1.29
v0.1.28
Highlights
- Unified build and packaging matrices without separate jobs for individual distributions.
- 43 binary builds and 43 packages across supported architecture families.
- Package installation validation for 86 distribution and architecture combinations.
- 172 mandatory firewall E2E jobs: separate nftables and iptables/ip6tables scenarios for every platform.
Supported platforms
The release matrix covers Debian, Ubuntu, Fedora, Rocky Linux, AlmaLinux, openSUSE Leap, openSUSE Tumbleweed, Alpine Linux, and Arch Linux.
Supported architectures include:
- AMD64/x86-64
- x86/386
- ARMv5, ARMv6, and ARMv7
- ARM64/AArch64
- PowerPC64LE
- RISC-V 64
- IBM Z/s390x
AMD64 and ARM64 use native GitHub-hosted runners. Other architectures use x86 compatibility mode or digest-pinned Cross/QEMU environments.
Testing improvements
- Every binary is checked for its expected ELF architecture and static linkage.
- Every package is installed using the target distribution’s native package manager.
- Every platform runs complete Learning → Enforcing scenarios with both nftables and the iptables fallback.
- Application-aware TCP and UDP rule matching is tested under QEMU using a dedicated static native client.
- Package tests verify metadata, architecture, version, filesystem layout, permissions, system integration, and executable identity.
- The Rust workspace passes all 262 unit tests.
Fixed
- Fixed Alpine package version validation with
apk-tools 3. - Added an explicit per-file APK manifest to avoid unsafe or unintended package contents.
- Fixed package tests on minimal openSUSE Tumbleweed images by installing
gawk. - Added complete iptables-only coverage for Alpine, Arch Linux, and Tumbleweed.
- Removed the dependency on the disallowed
docker/setup-qemu-action.
Release security
- GitHub Actions and container images are pinned to immutable revisions or SHA-256 digests.
- Cross compiler images are validated as digest-pinned inputs.
- QEMU registration uses a dedicated fail-closed script and is restricted to ephemeral GitHub-hosted runners.
- Publication requires complete installation and firewall-test evidence for every matrix entry.
- Release assets, evidence manifests, and checksums are verified before publication.
- Existing release assets are never silently overwritten.
QEMU results provide emulation evidence and do not represent certification on physical hardware.