SecureExec
ГлавнаяО насБлогЦены
ВойтиРегистрация
← Назад к блогу

Самостоятельный хостинг SecureExec с Docker Compose

20 декабря 2025 г.

Одна из ключевых целей проектирования SecureExec — возможность запустить всю платформу на собственной инфраструктуре одной командой. В этой статье рассматривается production-готовое развёртывание через Docker Compose, включая TLS, защиту Elasticsearch и базовый харднинг.

Обзор архитектуры

Полное развёртывание SecureExec состоит из четырёх сервисов:

СервисОбразНазначение
serversecureexec-servergRPC-сервер приёма данных (порт 50051)
backendsecureexec-backendREST API и бэкенд веб-приложения (порт 8080)
frontendsecureexec-frontendИнтерфейс Next.js (порт 3000)
elasticsearchelasticsearch:8.xХранилище и поиск событий

server и backend взаимодействуют по внутренней сети Docker. Агенты обращаются только к server, а браузер — только к frontend/backend.

Конфигурация окружения

Все секреты передаются через переменные окружения. Скопируйте .env.example в .env и настройте:

# Elasticsearch
ELASTICSEARCH_PASSWORD=strong-password

# Бэкенд веб-приложения
DATABASE_URL=postgres://user:pass@postgres/secureexec
SECRET_KEY=your-jwt-secret

# gRPC-сервер — указывает на бэкенд для проверки токенов
WEBAPP_BACKEND_URL=http://backend:8080

# Опционально: TLS для gRPC-сервера
SECUREEXEC_TLS_CERT=/certs/server.crt
SECUREEXEC_TLS_KEY=/certs/server.key

Включение TLS на gRPC-сервере

Агенты подключаются непосредственно к gRPC-серверу. В production следует терминировать TLS на самом сервере (не на реверс-прокси), чтобы агенты могли проверить сертификат сервера:

# Генерация самоподписанного CA и сертификата сервера
openssl genrsa -out ca.key 4096
openssl req -new -x509 -key ca.key -out ca.crt -days 3650 -subj "/CN=SecureExec CA"
openssl genrsa -out server.key 4096
openssl req -new -key server.key -out server.csr -subj "/CN=secureexec-server"
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365

Смонтируйте сертификаты в контейнер сервера и задайте переменные окружения выше. Распространите ca.crt на агенты.

Безопасность Elasticsearch

Никогда не запускайте Elasticsearch с отключённой безопасностью в production. Стек Compose включает безопасность Elasticsearch по умолчанию. server и backend используют базовую аутентификацию (пользователь elastic) для взаимодействия с Elasticsearch.

Задайте ELASTICSEARCH_PASSWORD в виде надёжного пароля. Сервер читает его из ELASTICSEARCH_PASSWORD, бэкенд — из той же переменной.

Реверс-прокси

Для веб-приложения разместите Nginx или Caddy перед фронтендом на порту 443 и проксируйте /api на бэкенд. gRPC-сервер следует открывать напрямую на порту 50051 (или другом порту) с собственным TLS-сертификатом.

Обновление

SecureExec использует файлы версий для каждого компонента (server/version, webapp/backend/version, webapp/frontend/version). При выходе новой версии:

docker compose pull
docker compose up -d

Маппинги Elasticsearch обновляются автоматически при запуске через управление шаблонами индексов.

Мониторинг

gRPC-сервер и бэкенд веб-приложения выводят структурированные JSON-логи через tracing. Направьте логи в вашу SIEM или агрегатор. Ключевые события для оповещений:

  • token validation failed — повторные сбои могут указывать на bruteforce-атаку
  • elasticsearch bulk index failed — события теряются
  • stream error — проблемы с подключением агента
SecureExec

Лёгкая платформа безопасности конечных точек. Мониторинг процессов, файлов и сетевой активности в режиме реального времени по всему вашему парку устройств.

Продукт
  • Цены
Компания
  • О нас
  • Блог
  • Связаться с отделом продаж
  • Поддержка
Аккаунт
  • Войти
  • Регистрация
Правовая информация
  • Политика конфиденциальности
  • Условия использования

© 2026 SecureExec. Все права защищены.

Built with Rust & Next.js