Panduan Refactor SASE (WireGuard)

Hermes Network 360 Guard — Desktop Client (Windows & macOS)

Mulai dari Pendahuluan Lihat Arsitektur


Tentang Dokumen Ini

Dokumen ini adalah panduan lengkap untuk merefactor lapisan SASE (Secure Access Service Edge) di aplikasi desktop Hermes Network 360 Guard (HermesNetwork360-Avalonia).

Saat ini SASE dijalankan dengan WireGuard sebagai data plane, di-supervisi lewat custom IPC ke ServiceEngine.exe, dan menggunakan konfigurasi statis yang dihardcode saat install. Pendekatan ini berfungsi tapi punya banyak titik gesek operasional (rotation manual, sulit roaming, susah audit, IPC tanpa kontrak).

Dokumen ini menjelaskan arsitektur tiga-lapis untuk refactor SASE:

  1. Tetap pakai WireGuard sebagai data plane (cepat, hemat resource, terbukti)
  2. Hermes Helper Service (Windows Service / LaunchDaemon as SYSTEM/root) untuk operasi privileged dengan kontrak typed JSON-RPC — menggantikan ServiceEngine yang opaque
  3. Read config dari Supabase user_data per-user langsung via PostgREST (RLS-protected) — tidak perlu Edge Function (Supabase yang dipakai self-hosted, Edge Function tidak tersedia)

Hasil akhir: SASE yang roaming-aware, fully auditable, dengan trust boundary jelas, tanpa rewrite WireGuard.

Catatan kontekstual penting:

  • Supabase yang dipakai self-hosted → tidak ada Edge Function, komunikasi backend = PostgREST direct + RLS
  • HermesNetwork360Guard.exe jalan as user (bukan admin) → operasi privileged WireGuard butuh komponen Helper terpisah
  • WG config per-user disimpan di user_data.wg_config di Supabase → tidak ada gateway terpusat hardcoded; tiap user punya endpoint/peer config sendiri

Dokumen ini melengkapi Panduan TRMM Integration dengan pola arsitektur yang sama. Kalau Anda sudah membaca dokumen TRMM, banyak konsep di sini akan terasa familiar.

Audiens

  • Engineer .NET / Avalonia yang mengerjakan integrasi SASE di desktop client
  • Backend engineer yang membangun Supabase Edge Function untuk config provisioning
  • DevOps / SRE yang mengelola SASE gateway / WireGuard server
  • Security engineer yang me-review threat model dan key management

Prasyarat pengetahuan

  • Pemrograman C# / .NET 8 (Avalonia)
  • Konsep dasar VPN, routing, NAT
  • Konsep dasar WireGuard (peer, public/private key, AllowedIPs)
  • Konsep dasar tunnel WireGuard (config, peer, handshake) — implementasi pakai embedded tunnel.dll (Windows) + wireguard-go bundled (macOS), bukan client official external

Daftar Isi

# Bab Ringkasan
1 Pendahuluan Konteks, current state, masalah
2 Arsitektur Diagram before/after, tiga lapis
3 Prasyarat WireGuard tools, gateway, NuGet
4 Hermes Helper Service Privileged Win Service / LaunchDaemon, typed JSON-RPC
5 Config Service (Supabase) Read user_data via PostgREST + RLS
6 Layer 3 — Connection Flow Bring-up, monitor, roaming, refresh
7 Keamanan & Threat Model PSK, key rotation, identity-aware
8 Dukungan macOS wg-quick, LaunchDaemon, signing
9 WireGuard CLI Reference Cheat-sheet wg, wg-quick (untuk debug — production pakai embedded tunnel.dll)
10 Rencana Migrasi Phase 0–6, rollback
11 Troubleshooting Error umum + debugging
12 FAQ Pertanyaan & keputusan desain

Konvensi

  • Kode contoh dalam C# ditarget untuk .NET 8 (TFM net8.0).
  • Kode TypeScript untuk Edge Function di-target Deno runtime.
  • Path Windows: C:\Path\To\File.exe. macOS: /Library/..., /etc/..., /usr/local/....
  • Block bash = perintah shell di server / Mac.
  • Block powershell = perintah di Windows.
  • Block csharp = snippet untuk drop-in ke project Avalonia.

Versi & Pembaruan

Tanggal Versi Catatan
2026-04-21 1.0 Versi awal — refactor SASE arsitektur tiga-lapis dengan WireGuard data plane

Dokumentasi internal — Hermes Network Inc. © 2026.
Dibuat untuk tim teknik yang mengelola Hermes Network 360 Guard desktop client.

This site uses Just the Docs, a documentation theme for Jekyll.