Перейти к основному содержимому

Быстрый старт

Netgap — это решение для построения защищенного периметра по модели Logical Air Gap. Это руководство поможет вам развернуть систему на локальной машине (Linux) и выполнить первую передачу данных.

Что входит в поставку

Netgap поставляется релизным бандлом, который содержит:

  • bin/netgap-gateway — шлюз, принимающий входящие запросы;
  • bin/netgap-executor — исполнитель, вызывающий целевой сервис в доверенном сегменте;
  • bin/netgap-certgen — утилита генерации dev-PKI для разработки и тестов, и скрипт generate-dev-certs.sh, который разворачивает локальный dev-PKI за один шаг;
  • config/ — готовые примеры конфигурации обоих компонентов; их можно использовать как есть:
    • netgap-gateway.yaml и netgap-executor.yaml — документированные примеры со всеми настройками, назначением каждой опции, значением по умолчанию и ограничениями;
    • netgap-gateway-minimal.yaml и netgap-executor-minimal.yaml — минимально рабочая конфигурация без подробных комментариев: все адреса на 127.0.0.1, логи в консоль, метрики и проверка состояния включены;
    • netgap-gateway-observability.yaml и netgap-executor-observability.yaml — та же минимальная конфигурация плюс технические логи в Loki (заготовка), аудит в локальный файл и аудит в SIEM (заготовка);
    • netgap-gateway-restricted.yaml и netgap-executor-restricted.yaml — та же минимальная конфигурация плюс ограничивающий фильтр HTTP-запросов — секция http_filter с allow-списком правил «пути → методы», одинаковая у обоих компонентов;
  • README — описание поставки, инструкции по проверке подписей и хешей;
  • RUNTIME-REQUIREMENTS — требования к среде запуска целевой платформы.

Два важных свойства, которые нужно знать до первого запуска:

  • Конфигурация передаётся только одним YAML-документом через stdin (cat config.yaml | exec env -i ./bin/... run); файлы, переменные окружения и CLI-флаги не являются источниками рабочей конфигурации — подробнее в статье Конфигурирование приложения.
  • Внутренний транспорт mTLS обязателен: компоненты общаются между собой только по mTLS (TLS 1.3), незащищённого режима не существует. Перед первым запуском нужно сгенерировать dev-PKI скриптом ./generate-dev-certs.sh из корня релизного бандла. Эти сертификаты предназначены только для разработки и тестов; в продакшене используется PKI заказчика — см. Конфигурирование внутреннего транспорта.

Шаги быстрого старта

1. Распакуйте релизный бандл и проверьте подпись

Распакуйте архив релиза и перейдите в его корень. Перед использованием проверьте подпись и хеши артефактов — процедура (импорт публичного ключа мейнтейнера, gpg --verify, sha256sum -c) кратко описана в README поставки.

Релиз-кандидаты не подписываются

GPG-подпись ставится только на стабильные релизы. Бандлы релиз-кандидатов (версии с суффиксом -rc) поставляются без подписи, поэтому файлов *.asc в них нет и шаг gpg --verify для них неприменим — проверить можно только хеши (sha256sum -c). Релиз-кандидаты предназначены для ознакомления и тестирования, а не для промышленной эксплуатации.

2. Запустите целевой тестовый HTTP-сервис

В «доверенном» сегменте (для быстрого старта — на той же машине) запустите любой HTTP-сервис, например:

python3 -m http.server 8080

Примеры конфигурации исполнителя уже указывают на 127.0.0.1:8080 как адрес целевого сервиса.

3. Сгенерируйте dev-PKI

Из корня релизного бандла (параметры необязательны, по умолчанию — local-pki netgap.dev 30):

./generate-dev-certs.sh [каталог] [trust-домен] [дней]

Скрипт вызывает ./bin/netgap-certgen dev --out local-pki и создаёт в каталоге local-pki корневой сертификат dev-CA, пустой CRL, сертификаты обоих компонентов с ролевыми SPIFFE ID и два готовых YAML-фрагмента с секцией internal_transport, которые дописываются к базовой конфигурации простым объединением.

На Windows вызывайте генератор напрямую: .\bin\netgap-certgen.exe dev --out local-pki.

4. Запустите исполнитель

cat config/netgap-executor-minimal.yaml local-pki/netgap-executor-internal-transport.yaml | exec env -i ./bin/netgap-executor run

5. Запустите шлюз

cat config/netgap-gateway-minimal.yaml local-pki/netgap-gateway-internal-transport.yaml | exec env -i ./bin/netgap-gateway run

Любой другой пример из config/ запускается точно так же — достаточно подставить его имя.

6. Проверьте передачу данных

curl http://localhost:9090/

Запрос пройдёт всю цепочку: gateway → мост(ы) mTLS → executor → целевой сервис, и вы получите ответ тестового HTTP-сервиса.

Точки проверки состояния компонентов (включены в примерах конфигурации):

  • шлюз — http://localhost:8081/health;
  • исполнитель — http://localhost:8082/health.

Что дальше?

  • Настройте систему под свои нужды, используя раздел Конфигурация и документированные примеры config/netgap-gateway.yaml и config/netgap-executor.yaml.
  • Подключите логи, аудит и SIEM, взяв за основу config/netgap-gateway-observability.yaml и config/netgap-executor-observability.yaml: в них нужно заменить заготовки на адреса своей инсталляции (URL точки приёма Loki, адрес сборщика SIEM, путь файла аудита).
  • Ограничьте доступную часть API целевого сервиса с помощью фильтра HTTP-запросов, взяв за основу config/netgap-gateway-restricted.yaml и config/netgap-executor-restricted.yaml.
  • Изучите Конфигурирование внутреннего транспорта, чтобы перейти с dev-PKI на PKI вашей организации.
  • Настройте мониторинг в разделе Наблюдаемость.