# RDP-FIDO-GATE — cài đặt & cấu hình (từng bước)

Remote Desktop (RDP) an toàn với **cổng khóa phần cứng FIDO2/WebAuthn bắt buộc**. Cổng RDP
luôn bị tường lửa chặn và chỉ mở **cho IP của bạn, trong khoảng 90 giây**, sau khi bạn chạm
khóa. Yêu cầu Windows 10 1903+ (WebAuthn + Windows Firewall). Không có dịch vụ lưu trữ — bạn
tự tải xuống và cài đặt.

Hai thành phần và các cổng của chúng:

| Thành phần | Chạy ở đâu | Cổng |
|-----------|---------------|-------|
| **Gate (cổng)** | máy đích (PC bạn kết nối tới) | **7440/TCP** — điều khiển + xác nhận FIDO; **3389/TCP** — RDP (mở theo yêu cầu) |
| **Client** | máy của bạn | kết nối đi ra tới cổng 7440 và 3389 của máy chủ |

---

## Bước 1. Máy chủ — cài đặt gate

1. Tải **[RdpFidoGate-Setup.msi](https://accounts.new-imobile.com/updates/RdpFidoGate-Setup.msi)** trên máy đích và chạy (Windows sẽ hỏi xác nhận quyền quản trị).
2. Bộ cài bật Remote Desktop (với NLA), gắn chứng chỉ TLS cho cổng gate **7440**, đăng ký và khởi động dịch vụ gate. Cổng RDP vẫn hoạt động như trước — nó chỉ đóng khi khóa đầu tiên được đăng ký.
3. Trang cuối của bộ cài hiển thị **mã đăng ký khóa dùng một lần** (hiệu lực 15 phút, có nút "Copy code"), cùng địa chỉ của máy và cổng gate.
4. **Ghi lại:** địa chỉ máy chủ (tên / IP công cộng), cổng **7440** và **mã**. Nếu mã hết hạn, chạy `RdpFidoGate.exe code` với quyền quản trị.

Cài đặt im lặng (ví dụ từ hệ thống quản lý): `msiexec /i RdpFidoGate-Setup.msi /qn`

---

## Bước 2. Chuyển tiếp cổng trên router (nếu máy chủ nằm sau NAT/router) — BẮT BUỘC để truy cập từ internet

Nếu bạn kết nối **từ internet** và máy đích nằm sau router gia đình/văn phòng, bạn
phải **chuyển tiếp hai cổng** trên router tới địa chỉ LAN của máy chủ. Không có bước này client
không tới được gate lẫn RDP.

Chuyển tiếp (Port Forwarding / Virtual Servers / NAT trong trang quản trị router):

| Cổng ngoài | Giao thức | → IP trong (LAN máy chủ) | Cổng trong |
|---------------|----------|--------------------------|---------------|
| **7440** | TCP | `192.168.x.x` (IP LAN máy chủ) | **7440** |
| **3389** | TCP | cùng IP LAN máy chủ | **3389** |

Quy trình:
1. Tìm IP LAN của máy chủ: `ipconfig` → "IPv4 Address" (ví dụ `192.168.1.50`).
2. **Đặt trước địa chỉ đó** cho máy chủ (DHCP reservation theo MAC trên router) — nếu không nó có thể thay đổi.
3. Trên router: **Port Forwarding / Virtual Servers** → thêm hai quy tắc từ bảng trên
   (cổng ngoài = cổng trong, giao thức TCP, IP trong = LAN máy chủ).
4. Tìm **IP công cộng** của bạn (trên máy chủ mở `https://api.ipify.org`, hoặc xem "WAN IP" trên router). Nếu IP
   của bạn **động**, hãy thiết lập **DDNS** (trên router hoặc qua no-ip/DuckDNS) và dùng tên DDNS thay cho IP.

> Bảo mật: chỉ gate (7440) lắng nghe từ bên ngoài. RDP (3389) **đóng** từ bên ngoài cho đến khi bạn
> xác nhận bằng khóa — rồi nó mở hẹp, chỉ cho IP của bạn, trong ~90 giây. Chuyển tiếp 3389 tự nó không
> cấp quyền truy cập; nó chỉ cho phép "cửa sổ" tạm thời đi qua router.

---

## Bước 3. Client — cài đặt và đăng ký

1. Cài client: `RdpFidoClient.exe` (đã kèm `RdpFidoGate.exe` tương ứng).
2. **Kích hoạt** qua AccountServer: nhập e-mail → mã được gửi tới bạn → nhập mã.
   Thời gian ân hạn kích hoạt 14 ngày; gói miễn phí = tối đa 10 phiên đã lưu, gói trả phí = không giới hạn.
3. **Thêm phiên:**
   - Địa chỉ: IP công cộng hoặc tên DDNS của máy chủ (từ Bước 2), hoặc địa chỉ LAN nếu bạn cùng mạng.
   - Cổng gate: **7440**.
   - Nhập **mã dùng một lần** từ Bước 1 và **đăng ký khóa FIDO2** của bạn (chạm).

---

## Bước 4. Kết nối

Chọn phiên → **chạm khóa** → gate xác minh và **mở 3389 cho IP hiện tại của bạn trong
~90 giây** → client khởi chạy `mstsc` và tự động kết nối. Mỗi 30 giây gate tái khẳng định việc
chặn, nên cửa sổ luôn hẹp và giới hạn theo IP.

---

## Kiểm tra & khắc phục sự cố

- Từ client: `Test-NetConnection <ip-công-cộng-hoặc-DDNS> -Port 7440` → phải là
  `TcpTestSucceeded : True`. Nếu `False` — cổng 7440 chưa được chuyển tiếp, hoặc tường lửa máy chủ chặn nó.
- Cổng **3389 đóng từ bên ngoài cho đến khi bạn xác nhận bằng khóa** — đó là bình thường (đừng kiểm tra nó trước khi chạm).
- "Phiên không mở": kiểm tra 1) dịch vụ gate đang chạy trên máy chủ, 2) **cả hai** cổng đã được
  chuyển tiếp trên router tới IP LAN hiện tại của máy chủ, 3) IP công cộng không thay đổi (dùng DDNS nếu động).
- Nhiều máy chủ sau một router: dùng các cổng ngoài khác nhau (ví dụ máy chủ 2 → ngoài 7441→7440,
  3390→3389) và nhập các cổng ngoài đó trong phiên của client.

---

## Gỡ cài đặt

Trên máy chủ, với quyền quản trị: `powershell -ExecutionPolicy Bypass -File Uninstall-Gate.ps1`
(gỡ dịch vụ, khôi phục quy tắc tường lửa). Sau đó, tùy chọn, xóa các quy tắc chuyển tiếp cổng trên router.
