GhostNet: Сетевая конфигурация и брандмауэр

Этот документ описывает:

  • используемые порты
  • правила доступа
  • пример настройки UFW
  • виртуальную сеть
  • поведение DNS

Все команды вынесены в отдельные bash-блоки для удобного копирования.


1. Обзор портов и доступа

1.1 gna_ca_server (Центр сертификации)

Порт: 9100/tcp
Назначение: PKI API (выпуск, проверка, отзыв сертификатов, инвайты)
Доступ: только 127.0.0.1

Важно:

  • Сервис полностью внутренний
  • Не должен быть доступен из публичной сети
  • Lighthouse обращается к нему локально или через защищённый внутренний канал

1.2 gna_lighthouse (Сигнальный сервер)

Это единственная публичная точка входа в GhostNet.

Используемые порты

ПортПротоколНазначениеДоступ
50000UDPОсновной VPN туннельПубличный
9000TCPHTTPS панельТолько VPN / localhost
9001TCPSPA Admin UIТолько VPN / localhost
53UDPВнутренний DNSТолько VPN / localhost
9100TCPПрокси к CAТолько localhost

Ограниченный доступ

Следующие порты НЕ должны быть доступны из интернета:

  • 9000/tcp
  • 9001/tcp
  • 53/udp
  • 9100/tcp

Разрешён доступ только:

  • 127.0.0.1
  • 10.0.0.0/24 (внутренняя VPN сеть)

1.3 gna_agent (Клиент)

Агент инициирует исходящие соединения:

  • UDP 50000 → Lighthouse
  • P2P UDP → другие агенты
  • Трафик 10.0.0.0/24 → через TUN интерфейс

Агент НЕ подключается напрямую к 9100.


2. Настройка брандмауэра (UFW)

Пример для Linux с UFW.


2.1 Настройка для gna_lighthouse

Разрешить основной VPN порт

sudo ufw allow 50000/udp comment "GhostNet Main VPN Port"

Запретить публичный доступ к административным портам

sudo ufw deny 9000/tcp comment "GhostNet Deny Public Admin HTTPS"
sudo ufw deny 9001/tcp comment "GhostNet Deny Public Admin SPA"
sudo ufw deny 53/udp comment "GhostNet Deny Public DNS"
sudo ufw deny 9100/tcp comment "GhostNet Deny Public CA Proxy"

Разрешить доступ к админ-портам только из VPN сети

sudo ufw allow from 10.0.0.0/24 to any port 9000 proto tcp comment "GhostNet Allow Admin HTTPS from VPN"
sudo ufw allow from 10.0.0.0/24 to any port 9001 proto tcp comment "GhostNet Allow Admin SPA from VPN"
sudo ufw allow from 10.0.0.0/24 to any port 53 proto udp comment "GhostNet Allow DNS from VPN"

Разрешить CA доступ только с localhost

sudo ufw allow from 127.0.0.1 to any port 9100 proto tcp comment "GhostNet Allow CA from Localhost"

Разрешить локальный доступ к админ-портам

sudo ufw allow from 127.0.0.1 to any port 9000 proto tcp comment "GhostNet Allow Admin HTTPS from Localhost"
sudo ufw allow from 127.0.0.1 to any port 9001 proto tcp comment "GhostNet Allow Admin SPA from Localhost"
sudo ufw allow from 127.0.0.1 to any port 53 proto udp comment "GhostNet Allow DNS from Localhost"

Включить UFW

sudo ufw enable

2.2 Настройка для gna_ca_server (изолированная машина)

Рекомендуемая политика:

Запретить весь входящий трафик

Разрешить только SSH (если нужно администрирование)

Разрешить 9100 только с IP Lighthouse

Пример

sudo ufw default deny incoming
sudo ufw allow 22/tcp comment "SSH Access"

Если Lighthouse на IP 192.168.1.45:

sudo ufw allow from 192.168.1.45 to any port 9100 proto tcp comment "Allow CA from Lighthouse"

3. Виртуальная сеть GhostNet

Диапазон сети: 10.0.0.0/24

Принцип работы:

  • Каждый gna_agent получает IP вида 10.0.0.X
  • Lighthouse использует адрес 10.0.0.1
  • Маршрутизация идет через TUN-интерфейс

Типы передачи трафика:

  1. Прямое P2P соединение
    Если NAT позволяет — агенты соединяются напрямую.
  2. Relay через Lighthouse
    Если P2P невозможно — трафик проходит через Lighthouse.

4. DNS внутри GhostNet

Lighthouse содержит встроенный DNS-сервер.

4.1 Внутренние имена

Формат:

  • home
  • base
  • hostname.inc
  • alias.ghost
  • home.ghost
  • mysite.ghost

Механизм: Lighthouse резолвит имена в 10.0.0.X. Агент автоматически обновляет системные файлы:

  • Linux: /etc/hosts
  • Windows: C:\Windows\System32\drivers\etc\hosts

DNS сервер Lighthouse доступен по адресу: 10.0.0.1:53

4.2 Внешние DNS запросы

Если домен не относится к *.ghost либо имеет стандартное доменное имя 1 ого уровня, Lighthouse пересылает запрос на внешний DNS (например, 8.8.8.8 или любой другой настроенный сервер). Это позволяет агентам резолвить как внутренние, так и публичные домены.


Итог

GhostNet обеспечивает изоляцию инфраструктуры:

  • CA сервер: только локальный доступ.
  • Админ-порты: доступны строго через VPN.
  • Публичный доступ: открыт только для UDP 50000.

Все остальные сервисы доступны исключительно через защищенную виртуальную сеть.