# RDP-FIDO-GATE — kurulum ve yapılandırma (adım adım)

**Zorunlu bir FIDO2/WebAuthn donanım anahtarı geçidi** ile güvenli Uzak Masaüstü (RDP). RDP portu
her zaman güvenlik duvarında kapalı kalır ve anahtara dokunduktan sonra **yalnızca sizin IP'niz için, yaklaşık 90 saniye boyunca** açılır.
Windows 10 1903+ (WebAuthn + Windows Firewall) gerektirir. Barındırılan bir hizmet yoktur — onu kendiniz
indirip kurarsınız.

İki bileşen ve portları:

| Bileşen | Nerede çalışır | Portlar |
|-----------|---------------|-------|
| **Gate** | hedef makine (bağlandığınız PC) | **7440/TCP** — kontrol + FIDO onayı; **3389/TCP** — RDP (istek üzerine açılır) |
| **Client** | sizin makineniz | ana bilgisayarın 7440 ve 3389 portlarına giden bağlantılar |

---

## Step 1. Host — geçidi kur

1. Hedef makinede `RdpFidoGate-Host.zip` dosyasını indirip açın.
2. **Yönetici olarak** çalıştırın:
   ```powershell
   powershell -ExecutionPolicy Bypass -File Install-Gate.ps1
   ```
   (varsayılan geçit portu 7440 ve ~90 sn erişim penceresi; `-Port` ve `-GrantSeconds` ayarlayabilirsiniz).
3. Betik Remote Desktop'ı (NLA ile) etkinleştirir, **güvenlik duvarında 3389'u kapatır**, geçit
   hizmetini **7440** üzerinde başlatır ve ilk anahtarı kaydetmek için bir **tek kullanımlık kod** yazdırır.
4. **Not alın:** ana bilgisayar adresi (ad / genel IP), port **7440** ve tek kullanımlık **kod**.

---

## Step 2. Yönlendirici port yönlendirme (ana bilgisayar NAT/bir yönlendirici arkasındaysa) — internet erişimi için GEREKLİDİR

**İnternetten** bağlanıyorsanız ve hedef makine bir ev/ofis yönlendiricisinin arkasındaysa, yönlendiricide
ana bilgisayarın LAN adresine **iki port yönlendirmeniz** gerekir. Bu olmadan istemci ne geçide
ne de RDP'ye ulaşabilir.

Yönlendirin (yönlendirici yönetiminde Port Forwarding / Virtual Servers / NAT):

| Harici port | Protokol | → Dahili IP (ana bilgisayar LAN) | Dahili port |
|---------------|----------|--------------------------|---------------|
| **7440** | TCP | `192.168.x.x` (ana bilgisayar LAN IP) | **7440** |
| **3389** | TCP | aynı ana bilgisayar LAN IP | **3389** |

Prosedür:
1. Ana bilgisayarın LAN IP'sini bulun: `ipconfig` → "IPv4 Address" (örn. `192.168.1.50`).
2. Bu adresi ana bilgisayar için **rezerve edin** (yönlendiricide MAC'e göre DHCP rezervasyonu) — aksi halde değişebilir.
3. Yönlendiricide: **Port Forwarding / Virtual Servers** → tablodaki iki kuralı ekleyin
   (harici port = dahili port, protokol TCP, dahili IP = ana bilgisayar LAN).
4. **Genel IP'nizi** bulun (ana bilgisayarda `https://api.ipify.org` açın veya yönlendiricinin "WAN IP"si). IP'niz
   **dinamik** ise **DDNS** kurun (yönlendiricide veya no-ip/DuckDNS aracılığıyla) ve IP yerine DDNS adını kullanın.

> Güvenlik: dışarıya yalnızca geçit (7440) dinler. RDP (3389), anahtarla onaylayana kadar dışarıdan
> **kapalıdır** — sonra dar bir şekilde, yalnızca sizin IP'niz için, ~90 sn açılır. 3389'u yönlendirmek
> tek başına erişim sağlamaz; yalnızca geçici "pencerenin" yönlendiriciden geçmesine izin verir.

---

## Step 3. Client — kur ve kaydet

1. İstemciyi kurun: `RdpFidoClient.exe` (eşleşen `RdpFidoGate.exe` dahildir).
2. AccountServer üzerinden **etkinleştirme**: e-postanızı girin → size bir kod postalanır → onu girin.
   14 günlük etkinleştirme ödemsizlik süresi; ücretsiz kademe = en fazla 10 kayıtlı oturum, ücretli = sınırsız.
3. **Bir oturum ekle:**
   - Adres: ana bilgisayarın genel IP'si veya DDNS adı (Step 2'den) ya da aynı ağdaysanız LAN adresi.
   - Geçit portu: **7440**.
   - Step 1'deki **tek kullanımlık kodu** girin ve **FIDO2 anahtarınızı kaydedin** (dokunun).

---

## Step 4. Bağlan

Oturumu seçin → **anahtara dokunun** → geçit onu doğrular ve **mevcut IP'niz için 3389'u yaklaşık
90 sn açar** → istemci `mstsc`'yi başlatır ve sizi otomatik olarak bağlar. Her 30 sn'de geçit
engellemeyi yeniden uygular, böylece pencere dar ve IP kapsamlı kalır.

---

## Kontrol ve sorun giderme

- İstemciden: `Test-NetConnection <public-ip-or-DDNS> -Port 7440` → 
  `TcpTestSucceeded : True` olmalıdır. `False` ise — port 7440 yönlendirilmemiştir veya ana bilgisayar güvenlik duvarı onu engelliyordur.
- Port **3389, anahtarla onaylayana kadar dışarıdan kapalıdır** — bu beklenendir (dokunmadan önce onu test etmeyin).
- "Oturum açılmıyor": şunları kontrol edin: 1) geçit hizmeti ana bilgisayarda çalışıyor mu, 2) **her iki** port da
  yönlendiricide ana bilgisayarın mevcut LAN IP'sine yönlendirilmiş mi, 3) genel IP değişmemiş mi (dinamikse DDNS kullanın).
- Bir yönlendiricinin arkasında birden fazla ana bilgisayar: farklı harici portlar kullanın (örn. host-2 → harici 7441→7440,
  3390→3389) ve bu harici portları istemci oturumuna girin.

---

## Kaldırma

Ana bilgisayarda, yönetici olarak: `powershell -ExecutionPolicy Bypass -File Uninstall-Gate.ps1`
(hizmeti kaldırır, güvenlik duvarı kurallarını geri yükler). Ardından isteğe bağlı olarak yönlendiricideki port yönlendirme kurallarını kaldırın.
