Problem: Client terminal was closing immediately on connect command because todo!() macros in TUN interface and relay functions were causing panics. Changes: 1. ✅ Replaced create_tun_interface() todo with stub returning dummy interface 2. ✅ Replaced configure_routing() todo with stub (no-op) 3. ✅ Replaced cleanup_routing() todo with stub (no-op) 4. ✅ Replaced relay_traffic() todo with infinite sleep (keeps connection alive) 5. ✅ Added warning messages with yellow ⚠ indicator for stub functions 6. ✅ Updated SHA256SUMS for both packages 7. ✅ Recreated distribution archives 8. ✅ Added CONFIG_FILES.md explaining server-enrollment.json.example usage Client Behavior Now: - Connection establishes successfully - Shows [STUB] warnings for TUN/routing/relay - Stays connected (Ctrl+C to exit) - No actual traffic forwarding yet (TODO for next iteration) server-enrollment.json.example Usage: - For Standalone mode (connecting to existing Master Node) - Requires enrollment_token from admin - psk: 'AUTO' until approved - See CONFIG_FILES.md for detailed workflow Next Steps: - Implement real TUN interface using osn crate - Implement route configuration via ip command - Implement packet relay loop (TUN ↔ OSTP client) - Add daemon mode (fork + detach) Distribution: - ostp-server-linux-x64.tar.gz: 6.85 MB - ostp-client-linux-x64.tar.gz: 0.92 MB (updated client)
3.3 KiB
3.3 KiB
Configuration Files
server.json.example
Назначение: Конфигурация ostp-server для Full Stack режима (когда oncp-master и ostp-server работают на одном хосте).
Использование:
cp server.json.example /etc/ostp/server.json
# Отредактировать PSK и параметры
sudo ostp-server -c /etc/ostp/server.json
Когда использовать:
- Развертывание первой/главной ноды с Master Node
- Локальная master_node_url (http://127.0.0.1:8080)
- PSK генерируется локально
server-enrollment.json.example
Назначение: Конфигурация ostp-server для Standalone режима (подключение к существующей мастер-ноде).
Использование:
# 1. Получить токен от админа мастер-ноды
# oncp-master node token --expiry 60
# 2. Создать конфиг с токеном
cp server-enrollment.json.example /etc/ostp/server.json
nano /etc/ostp/server.json
# Заполнить:
# - master_node_url: URL существующей мастер-ноды
# - enrollment_token: токен от админа
# - node_name: уникальное имя сервера
# - psk: "AUTO" (будет получен после approval)
# 3. Отправить запрос на регистрацию
sudo ostp-server -c /etc/ostp/server.json
# Сервер отправит запрос и завершится
# 4. Попросить админа одобрить ноду:
# oncp-master node approve <node-id>
# 5. После одобрения админ предоставит PSK и IP
# Обновить config: заменить "AUTO" на реальный PSK
# 6. Перезапустить сервер
sudo systemctl start ostp-server
Когда использовать:
- Добавление нового сервера в существующую сеть
- Географическое расширение (новые точки присутствия)
- Подключение к удаленной мастер-ноде
- Требуется enrollment token для безопасности
Различия
| Параметр | server.json | server-enrollment.json |
|---|---|---|
| psk | Реальный 64-hex ключ | "AUTO" (до approval) |
| master_node_url | http://127.0.0.1:8080 |
http://master.example.com:8080 |
| enrollment_token | Отсутствует | Обязателен |
| node_name | Опционален | Рекомендуется |
| Режим | Full Stack | Standalone |
Безопасность Enrollment
- Токен одноразовый: Используется только один раз, удаляется после использования
- Временное ограничение: Токен истекает через заданное время (обычно 60 минут)
- Silent Drop: Невалидный токен не возвращает ошибку (защита от enumeration атак)
- IPAM: IP автоматически назначается из пула 10.X.0.0/16 мастер-ноды