Быстрый старт
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 вашей организации.
- Настройте мониторинг в разделе Наблюдаемость.