2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

WVD用にAzure Firewallを設定し、インターネットアクセスを制御する

Last updated at Posted at 2021-01-09

Windows Virtual Desktop (WVD)のセッションホストから、許可されたサービスにのみ接続させる、またネットワークレベルで許可/拒否されたログを取る方法です。
下記のようなシンプルな構成で進めます。赤囲みしたコンポーネント以外のWVD環境はあるものとして進めます。(つまり、既存のWVD環境に後付けできます)
Diagram1.png

要件

  • ホストプール内のセッションホスト(仮想デスクトップ)からのインターネットアクセスを制御したい
  • 既定ではすべてのアクセスを禁止したい
  • 許可されたサービスにのみ接続させたい
  • ファイアウォールに来た通信は許可/拒否ともにログを取っておく

Azure Firewallの設定

ルールの設定

Windows Virtual Desktop へのホスト プールの送信アクセス」に従って設定します。

アプリケーションルール

上のドキュメントに加え、以下の4つを追加します。

  • FQDNタグ

  • WindowsDiagnostics

  • WindowsUpdate

  • ターゲットのFQDN

  • *xt.queue.core.windows.netへのhttps

  • *.ingest.monitor.core.windows.netへのhttps

アプリケーションルールは最終的には下記のようになります。
rule-wvd1.png

ネットワークルール

KMSのルールを追加します。
ネットワークルールは最終的には下記のようになります。
rule-wvd2.png
DNSは今回Firewallを通らずに、ルーティングテーブルで直送するため、ここでは記述していません。DNSがFirewallを通る環境では記述する必要があります。

参考

ログの設定

fw-log1.png

ルーティングテーブルの設定

ルートの作成

AD(DNS)など自分の管理下にあるサービスへは直接ルーティングし、それ以外はすべてAzure Firewall (仮想アプライアンスという扱いになります)にルーティングする設定を行います。

  • 環境の例
名前 ルーティング先
default Azure Firewallへのデフォルトルート
mgmt AD DC (DNS) があるVNet

route1.png

サブネットへの割り当て

ホストプールのあるサブネットに関連付けます。ホストプール以外のサブネットには関連付けません。
下記の例はhostという名前がついたサブネットがホストプールのあるサブネットになっています。NSGがあってもかまいません。
route2.png

動作確認

セッションホストの再起動

ルーティングテーブルを設定するため、セッションホストを再起動します。

WVDログイン

WVDのセッションホストにログインし、Edgeなどブラウザでどこかにアクセスして、つながらないことを確認します。

ログの確認

拒否したログを確認してみます。

AzureDiagnostics
| where Category == "AzureFirewallApplicationRule"
| search "Deny"
| parse msg_s with Protocol " request from " SourceIP ":" SourcePort:int " to " FQDN ":" *
| project TimeGenerated,Protocol,FQDN

下記のような表示がされると思います。(環境によって違います)
log1.png

ここまでで、インターネットに出られない環境ができました。

Azure Monitorをファイアウォールで通す (オプション)

Azure Monitor for WVDを利用している場合は、セッションホストのエージェントからログをLog Analyticsのワークスペースに書き出せるようにする必要があります。ログは、ネットワーク通信で行われ、ファイアウォールの要件が定義されています。
これに従い、Azure Firewallのアプリケーションルールを定義します。
rule-monitor1.png

Office 365をファイアウォールで通す

Office 365 URL および IP アドレス範囲が公開されていますので、これに従ってルールを設定します。
Microsoft 365 Common および Office Onlineはすべての基礎になるものなので、これを設定し、必要なアプリケーションを足していきます。
例えばTeamsの場合は、このようにしてもよいでしょう。
rule-office1.png

アプリケーションサイトを通す

例えばGoogleを通す場合は下記のようにします。(実際には、関連サイトなどを登録する必要があります)
rule-google2.png
rule-google1.png

留意点

  • 実環境で必要なサービスへの許可ルール設定
    ここではシンプルな構成で解説しましたので、実際の環境では足らないこともあると思います。例えばWVDのベース機能で見ても、FSLogixのプロファイル置き場に対して許可ルールを設定しないといけないことがあると思います。
    事前にわかっていることは初めから設定できますが、それ以外はAzure FirewallでDenyしたパケットのログを見ながら通していくとよいでしょう。

  • RDP Shortpathが使えない (今のところ)
    RDP Shortpath の接続シーケンス」や「Azure VM の外部接続 (SNAT) オプション まとめ」を合わせて考えると、下記のようになってつながらないものと思われます。

    1. セッションホストにより、プライベートおよびパブリックの IPv4 と IPv6 のアドレスの一覧をペイロードに載せてクライアントに送信 (アドレスは変換されない)
    2. クライアントでは、バックグラウンド スレッドが開始され、提供されたホストの IP アドレスの 1 つに対して、UDP ベースの並列トランスポートを直接確立しようと試行 (クライアント -> ホスト)
    3. セッションホストではクライアントからのUDPパケットを受領
    4. セッションホストからクライアントに対してUDPパケットを送信
    5. ルーティングテーブルに従ってAzure Firewallにルーティング
    6. Azure FirewallでSNATがかかり、送信元アドレスが変更される
    7. クライアント(もしくは中間のNATルーター)では未知のアドレスからのUDP 3390が届くので破棄

参考

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?