# RDP-FIDO-GATE — pemasangan & konfigurasi (langkah demi langkah)

Remote Desktop (RDP) yang aman dengan **gerbang kunci perangkat keras FIDO2/WebAuthn wajib**. Port RDP
selalu diblokir firewall dan hanya terbuka **untuk IP Anda, selama sekitar 90 detik**, setelah Anda menyentuh
kunci. Memerlukan Windows 10 1903+ (WebAuthn + Windows Firewall). Tidak ada layanan hosting — Anda
mengunduh dan memasangnya sendiri.

Dua komponen beserta port-nya:

| Komponen | Berjalan di mana | Port |
|-----------|---------------|-------|
| **Gate** | mesin target (PC yang Anda sambungi) | **7440/TCP** — kontrol + konfirmasi FIDO; **3389/TCP** — RDP (dibuka sesuai permintaan) |
| **Klien** | mesin Anda | koneksi keluar ke port 7440 dan 3389 milik host |
| **FIDO Stream** (opsional) | host | **7441/UDP** — video, audio, dan input mode latensi rendah; dibuka per sesi, hanya untuk IP Anda |

---

## Langkah 1. Host — pasang gate

1. Unduh **[RdpFido-Setup.exe](https://accounts.new-imobile.com/updates/RdpFido-Setup.exe)** di mesin target, jalankan, lalu pilih **Host** (Windows akan meminta konfirmasi administrator). Ini memasang gate; Anda juga dapat mengunduh **[RdpFidoGate-Setup.msi](https://accounts.new-imobile.com/updates/RdpFidoGate-Setup.msi)** secara langsung.
2. Installer mengaktifkan Remote Desktop (dengan NLA), memasang sertifikat TLS ke port gate **7440**, lalu mendaftarkan dan menjalankan layanan gate. Port RDP tetap berfungsi seperti sebelumnya — port baru ditutup saat kunci pertama didaftarkan.
3. Halaman terakhir installer menampilkan **kode pendaftaran kunci sekali pakai** (berlaku 15 menit, dengan tombol "Copy code"), beserta alamat mesin dan port gate.
4. **Catat:** alamat host (nama / IP publik), port **7440**, dan **kode**. Jika kode kedaluwarsa, jalankan `RdpFidoGate.exe code` sebagai administrator.

Instalasi senyap (mis. dari sistem manajemen): `msiexec /i RdpFidoGate-Setup.msi /qn`

Tanpa pengawasan dengan installer gabungan: `RdpFido-Setup.exe host`

---

## Langkah 2. Port forwarding di router (jika host di balik NAT/router) — WAJIB untuk akses dari internet

Jika Anda tersambung **dari internet** dan mesin target berada di balik router rumah/kantor, Anda
harus **meneruskan dua port** di router ke alamat LAN host. Tanpa ini klien tidak dapat mencapai
gate maupun RDP.

Teruskan (Port Forwarding / Virtual Servers / NAT di halaman admin router):

| Port eksternal | Protokol | → IP internal (LAN host) | Port internal |
|---------------|----------|--------------------------|---------------|
| **7440** | TCP | `192.168.x.x` (IP LAN host) | **7440** |
| **3389** | TCP | IP LAN host yang sama | **3389** |
| **7441** | UDP | IP LAN host yang sama | **7441** — hanya jika Anda menggunakan FIDO Stream dari internet |

Prosedur:
1. Cari IP LAN host: `ipconfig` → "IPv4 Address" (mis. `192.168.1.50`).
2. **Cadangkan alamat tersebut** untuk host (reservasi DHCP berdasarkan MAC di router) — jika tidak, alamat bisa berubah.
3. Di router: **Port Forwarding / Virtual Servers** → tambahkan dua aturan dari tabel
   (port eksternal = port internal, protokol TCP, IP internal = LAN host).
4. Cari **IP publik** Anda (di host buka `https://api.ipify.org`, atau lihat "WAN IP" di router). Jika IP
   Anda **dinamis**, siapkan **DDNS** (di router atau lewat no-ip/DuckDNS) dan gunakan nama DDNS sebagai pengganti IP.

> Keamanan: hanya gate (7440) yang mendengarkan dari luar. RDP (3389) **tertutup** dari luar sampai Anda
> mengonfirmasi dengan kunci — lalu terbuka secara sempit, hanya untuk IP Anda, selama ~90 detik. Meneruskan 3389 tidak
> memberikan akses dengan sendirinya; ia hanya membiarkan "jendela" sementara melewati router.

---

## Langkah 3. Klien — pasang dan daftar

1. Pasang klien: jalankan **[RdpFido-Setup.exe](https://accounts.new-imobile.com/updates/RdpFido-Setup.exe)** lalu pilih **Client** (per pengguna, tanpa hak administrator), atau langsung **[RdpFidoClient-Setup.msi](https://accounts.new-imobile.com/updates/RdpFidoClient-Setup.msi)**.
2. **Aktivasi** melalui AccountServer: masukkan e-mail → kode dikirim ke Anda → masukkan kode.
   Masa tenggang aktivasi 14 hari; tingkat gratis = hingga 10 sesi tersimpan, berbayar = tanpa batas.
3. **Tambahkan sesi:**
   - Alamat: IP publik atau nama DDNS host (dari Langkah 2), atau alamat LAN jika Anda berada di jaringan yang sama.
   - Port gate: **7440**.
   - Protokol: **RDP (mstsc)** atau **FIDO Stream** — lihat Langkah 5.
   - Masukkan **kode sekali pakai** dari Langkah 1 dan **daftarkan kunci FIDO2 Anda** (sentuh).

---

## Langkah 4. Sambungkan

Pilih sesi → **sentuh kunci** → gate memverifikasinya dan **membuka 3389 untuk IP Anda saat ini selama
~90 detik** → klien meluncurkan `mstsc` dan menyambungkan Anda secara otomatis. Setiap 30 detik gate menegaskan ulang
blokir, sehingga jendela tetap sempit dan terbatas pada IP.

---

## Langkah 5 (opsional). FIDO Stream — mode latensi rendah untuk game dan video

FIDO Stream adalah mode koneksi kedua di samping RDP: layar dan audio host serta input Anda dikirim melalui UDP dengan encoding perangkat keras, sehingga latensi "klik-ke-foton" di LAN sekitar 25–45 ms. Sentuhan kunci yang sama membukanya; gate membuka UDP 7441 hanya untuk IP Anda dan hanya selama sesi. Tidak ada yang dipasang tambahan: agen host ada di dalam gate, penampil ada di dalam klien (gate versi 1.15 atau lebih baru di host).

1. Di pengaturan sesi pilih **Protokol: FIDO Stream (gaming, latensi rendah)**.
2. Biarkan pengaturan pada **Otomatis** untuk percobaan pertama. Artinya:
   - **Keseimbangan** — penggeser dari **Koneksi buruk** (resolusi lebih rendah, HEVC, lebih banyak koreksi kesalahan) hingga **PC lemah** (hanya encoder perangkat keras, preset tercepat, resolusi asli); **Sesuaikan keseimbangan secara otomatis** menggesernya ke arah bottleneck saat ini.
   - **Audio host** dan **Kirim mikrofon saya ke host** — suara dua arah.
   - **Tangkap mouse saat mulai (untuk game)** — gerakan mouse relatif untuk game tembak-menembak.
   - **Koneksi** — **Otomatis (tembus NAT)**, **Komputer ini memanggil host** (memerlukan 7441/UDP diteruskan ke host) atau **Host memanggil komputer ini** (ketika PC Anda memiliki alamat publik).
   - **Encoder (host)** — Otomatis / NVIDIA NVENC (langsung) / Perangkat keras (GPU apa pun) / Perangkat lunak (CPU); **Decoder** — Otomatis / Perangkat keras (GPU) / Perangkat lunak (CPU).
3. Sambungkan seperti biasa: pilih sesi → sentuh kunci → jendela stream terbuka.

Tombol pintas di jendela stream: **Ctrl+Alt+Home** menangkap/melepas mouse, **Ctrl+Alt+Enter** mengalihkan layar penuh, **Ctrl+Alt+End** memutus koneksi.

Persyaratan: Windows 10 1903+ di kedua sisi; untuk latensi terendah, GPU dengan encoder perangkat keras di host (NVIDIA, Intel, atau AMD). HEVC hanya digunakan bila klien memiliki decoder GPU; jika tidak, stream otomatis beralih ke H.264. Diagnostik di host (sebagai administrator): `RdpFidoGate.exe stream encoders` mencantumkan encoder yang tersedia, `RdpFidoGate.exe stream encoders --bench` mengukur masing-masing, `RdpFidoGate.exe stream selftest` menjalankan tangkap → encode → decode tanpa jaringan. Detail ditulis ke `gate.log` di host dan `client.log` di klien.

---

## Pemeriksaan & pemecahan masalah

- Dari klien: `Test-NetConnection <ip-publik-atau-DDNS> -Port 7440` → seharusnya
  `TcpTestSucceeded : True`. Jika `False` — port 7440 belum diteruskan, atau firewall host memblokirnya.
- Port **3389 tertutup dari luar sampai Anda mengonfirmasi dengan kunci** — itu memang seharusnya (jangan mengujinya sebelum menyentuh kunci).
- "Sesi tidak terbuka": periksa bahwa 1) layanan gate berjalan di host, 2) **kedua** port
  diteruskan di router ke IP LAN host saat ini, 3) IP publik tidak berubah (gunakan DDNS jika dinamis).
- Beberapa host di balik satu router: gunakan port eksternal yang berbeda (mis. host-2 → eksternal 7441→7440,
  3390→3389) dan masukkan port eksternal tersebut di sesi klien.
- FIDO Stream tidak mulai: gate di host harus versi 1.15 atau lebih baru (klien akan memberitahukannya), dan untuk akses dari internet, 7441/UDP harus diteruskan ke host atau sesi menggunakan **Host memanggil komputer ini**.

---

## Mencopot pemasangan

Di host, sebagai administrator: `powershell -ExecutionPolicy Bypass -File Uninstall-Gate.ps1`
(menghapus layanan, memulihkan aturan firewall). Kemudian, opsional, hapus aturan port forwarding di router.
