Bagaimana mikroHUB melindungi infrastruktur jaringan Anda
Versi dokumen: 2026-03-22 · Pertanyaan: [email protected]
INTERNET
┌────────────────────┬──────────────────────┐
│ HTTPS/443 │ WSS/443 │ WG/UDP 51820
│ (TLS 1.2+) │ (WebSocket) │ (WireGuard)
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────┐
│ NGINX REVERSE PROXY (mikrohub.io) │
│ ┌──────────────┐ ┌──────────────┐ ┌────────────────────────┐ │
│ │ Let's Encrypt │ │ HSTS Preload │ │ CSP + Security Headers │ │
│ │ ECDSA cert │ │ max-age=2yr │ │ X-Frame, X-Content │ │
│ └──────────────┘ └──────────────┘ └────────────────────────┘ │
│ Ports open : 80 (→301), 443, 51820/UDP │
│ Ports BLOCKED: 3001 (API), 6379 (Redis) │
└──────────┬──────────────────────┬───────────────────┬───────────┘
│ :3001 │ :3001/ws │ :51820
▼ ▼ ▼
┌──────────────────┐ ┌──────────────┐ ┌──────────────────────────┐
│ EXPRESS API │ │ WebSocket │ │ WireGuard (wg0) │
│ (Node.js) │ │ Server │ │ 10.99.0.1/16 │
│ │ │ One-time │ │ Per-device /32 peer │
│ JWT validation │ │ ticket auth │ │ No split tunnel │
│ 60s session cache│ │ (no JWT │ │ │
│ 1h max token age │ │ in URL) │ │ Devices: 10.99.x.y │
└────────┬─────────┘ └──────────────┘ └──────────────────────────┘
│
┌─────┴──────┐
▼ ▼
┌────────┐ ┌────────┐
│Supabase│ │ Redis │
│Postgres│ │ TLS │
│(cloud) │ │(local) │
│RLS on │ │ Auth │
│all tbl │ │ reqd │
└────────┘ └────────┘Semua lalu lintas eksternal berakhir di Nginx dengan TLS 1.2+. Layanan internal (API port 3001, Redis port 6379) diblokir di tingkat firewall dan tidak pernah terekspos ke internet.
| Lapisan | Mekanisme |
|---|---|
Otentikasi PenggunaPKCE | Supabase Auth dengan aliran PKCE (tidak implisit) |
Penyimpanan TokenCOOKIE | Aman + SameSite=Cookie longgar (bukan Penyimpanan lokal) |
Token Seumur HidupTTL | Maksimum 1 jam, cache 60 detik, penyegaran paksa |
Pencabutan SesiREVOKE | Pembatalan dalam memori + daftar hitam token |
Otentikasi WebSocketTICKET | Penukaran tiket satu kali (JWT tidak pernah ada di URL) |
Otentikasi Kunci APISHA-256 | SHA-256 di-hash, tercakup per sumber daya, masa berlakunya diberlakukan |
Otentikasi Agen PerangkatAGENT | Token hash SHA-256, tarif terbatas (2 persyaratan/30 detik) |
Kementerian Luar NegeriMFA | TOTP (aplikasi autentikator) + WebAuthn/FIDO2 (kunci sandi, YubiKey) |
AES-256-GCM dengan IV acak per entri, tag autentikasi divalidasi
Disimpan sebagai iv:tag:ciphertext di Supabase (tidak pernah berupa teks biasa)
Didekripsi hanya pada waktu jajak pendapat, di dalam memori, tidak pernah dicatat
RouterOS API-SSL dengan koneksi terenkripsi TLS
Koneksi TLS langsung melalui API-SSL (port 8729). Akses manajemen penuh.
Terowongan terenkripsi — tidak diperlukan port terbuka di router.
Koneksi TLS langsung hanya-baca. Tidak ada akses tulis ke router.
Perangkat mendorong data keluar melalui HTTPS. Tidak ada yang masuk.
| Komponen | Perlindungan |
|---|---|
| ✓TLS | TLSv1.2 + TLSv1.3, sandi ECDHE, pramuat HSTS |
| ✓Dinding Api (UFW) | Hanya 80, 443, 51820/UDP yang terpapar. API (3001) dan Redis (6379) MENOLAK |
| ✓ulang | TLS diaktifkan, diperlukan kata sandi, pengikatan khusus localhost |
| ✓Tajuk Nginx | HSTS, Opsi-X-Frame, Opsi-Jenis-Konten-X, CSP, Kebijakan-Izin |
| ✓Pembatasan Nilai | Global 300/15mnt, Auth 5/mnt, Admin 30/15mnt, Agen 2/30dtk |
| ✓Parameter DH | Dhparam 2048-bit untuk kerahasiaan penerusan |
| Standar | Status |
|---|---|
| HTTPS di mana-mana | ✅Ditegakkan |
| Enkripsi saat istirahat | ✅AES-256-GCM untuk kredensial |
| Enkripsi dalam perjalanan | ✅TLS + Penjaga Kawat |
| Otentikasi | ✅JWT + MFA + PKCE |
| Otorisasi | ✅RBAC + RLS |
| Jejak audit | ✅Log audit lengkap dengan pelacakan IP |
| Penghapusan data (GDPR) | ✅Titik akhir penghapusan akun |
| Manajemen sesi | ✅Daftar hitam token + penyegaran paksa |
Kami dengan senang hati menjawab pertanyaan apa pun dari calon pelanggan dan auditor.