# RDP-FIDO-GATE — Einrichtung & Konfiguration (Schritt für Schritt)

Sicheres Remote Desktop (RDP) mit einem **verpflichtenden FIDO2/WebAuthn-Hardwareschlüssel-Gate**. Der RDP-Port
bleibt durchgehend durch die Firewall gesperrt und öffnet sich **nur für Ihre IP, für etwa 90 Sekunden**, nachdem Sie
den Schlüssel berühren. Erfordert Windows 10 1903+ (WebAuthn + Windows Firewall). Es gibt keinen gehosteten Dienst — Sie
laden es selbst herunter und installieren es selbst.

Zwei Komponenten und ihre Ports:

| Komponente | Wo sie läuft | Ports |
|-----------|---------------|-------|
| **Gate** | Zielrechner (der PC, mit dem Sie sich verbinden) | **7440/TCP** — Steuerung + FIDO-Bestätigung; **3389/TCP** — RDP (bei Bedarf geöffnet) |
| **Client** | Ihr Rechner | ausgehende Verbindungen zum 7440 und 3389 des Hosts |

---

## Step 1. Host — das Gate installieren

1. Laden Sie **[RdpFidoGate-Setup.msi](https://accounts.new-imobile.com/updates/RdpFidoGate-Setup.msi)** auf dem Zielrechner herunter und führen Sie es aus (Windows fragt nach Administrator-Bestätigung).
2. Der Installer aktiviert Remote Desktop (mit NLA), bindet ein TLS-Zertifikat an Gate-Port **7440** und registriert und startet den Gate-Dienst. Der RDP-Port funktioniert weiter wie bisher — er schließt sich erst bei der Registrierung des ersten Schlüssels.
3. Die letzte Seite des Installers zeigt einen **einmaligen Registrierungscode** (15 Minuten gültig, mit Schaltfläche „Code kopieren“) sowie die Adressen des Rechners und den Gate-Port.
4. **Notieren Sie sich:** die Host-Adresse (Name / öffentliche IP), Port **7440** und den **Code**. Ist der Code abgelaufen, führen Sie `RdpFidoGate.exe code` als Administrator aus.

Stille Installation (z. B. per Softwareverteilung): `msiexec /i RdpFidoGate-Setup.msi /qn`

---

## Step 2. Router-Portweiterleitung (falls der Host hinter NAT/einem Router liegt) — ERFORDERLICH für Internetzugriff

Wenn Sie sich **aus dem Internet** verbinden und der Zielrechner hinter einem Heim-/Büro-Router sitzt, müssen Sie
**zwei Ports** auf dem Router zur LAN-Adresse des Hosts **weiterleiten**. Ohne dies erreicht der Client
weder das Gate noch RDP.

Weiterleiten (Port Forwarding / Virtual Servers / NAT in der Router-Verwaltung):

| Externer Port | Protokoll | → Interne IP (Host-LAN) | Interner Port |
|---------------|----------|--------------------------|---------------|
| **7440** | TCP | `192.168.x.x` (Host-LAN-IP) | **7440** |
| **3389** | TCP | dieselbe Host-LAN-IP | **3389** |

Vorgehensweise:
1. Ermitteln Sie die LAN-IP des Hosts: `ipconfig` → "IPv4-Adresse" (z. B. `192.168.1.50`).
2. **Reservieren Sie diese Adresse** für den Host (DHCP-Reservierung per MAC im Router) — sonst kann sie sich ändern.
3. Im Router: **Port Forwarding / Virtual Servers** → fügen Sie die zwei Regeln aus der Tabelle hinzu
   (externer Port = interner Port, Protokoll TCP, interne IP = Host-LAN).
4. Ermitteln Sie Ihre **öffentliche IP** (auf dem Host `https://api.ipify.org` öffnen, oder die "WAN-IP" des Routers). Falls Ihre
   IP **dynamisch** ist, richten Sie **DDNS** ein (im Router oder über no-ip/DuckDNS) und verwenden Sie den DDNS-Namen anstelle der IP.

> Sicherheit: Nur das Gate (7440) lauscht nach außen. RDP (3389) ist **geschlossen** von außen, bis Sie
> mit dem Schlüssel bestätigen — dann öffnet es sich eng begrenzt, nur für Ihre IP, für ~90s. Das Weiterleiten von 3389 gewährt
> für sich genommen keinen Zugriff; es lässt lediglich das temporäre "Fenster" durch den Router passieren.

---

## Step 3. Client — installieren und registrieren

1. Installieren Sie den Client: `RdpFidoClient.exe` (die passende `RdpFidoGate.exe` ist enthalten).
2. **Aktivierung** über AccountServer: geben Sie Ihre E-Mail ein → ein Code wird Ihnen zugesandt → geben Sie ihn ein.
   14-tägige Aktivierungs-Kulanzfrist; kostenlose Stufe = bis zu 10 gespeicherte Sitzungen, kostenpflichtig = kein Limit.
3. **Eine Sitzung hinzufügen:**
   - Adresse: die öffentliche IP oder der DDNS-Name des Hosts (aus Step 2), oder die LAN-Adresse, wenn Sie im selben Netzwerk sind.
   - Gate-Port: **7440**.
   - Geben Sie den **Einmalcode** aus Step 1 ein und **registrieren Sie Ihren FIDO2-Schlüssel** (berühren).

---

## Step 4. Verbinden

Wählen Sie die Sitzung → **berühren Sie den Schlüssel** → das Gate verifiziert ihn und **öffnet 3389 für Ihre aktuelle IP für
~90s** → der Client startet `mstsc` und verbindet Sie automatisch. Alle 30s setzt das Gate die
Sperre erneut durch, sodass das Fenster eng und IP-beschränkt bleibt.

---

## Prüfung & Fehlerbehebung

- Vom Client aus: `Test-NetConnection <public-ip-or-DDNS> -Port 7440` → sollte
  `TcpTestSucceeded : True` ergeben. Wenn `False` — Port 7440 ist nicht weitergeleitet, oder die Host-Firewall blockiert ihn.
- Port **3389 ist von außen geschlossen, bis Sie mit dem Schlüssel bestätigen** — das ist erwartet (testen Sie ihn nicht vor der Berührung).
- "Sitzung öffnet sich nicht": prüfen Sie, dass 1) der Gate-Dienst auf dem Host läuft, 2) **beide** Ports
  auf dem Router zur aktuellen LAN-IP des Hosts weitergeleitet sind, 3) sich die öffentliche IP nicht geändert hat (verwenden Sie DDNS bei dynamischer IP).
- Mehrere Hosts hinter einem Router: verwenden Sie unterschiedliche externe Ports (z. B. Host-2 → extern 7441→7440,
  3390→3389) und geben Sie diese externen Ports in der Client-Sitzung ein.

---

## Deinstallation

Auf dem Host, als Administrator: `powershell -ExecutionPolicy Bypass -File Uninstall-Gate.ps1`
(entfernt den Dienst, stellt die Firewall-Regeln wieder her). Entfernen Sie danach optional die Portweiterleitungsregeln auf dem Router.
