# RDP-FIDO-GATE — セットアップと構成（ステップバイステップ）

**必須の FIDO2/WebAuthn ハードウェアキーゲート**を備えた安全なリモートデスクトップ（RDP）。RDP ポートは
常時ファイアウォールで遮断されたままで、キーにタッチした後、**あなたの IP に対してのみ、約 90 秒間だけ**開きます。
Windows 10 1903+（WebAuthn + Windows Firewall）が必要です。ホスティングサービスはありません——あなた自身が
ダウンロードしてインストールします。

2 つのコンポーネントとそのポート：

| コンポーネント | 実行される場所 | ポート |
|-----------|---------------|-------|
| **Gate** | ターゲットマシン（接続先の PC） | **7440/TCP** — 制御 + FIDO 確認；**3389/TCP** — RDP（オンデマンドで開く） |
| **Client** | あなたのマシン | ホストの 7440 および 3389 への送信接続 |

---

## Step 1. Host — gate をインストールする

1. ターゲットマシンで **[RdpFidoGate-Setup.msi](https://accounts.new-imobile.com/updates/RdpFidoGate-Setup.msi)** をダウンロードして実行します（Windows が管理者の確認を求めます）。
2. インストーラーは Remote Desktop（NLA 付き）を有効にし、gate ポート **7440** に TLS 証明書をバインドし、gate サービスを登録して起動します。RDP ポートはこれまでどおり動作し、最初のキーを登録した時点で初めて閉じられます。
3. インストーラーの最後のページに、**ワンタイムのキー登録コード**（15 分間有効、「コードをコピー」ボタン付き）と、マシンのアドレスおよび gate ポートが表示されます。
4. **書き留めてください：** ホストのアドレス（名前 / 公開 IP）、ポート **7440**、**コード**。コードが期限切れの場合は、管理者として `RdpFidoGate.exe code` を実行してください。

サイレントインストール（管理システムからなど）：`msiexec /i RdpFidoGate-Setup.msi /qn`

---

## Step 2. ルーターのポートフォワーディング（ホストが NAT/ルーターの背後にある場合）——インターネットアクセスに必須

**インターネットから**接続し、ターゲットマシンが家庭/オフィスのルーターの背後にある場合、ルーター上で
ホストの LAN アドレスへ**2 つのポートを転送**する必要があります。これがないと、クライアントは
gate にも RDP にも到達できません。

転送（ルーター管理画面の Port Forwarding / Virtual Servers / NAT）：

| 外部ポート | プロトコル | → 内部 IP（ホスト LAN） | 内部ポート |
|---------------|----------|--------------------------|---------------|
| **7440** | TCP | `192.168.x.x`（ホスト LAN IP） | **7440** |
| **3389** | TCP | 同じホスト LAN IP | **3389** |

手順：
1. ホストの LAN IP を確認します：`ipconfig` → "IPv4 Address"（例：`192.168.1.50`）。
2. そのアドレスをホスト用に**予約します**（ルーターで MAC による DHCP 予約）——そうしないと変わる可能性があります。
3. ルーターで：**Port Forwarding / Virtual Servers** → 表の 2 つのルールを追加します
   （外部ポート = 内部ポート、プロトコル TCP、内部 IP = ホスト LAN）。
4. あなたの**公開 IP** を確認します（ホストで `https://api.ipify.org` を開くか、ルーターの "WAN IP"）。あなたの
   IP が**動的**な場合は、**DDNS** を設定し（ルーターまたは no-ip/DuckDNS 経由）、IP の代わりに DDNS 名を使用します。

> セキュリティ：外部に対してリッスンするのは gate（7440）だけです。RDP（3389）は、あなたがキーで確認するまで
> 外部から**閉じられています**——確認後、あなたの IP に対してのみ、約 90 秒間だけ狭く開きます。3389 を転送しても
> それ自体はアクセスを許可しません。一時的な「ウィンドウ」がルーターを通過できるようにするだけです。

---

## Step 3. Client — インストールして登録する

1. クライアントをインストールします：`RdpFidoClient.exe`（対応する `RdpFidoGate.exe` が含まれています）。
2. AccountServer 経由の**アクティベーション**：メールアドレスを入力 → コードがメールで送られてくる → それを入力します。
   アクティベーションの猶予期間は 14 日間。無料枠 = 保存セッション最大 10 件、有料 = 制限なし。
3. **セッションを追加する：**
   - アドレス：ホストの公開 IP または DDNS 名（Step 2 より）、または同じネットワークにいる場合は LAN アドレス。
   - Gate ポート：**7440**。
   - Step 1 の**ワンタイムコード**を入力し、**あなたの FIDO2 キーを登録**します（タッチ）。

---

## Step 4. 接続する

セッションを選択 → **キーにタッチ** → gate がそれを検証し、**あなたの現在の IP に対して 3389 を約
90 秒間開きます** → クライアントが `mstsc` を起動し、自動的に接続します。30 秒ごとに gate は
ブロックを再適用するため、ウィンドウは狭く、IP 限定のまま保たれます。

---

## 確認とトラブルシューティング

- クライアントから：`Test-NetConnection <public-ip-or-DDNS> -Port 7440` → 
  `TcpTestSucceeded : True` になるはずです。`False` の場合——ポート 7440 が転送されていないか、ホストのファイアウォールがブロックしています。
- ポート **3389 は、あなたがキーで確認するまで外部から閉じられています**——これは想定どおりです（タッチ前にテストしないでください）。
- 「セッションが開かない」：次を確認してください。1) gate サービスがホストで実行中であること、2) **両方の**ポートが
  ルーターでホストの現在の LAN IP へ転送されていること、3) 公開 IP が変わっていないこと（動的なら DDNS を使用）。
- 1 台のルーターの背後に複数のホスト：異なる外部ポートを使用します（例：host-2 → 外部 7441→7440、
  3390→3389）。そしてそれらの外部ポートをクライアントのセッションに入力します。

---

## アンインストール

ホストで、管理者として：`powershell -ExecutionPolicy Bypass -File Uninstall-Gate.ps1`
（サービスを削除し、ファイアウォールルールを復元します）。その後、必要に応じてルーターのポートフォワーディングルールを削除します。
