xah30 8f0cf1f017 feat(cli): automation bundle + identity-minimization features
Reduces manual setup steps and trims user-identifying data exposed by the
server/client, in the spirit of the deployment story: an operator on the
wire sees less, and the admin types fewer commands.

New CLI subcommands:
- `aura server-init`: one shot — pki init + issue-server + writes a ready
  server.toml with auto-detected egress iface; flags --enable-knock,
  --enable-cover-traffic, --no-nat, --run-as toggle the new transport
  defenses and privilege drop.
- `aura provision-client`: issues a client cert and assembles the full
  bundle (ca.crt + client.crt + client.key + client.toml in one directory)
  ready to hand over to the client device. --id is optional (defaults to
  a fresh UUIDv4, so client identities don't have to encode anything real).

Identity / log minimization:
- `aura pki issue-client --id` is now optional — UUIDv4 by default.
- `[server]/[client] no_logs = true` filters peer_id, client_ip,
  source_addr, client_id, local_ip, user, id, assigned_ip, peer field
  values through a custom tracing FormatFields layer (events still fire
  but the identifying fields are redacted before being written).
- `[client] bridges = [...]`: secondary server addresses; build_dial_targets
  shuffles them after the primary, so blocking one IP doesn't kill the
  client.
- Auto-detect egress iface in [server.nat] (via detect_default_egress_iface);
  egress_iface in config becomes optional with graceful fallback.

Config examples updated; backward-compatible (all new sections optional with
serde defaults). Workspace: 207 tests passed (+22), clippy -D warnings clean,
fmt clean. No new workspace deps.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-27 12:14:57 +03:00

Aura VPN

Aura — гибридный пост-квантовый VPN на Rust. Внутреннее рукопожатие гибридное и взаимно аутентифицированное (X25519 + ML-KEM-768 по FIPS 203 со взаимной X.509-проверкой), данные шифруются ChaCha20-Poly1305 с explicit-nonce, обфускация — паддинг датаграмм под «корзины» HTTPS-размеров.

На проводе по умолчанию идёт собственный UDP-транспорт Aura (без QUIC и без внешнего TLS на основном пути). Если сеть режет UDP, клиент автоматически переключается на TCP/443 или QUIC (мимикрия HTTP/3), последовательно пробуя транспорты из настраиваемого [transport] order. На стороне клиента есть TUN-интерфейс и split-tunnel (longest-prefix matching по CIDR + правила по доменам), которым можно управлять на лету через admin-сокет.

Крейты

Крейт Что внутри
aura-crypto Гибридный KEM (X25519 + ML-KEM-768), HKDF, AEAD ChaCha20-Poly1305, helpers
aura-pki Самоподписанный CA, выпуск server/client-сертификатов, проверка, плоский CRL
aura-proto Рукопожатие Aura, фрейминг, датаграмный/потоковый кодек данных
aura-transport Транспорты: собственный UDP, TCP/443, QUIC; единый dialer с handover
aura-tunnel TUN, маршрутизатор, split-tunnel (CIDR + домены), DNS-резолв в host-маршруты
aura-cli Бинарь aura: pki, server, client, route, status, bench-crypto

Быстрый старт

Подъём сервера на удалённой машине и подключение клиента описаны в docs/deployment.md. Это основная точка входа для развёртывания.

Документация

  • docs/deployment.md — руководство по развёртыванию (сервер + клиент)
  • docs/protocol.md — wire-протокол: рукопожатие, кадры, выбор транспорта
  • docs/pki.md — модель PKI, команды aura pki, верификация и CRL
  • docs/split-tunnel.md — split-tunnel, статика и admin-сокет на лету
  • docs/sing-box.md — план интеграции с sing-box (для мобильных клиентов)
S
Description
No description provided
Readme 1.5 MiB
Languages
Rust 92.3%
Go 6.5%
TypeScript 0.8%
CSS 0.4%