Перейти к содержанию

Требования

Вычислительные ресурсы

Расчёт мощности, значения из поставляемых чартов и ориентировочные конфигурации для пилота и промышленной эксплуатации вынесены на отдельную страницу: Расчёт ресурсов.

Коротко, чтобы прикинуть до чтения: для ознакомительной установки со всем Hub и DomainScope без сканеров-обёрток достаточно 4 ядер, 8 ГиБ памяти и 60 ГиБ диска. OpenVAS требует существенно больше — прежде всего диска под базы описаний уязвимостей.

Операционная система

Компоненты поставляются контейнерными образами на базе Alpine Linux и не предъявляют требований к конкретному дистрибутиву узла — достаточно работающего Docker Engine или Kubernetes. Ниже перечислены варианты, на которые ориентирована поставка.

Система Версия Пригодность
Ubuntu 22.04 LTS, 24.04 LTS Пригодна для промышленной эксплуатации
Debian 12 Пригодна для промышленной эксплуатации
RHEL, Rocky, AlmaLinux 9 Пригодна для промышленной эксплуатации
macOS 14 и новее Только для ознакомления
Windows Не поддерживается

Испытаний совместимости с конкретными сборками мы не проводили и не заявляем. Требование одно: поддерживаемая версия Docker Engine либо Kubernetes.

Kubernetes

  • k3s v1.30+ (рекомендуется для on-premise одно-нодовых кластеров)
  • Vanilla k8s v1.28+ — поддерживается
  • OpenShift — не проверялось

Программное обеспечение

Software Минимум Где нужно
Docker Engine 24.0+ Compose deploy, dev
Docker Compose v2.20+ (plugin) Compose deploy
Helm 3.13+ K8s deploy
kubectl соответствует k8s K8s deploy
make GNU 4.0+ Bare-metal/dev
Go 1.26+ Только для сборки из исходников
Bun 1.0+ Только для сборки frontend из исходников
Git 2.30+ Для CI и сборки

Сетевые требования

Порты, открытые наружу (production)

Порт Назначение Куда смотрит
443 Веб-UI и API (через nginx/traefik) Все пользователи
80 HTTP → редирект на 443 Все пользователи

Внутренние порты (между сервисами)

Порт Сервис Кто обращается
5432 PostgreSQL Hub backend, worker
5432 PostgreSQL DomainScope DomainScope. Отдельный экземпляр, с базой Hub не разделяется
8082 Backend Hub frontend, внешние клиенты, загружающие отчёты
3000 Frontend обратный прокси
8083 Провайдер SSO, если разворачивается рядом backend, браузер через обратный прокси
8084 Grafana, если разворачивается администратор
9390 Управляющий интерфейс OpenVAS DomainScope
8080 Служба OWASP ZAP DomainScope

В образе backend слушает порт 8080, а поставляемый чарт переопределяет его на 8082. Если разворачиваете вручную — сверяйтесь со значением SERVER_PORT.

Исходящий трафик

Адресат Зачем Можно ли через прокси
Docker Hub / GHCR Образы Да (HTTPS_PROXY)
Keycloak realm OIDC discovery Если Keycloak внешний
Jira instance Создание задач Да
Telegram Bot API Уведомления Да
Mattermost webhook Уведомления Да
NetBox Sync периметра Да
LLM провайдер AI-триаж Да (LLM_BASE_URL)
Nuclei templates Обновление Да
OpenVAS feeds Обновление CVE-базы Да

Air-gapped окружение: возможно, но требует ручной загрузки образов в private-registry (например, Harbor) и зеркалирования Nuclei/OpenVAS feeds.

Доменные имена и TLS

Production

Для боевого стенда понадобятся следующие FQDN (примеры для домена hub.example.com):

FQDN Назначение
hub.example.com Основной UI Hub
keycloak.hub.example.com Keycloak (или путь /auth на основном домене)
openvas.hub.example.com (опц.) OpenVAS Web UI
domainscope.hub.example.com (опц.) DomainScope API

Сертификаты

  • Let's Encrypt — поддерживается через cert-manager в K8s или certbot в bare-metal
  • Внутренний CA — поддерживается; примонтируйте корневые сертификаты в /etc/ssl/certs и установите SSL_CERT_DIR (Go), NODE_EXTRA_CA_CERTS (frontend build)
  • Self-signed — допустимо только для dev. На production будут проблемы с OIDC discovery и webhook delivery.

Postgres

  • PostgreSQL 15 и новее. Поставляемые манифесты разворачивают версию 15; на более старых версиях миграции не проверялись.
  • Расширение uuid-ossp включается самой миграцией — заранее ничего делать не нужно.
  • Сессия базы работает в UTC, все колонки времени — с часовым поясом.
  • Рекомендуемые параметры для промышленной эксплуатации (отправная точка, а не результат измерений):
shared_buffers = 2GB
effective_cache_size = 6GB
maintenance_work_mem = 512MB
work_mem = 32MB
max_connections = 200
  • Регулярный VACUUM ANALYZE — желательно через autovacuum (включён по умолчанию)

Инфраструктура резервного копирования

Для production обязательны:

  1. Снэпшоты PostgreSQL — ежедневно, ретенция минимум 14 дней
  2. Volume snapshots для storage/ (отчёты, артефакты) — ежедневно
  3. Secret backup — Vault snapshots
  4. Backup-тест — раз в квартал восстановите из backup на staging и проверьте, что Hub стартует и видит данные

Подробнее: 18.

Что нужно подготовить ДО установки

Чеклист:

  • [ ] Виртуалка / k8s-кластер с указанными ресурсами
  • [ ] OS, Docker/Helm установлены и обновлены
  • [ ] DNS-записи прописаны и резолвятся
  • [ ] TLS-сертификаты (Let's Encrypt account или wildcard cert)
  • [ ] Доступ к Docker Hub / private registry (Harbor)
  • [ ] Keycloak instance (внешний) ИЛИ подготовлены параметры для встроенного Keycloak
  • [ ] Внешняя БД PostgreSQL (если не используете встроенную) с пустыми БД для Hub и DomainScope
  • [ ] SMTP/Telegram/Mattermost (если нужны уведомления)
  • [ ] Jira account для бота интеграции (если нужна Jira)
  • [ ] План бэкапов согласован

После выполнения чеклиста — переходите к выбранному сценарию развёртывания.

Перед тем как выбирать способ развёртывания, полезно посмотреть Архитектуру — из чего состоит решение и что из этого обязательно, — и Сценарии применения, где показано, что входит в поставку, а что вы разворачиваете сами.