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:
- Tetap pakai WireGuard sebagai data plane (cepat, hemat resource, terbukti)
- Hermes Helper Service (Windows Service / LaunchDaemon as SYSTEM/root) untuk operasi privileged dengan kontrak typed JSON-RPC — menggantikan ServiceEngine yang opaque
- Read config dari Supabase
user_dataper-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.exejalan as user (bukan admin) → operasi privileged WireGuard butuh komponen Helper terpisah- WG config per-user disimpan di
user_data.wg_configdi 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-gobundled (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 |