GhostNet: Режимы работы VPN gna_agent

gna_agent — это универсальное клиентское приложение, поддерживающее несколько режимов работы, каждый из которых предназначен для выполнения определенных задач в сети GhostNet. Выбор режима осуществляется через интерактивное CLI-меню агента.


1. Стандартный Режим VPN (Client Node)

  • Выбор в меню: "1. 📡 Подключиться к VPN (Стандарт)"
  • Поведение:
    • gna_agent создает виртуальный сетевой интерфейс (ghost0 на Windows/Linux).
    • Маршрут для виртуальной сети 10.0.0.0/24 направляется в этот TUN-интерфейс.
    • Устанавливается защищенное VPN-соединение с gna_lighthouse.
    • Агент получает PeerList и обновляет hosts файл, обеспечивая доступ к другим узлам GhostNet.
  • Использование: Базовый режим для подключения к сети GhostNet и взаимодействия с другими внутренними сервисами и узлами.

2. Клиент Через Шлюз (Exit Node Client)

  • Выбор в меню: "2. 🛡️ Клиент через Шлюз (Exit Node Client)"
  • Поведение:
    • gna_agent перенаправляет весь интернет-трафик (т.е. трафик, не предназначенный для 10.0.0.0/24) через указанный виртуальный IP-адрес другого gna_agent, который работает в режиме "Exit Node Server".
    • Исключение: IP-адрес gna_lighthouse остается вне VPN-туннеля, чтобы обеспечить стабильность управляющего соединения.
  • Использование:
    • Централизованный выход в интернет: Весь ваш интернет-трафик проходит через один контролируемый узел.
    • Сокрытие реального IP: Ваш реальный IP-адрес скрывается за IP-адресом Exit Node.
    • Обход географических ограничений: Выход в интернет через Exit Node, расположенный в другой стране.

3. Запуск как Шлюз (Exit Node Server)

  • Выбор в меню: "3. 🌍 Запустить как Шлюз (Exit Node Server)"
  • Поведение:
    • gna_agent активирует IP-форвардинг на операционной системе, позволяя трафику проходить через него.
    • На Linux он настраивает NAT (Network Address Translation) с использованием iptables, обеспечивая выход в интернет для других узлов GhostNet.
    • Узел становится точкой выхода в интернет для других агентов.
  • Использование: Предоставление защищенного выхода в интернет для других узлов GhostNet, контролируя централизованную точку выхода.
  • Внимание: На Windows поддержка NAT пока ограничена или не реализована в полной мере.

4. Админ-режим (VPN + Панель)

  • Выбор в меню: "4. 🔑 Запустить Админ-режим"
  • Поведение:
    • VPN-соединение запускается в фоновом режиме, устанавливая полноценное подключение к сети GhostNet.
    • Одновременно строится Single Packet Authorization (SPA) туннель к веб-панели управления gna_lighthouse.
    • Веб-браузер автоматически открывается, перенаправляя вас на локальный адрес (http://127.0.0.1:9999), который проксирует доступ к веб-панели Lighthouse.
  • Использование:
    • Полноценное управление инфраструктурой GhostNet, включая мониторинг узлов, выпуск инвайтов, отзыв сертификатов и удаленное выполнение команд.
    • Требует одновременного участия в VPN-сети.
  • Требования:
    • gna_agent должен использовать сертификат, выданный gna_ca_server для административной группы (Organizational Unit: "Admins").
    • В файле config.json (или admin_config.json для Lighthouse Agent) должна быть установлена опция admin_features.enabled = true.

5. Только Панель

  • Выбор в меню: "7. Открыть Только Панель"
  • Поведение:
    • В отличие от "Админ-режима", VPN-соединение не устанавливается.
    • Строится только SPA-туннель к веб-панели управления gna_lighthouse.
    • Браузер открывается на локальный адрес (http://127.0.0.1:9999), предоставляя доступ к панели.
  • Использование:
    • Управление инфраструктурой GhostNet, когда полное VPN-подключение не требуется или невозможно.
    • Для быстрого доступа к панели управления без необходимости изменять маршрутизацию вашей основной сети.
  • Требования: Аналогичны "Админ-режиму" (административный сертификат, admin_features.enabled = true).

6. Публикация Сервисов

  • Выбор в меню: "6. 📢 Опубликовать Ресурс (Сайт/Сервис)"
  • Поведение: gna_agent может объявлять локальные TCP-сервисы, делая их доступными для других узлов GhostNet.
  • Использование: См. раздел «Публикация Сервисов» для подробностей.