# RDP-FIDO-GATE — installation et configuration (étape par étape)

Bureau à distance (RDP) sécurisé avec une **barrière obligatoire par clé matérielle FIDO2/WebAuthn**. Le port RDP
reste bloqué par le pare-feu en permanence et ne s'ouvre **que pour votre IP, pendant environ 90 secondes**, après que vous avez touché
la clé. Nécessite Windows 10 1903+ (WebAuthn + Windows Firewall). Il n'y a pas de service hébergé — vous le
téléchargez et l'installez vous-même.

Deux composants et leurs ports :

| Composant | Où il s'exécute | Ports |
|-----------|---------------|-------|
| **Gate** | machine cible (le PC auquel vous vous connectez) | **7440/TCP** — contrôle + confirmation FIDO ; **3389/TCP** — RDP (ouvert à la demande) |
| **Client** | votre machine | connexions sortantes vers les ports 7440 et 3389 de l'hôte |

---

## Step 1. Host — installer le gate

1. Téléchargez **[RdpFidoGate-Setup.msi](https://accounts.new-imobile.com/updates/RdpFidoGate-Setup.msi)** sur la machine cible et exécutez-le (Windows demandera une confirmation d'administrateur).
2. L'installateur active le Remote Desktop (avec NLA), lie un certificat TLS au port du gate **7440**, puis enregistre et démarre le service du gate. Le port RDP continue de fonctionner comme avant — il ne se ferme qu'au moment de l'enregistrement de la première clé.
3. La dernière page de l'installateur affiche un **code d'enregistrement à usage unique** (valable 15 minutes, avec un bouton « Copier le code »), ainsi que les adresses de la machine et le port du gate.
4. **Notez :** l'adresse de l'hôte (nom / IP publique), le port **7440** et le **code**. Si le code a expiré, exécutez `RdpFidoGate.exe code` en tant qu'administrateur.

Installation silencieuse (p. ex. via un outil de gestion) : `msiexec /i RdpFidoGate-Setup.msi /qn`

---

## Step 2. Redirection de ports du routeur (si l'hôte est derrière NAT/un routeur) — REQUIS pour l'accès depuis internet

Si vous vous connectez **depuis internet** et que la machine cible se trouve derrière un routeur domestique/de bureau, vous
devez **rediriger deux ports** sur le routeur vers l'adresse LAN de l'hôte. Sans cela, le client n'atteint
ni le gate ni le RDP.

Redirigez (Port Forwarding / Virtual Servers / NAT dans l'administration du routeur) :

| Port externe | Protocole | → IP interne (LAN de l'hôte) | Port interne |
|---------------|----------|--------------------------|---------------|
| **7440** | TCP | `192.168.x.x` (IP LAN de l'hôte) | **7440** |
| **3389** | TCP | même IP LAN de l'hôte | **3389** |

Procédure :
1. Trouvez l'IP LAN de l'hôte : `ipconfig` → « Adresse IPv4 » (par ex. `192.168.1.50`).
2. **Réservez cette adresse** pour l'hôte (réservation DHCP par MAC dans le routeur) — sinon elle peut changer.
3. Dans le routeur : **Port Forwarding / Virtual Servers** → ajoutez les deux règles du tableau
   (port externe = port interne, protocole TCP, IP interne = LAN de l'hôte).
4. Trouvez votre **IP publique** (sur l'hôte, ouvrez `https://api.ipify.org`, ou la « WAN IP » du routeur). Si votre
   IP est **dynamique**, configurez le **DDNS** (dans le routeur ou via no-ip/DuckDNS) et utilisez le nom DDNS au lieu de l'IP.

> Sécurité : seul le gate (7440) écoute vers l'extérieur. Le RDP (3389) est **fermé** depuis l'extérieur jusqu'à ce que vous
> confirmiez avec la clé — il s'ouvre alors de façon étroite, pour votre IP uniquement, pendant ~90 s. Rediriger le 3389 n'accorde
> pas l'accès en soi ; cela laisse seulement la « fenêtre » temporaire passer à travers le routeur.

---

## Step 3. Client — installer et enregistrer

1. Installez le client : `RdpFidoClient.exe` (le `RdpFidoGate.exe` correspondant est inclus).
2. **Activation** via AccountServer : saisissez votre e-mail → un code vous est envoyé par courriel → saisissez-le.
   Délai de grâce d'activation de 14 jours ; palier gratuit = jusqu'à 10 sessions enregistrées, payant = sans limite.
3. **Ajouter une session :**
   - Adresse : l'IP publique ou le nom DDNS de l'hôte (du Step 2), ou l'adresse LAN si vous êtes sur le même réseau.
   - Port du gate : **7440**.
   - Saisissez le **code à usage unique** du Step 1 et **enregistrez votre clé FIDO2** (touchez).

---

## Step 4. Se connecter

Choisissez la session → **touchez la clé** → le gate la vérifie et **ouvre le 3389 pour votre IP actuelle pendant
~90 s** → le client lance `mstsc` et vous connecte automatiquement. Toutes les 30 s, le gate réaffirme le
blocage, de sorte que la fenêtre reste étroite et limitée à l'IP.

---

## Vérification et dépannage

- Depuis le client : `Test-NetConnection <public-ip-or-DDNS> -Port 7440` → devrait donner
  `TcpTestSucceeded : True`. Si `False` — le port 7440 n'est pas redirigé, ou le pare-feu de l'hôte le bloque.
- Le port **3389 est fermé depuis l'extérieur jusqu'à ce que vous confirmiez avec la clé** — c'est attendu (ne le testez pas avant le toucher).
- « La session ne s'ouvre pas » : vérifiez que 1) le service du gate est en cours d'exécution sur l'hôte, 2) **les deux** ports
  sont redirigés sur le routeur vers l'IP LAN actuelle de l'hôte, 3) l'IP publique n'a pas changé (utilisez le DDNS si elle est dynamique).
- Plusieurs hôtes derrière un même routeur : utilisez des ports externes distincts (par ex. host-2 → externe 7441→7440,
  3390→3389) et saisissez ces ports externes dans la session du client.

---

## Désinstallation

Sur l'hôte, en tant qu'administrateur : `powershell -ExecutionPolicy Bypass -File Uninstall-Gate.ps1`
(supprime le service, restaure les règles du pare-feu). Ensuite, supprimez éventuellement les règles de redirection de ports sur le routeur.
