Руководство по эксплуатации и устранению неполадок GhostNet

Это техническое руководство для администраторов сети. Оно описывает режимы работы, архитектурные особенности и методы решения проблем в инфраструктуре GhostNet.


1. Режимы Запуска Агента

gna_agent поддерживает два основных режима работы. Выбор режима критически важен для стабильности.

1.1. Интерактивный режим (Консоль)

Запуск бинарного файла вручную (./gna или gna.exe).

  • Назначение: Первичная настройка, генерация конфига, активация инвайт-токена, отладка.
  • Особенности Windows: Мы программно отключаем режим "QuickEdit" в консоли, поэтому агент не засыпает при клике мышью. Однако закрытие окна терминала приведет к разрыву соединения.
  • Особенности Linux: Требует sudo для создания TUN-интерфейса и биндинга портов 53/UDP.

1.2. Режим Службы (Service Mode) — Рекомендуемый

Работа в фоне под управлением systemd (Linux) или Service Control Manager (Windows).

  • Надежность: Автоматический рестарт при сбоях, запуск после загрузки сети.
  • Изоляция: Работает в Session 0 (Windows), не зависит от входа пользователя.
  • Управление: Используйте встроенное меню агента (пункты 8-9) для установки/удаления службы.

2. Сетевые Проблемы и Диагностика

2.1. Агент не соединяется с Lighthouse

Симптом: [LINK] Handshake timeout или бесконечные попытки подключения.

  1. Проверьте PSK: Ключ psk в config.json должен быть идентичен на всех узлах. Длина — любая, но система хэширует его в 256-бит (SHA256).
  2. UDP Порты: Убедитесь, что на сервере Lighthouse открыт UDP 50000 во входящем направлении (Input).
  3. Время: Рассинхронизация часов более чем на 300 секунд (5 минут) приведет к отбрасыванию пакетов (Anti-Replay Protection).

2.2. Не работает разрешение имен (ping base.ghost)

Симптом: Ping request could not find host...

  1. Проверка локального DNS: В логах агента должно быть [DNS] Локальный DNS запущен на 10.0.0.X:53.
  2. Очистка кэша:
    • Windows: ipconfig /flushdns
    • Linux: resolvectl flush-caches
  3. Прямой тест: Выполните nslookup base 10.0.0.X (где X - ваш виртуальный IP). Если сервер отвечает, проблема в настройках ОС, а не в агенте.
  4. Конфликт портов: Если на машине уже занят порт 53 (например, другим DNS-сервером), агент отключит свой резолвер. В этом случае разрешение имен .ghost работать не будет.

2.3. P2P соединение не устанавливается

Симптом: Трафик идет через реле (Lighthouse), пинг высокий.

  • Причина: Симметричный NAT у одного из провайдеров.
  • Решение: GhostNet использует технику "UDP Hole Punching". Если она не срабатывает, трафик автоматически маршрутизируется через сервер.
  • Совет: Попробуйте пропинговать узлы в обе стороны. Иногда исходящий пакет "пробивает" NAT и открывает путь для входящего потока.

3. Критические Компоненты Инфраструктуры

3.1. Центр Сертификации (gna_ca_server)

  • Безопасность: Это "Святой Грааль" вашей сети. Если файл ca_key.pem будет украден, злоумышленник сможет выпустить сертификат и войти в сеть.
  • Изоляция: Сервер слушает только 127.0.0.1:9100. Доступ к нему должен иметь только Lighthouse.
  • Hardware Binding: Сертификаты жестко привязаны к "железу" (CPU + MAC). Если вы скопируете ключи node.key и cert.pem на другой компьютер, соединение будет отклонено с ошибкой Hardware Mismatch. При переезде на новый сервер нужно генерировать новый инвайт.

3.2. Lighthouse (gna_lighthouse)

  • Роль: Сигнальный сервер, DNS-авторитет и панель управления.
  • Firewall:
    • UDP 50000: Открыть всему миру (0.0.0.0/0).
    • TCP 9000, 9001: НЕ ОТКРЫВАТЬ в интернет. Доступ только из VPN (10.0.0.0/24) или localhost.
    • UDP 53: Открыть только внутри VPN (для работы DNS резолвера сети).

4. Временные Интервалы и Задержки

GhostNet — это асинхронная распределенная система. Изменения не происходят мгновенно.

  1. Handshake (Пульс):

    • Агент отправляет полный отчет о состоянии (CPU, RAM, Services) каждые 30-60 секунд (с рандомизацией).
    • Легкие KeepAlive пакеты для поддержания NAT отправляются каждые 10 секунд.
  2. Обновление DNS и Карты Сети:

    • Когда новый узел подключается, Lighthouse валидирует его через CA.
    • После валидации Lighthouse рассылает всем агентам пакет PeerList (Frame 0x04).
    • Агент применяет изменения в DNS-кэше мгновенно после получения пакета.
    • Итог: Новый узел становится виден всей сети обычно в течение 5-15 секунд после запуска.
  3. Perfect Forward Secrecy (PFS):

    • Сессионные ключи шифрования между агентами живут 10 минут.
    • По истечении времени происходит "бесшовное" пересогласование ключей (Rekeying) без разрыва соединения.

5. Администрирование через Web Panel

Доступ к панели управления реализован через защищенный SPA-туннель.

  1. Запустите агента.
  2. В меню выберите "4. Запустить админ-режим".
  3. Агент установит TCP-over-UDP туннель к Lighthouse.
  4. Откроется браузер с адресом http://127.0.0.1:9999/....
  5. Важно: Для доступа требуется сертификат с правами администратора (Группа Admins). Обычный пользователь получит ошибку Access Denied.

Возможности Панели:

  • Revoke: Мгновенный отзыв сертификата. Узел будет отключен от сети в течение секунды (Lighthouse разошлет всем команду PeerRevoke).
  • Remote CLI: Выполнение консольных команд (ping, ipconfig, systemctl) на удаленных узлах от имени root/SYSTEM.
  • DNS Aliases: Назначение красивых имен (например, db.ghost вместо 10.0.0.5). Изменения вступают в силу после следующего цикла обновления PeerList.