Windows Defender Firewallで特定のアプリ/IPのみOutBound通信許可をする

こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。

今回は、以前VirtualBox上に立てたWin環境を使ってWindows Defender Firewallの設定の
勉強をしてみます。
VirtualBoxにWin環境を作る手順は以下となります。

https://qiita.com/ohtsuka-shota/items/0ed8f1da05adfa574bac

# 作ってみる環境

イメージとしては以下となります。
Windows環境にデフォルトで入っているEdgeと別途Firefoxをダウンロードします。
この状態でEdgeはQiitaのWebサイトのみブラウジングを可能にし他のサイトは全てブロック。
FirefoxはいかなるWebサイトもブラウジングできないようにしてみます。

![名称未設定ファイル.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/5aa499fd-fa49-7453-3ca7-e469738e0027.png)

# 環境構築
まずEdgeとFirefoxでQiitaにWebブラウジングできることを確認します。
上がEdge、下がFirefoxの結果です。問題なく接続できていますね。
![2024030902.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/4a0821bd-9b9a-e79d-6893-1038f09b8507.png)
![2024030901.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/2bf98d8b-f3e3-e090-ac13-5634f92553b2.png)
Firewallの設定をしていきます。windows defenderを検索窓で検索して"セキュリティが強化されたWindows Defender ファイアウォール"を開きます。
![2024030903.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/59cf8af2-2d6e-d3e0-7b4e-3aef4294b9d8.png)
画面中央少し下にある"Windows Defender ファイアウォールのプロパティ"を押下します。
![2024030904.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/0703a47b-42c1-4f4b-904b-41092da02d0e.png)
デフォルトではそれぞれのプロファイルの送信接続が許可になっています。
![2024030905.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/082141a7-f30b-11aa-834d-f989cc2834a8.png)
それぞれの送信接続をブロックに設定して適用を押下します。
![2024030906.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/6beb9f27-568c-25d2-e551-ee99ac64c48c.png)
適用されているかを確認します。画面中央に記載されているそれぞれのプロファイルに”規則に一致しない送信接続はブロックされます”とあることを確認します。
![2024030907.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/8be683fd-715b-da28-bbca-60a675e8a816.png)
このタイミングでWebブラウジングの結果を見てみます。以下のように通信が出来なくなっていることが確認できます。左がEdge、右がFirefoxになります。
OutBoundの通信がデフォルトでブロックするように変更したため、挙動が変わったことがわかります。
![2024030908.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/04776308-3300-aac7-1243-6ff72740fc11.png)
EdgeでQiitaだけに接続できるようにします。
画面左に表示されている”送信の規則”を押下します。
![2024030909.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/58c6aeb1-03f5-13a6-070a-d678959b70e0.png)
画面右に表示されている”新しい規則”を押下します。
![2024030910.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/bdabc4c8-6375-e847-e3e7-6d68d640041b.png)
Edgeだけ通信を許可するのでプログラムをここでは選択します。
![2024030911.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/7ef05c01-675b-70f5-4219-5fd41539dc25.png)
プログラムのパスでEdgeのexeをフルパスで指定します。
![2024030912.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/5aca10fc-bb19-0f69-8e04-875399525417.png)
許可するを選択して次に進みます。
![2024030913.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/7972f8d3-a001-7533-33c6-b6f09d32dbad.png)
これはすべて選択します。
![2024030914.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/76030dea-fa60-32f8-4b2b-2fd5248d8741.png)
送信規則の名前を設定します。今回は"Edge_Outbound"としました。
![2024030915.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/c5cf3a20-273d-0676-b375-f1ad5fd3ff09.png)
一覧に作成した送信規則があることを確認します。
![2024030916.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/082f7536-0ddb-157d-0a87-7165937f46ec.png)
Webブラウジングの動作を確認してみます。
EdgeはOutBoundを許可したのでQiitaに接続できるようになり、一方でFirefoxはそのような設定をしていない為、引き続きブロックされていることがわかります。
![2024030917.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/6ce320c4-eb1a-0c84-23ad-99af754b4d94.png)
ただ、Edgeの方ではQiita以外のサイトにもつなげてしまいます。今回は弊社のサイトにつないでみました。Edgeの通信をマルっと許可しているので、ここからさらにIPアドレスで許可範囲を絞る必要があります。
![2024030918.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/83e3130a-e723-a0f2-42ea-0efccc131853.png)
QiitaのIPアドレスを確認します。nslookupコマンドで確認してみます。
今回"176.32.74.107","13.112.52.134"及び"18.182.159.221"が対象となります。
```
C:\Users\ohtsu>nslookup qiita.com
サーバー:  UnKnown
Address:  192.168.59.251

権限のない回答:
名前:    qiita.com
Addresses:  2406:da14:add:901:f4de:8ec8:5065:e9d7
          2406:da14:add:900:c357:3c4b:3dd5:277f
          2406:da14:add:902:dd41:919c:4cfd:772e
          176.32.74.107
          13.112.52.134
          18.182.159.221
```
先ほど作成したOutBoundを右クリックしてプロパティを押下します。
![2024030919.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/2efd8138-9549-1e86-2abc-9dd4bd9b0960.png)
スコープタブのリモートIPアドレスにQiitaのIPアドレスを追加していきます。
![2024030920.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/5612817b-8a81-12fd-cdf8-9e35c410e269.png)
IPアドレスは以下のように登録します。入力したらOKを押下します。
![2024030921.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/98ff64bf-0753-5407-74d6-fcfb2181a7c7.png)
上記の要領でnslookupで出力されたIPアドレスを登録します。
登録出来たら適用を押下します。
![2024030922.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/914f9558-cfeb-118e-c5bb-160d1568e7cb.png)
右が先ほどアクセスできてしまった弊社のサイトになります。
QiitaのIPアドレスのみ許可しているので、アクセスが出来なくなっていることが確認できます。
一方でQiitaにはアクセスできていますね。
![2024030923.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/a157207d-58a2-8d20-cb97-b37ae656eaab.png)