今更ながらWindows Firewall

# Windows10でFirewallを確認
今更ながら、Windows Defenderファイアウォールの機能（一部だが）を確認してみた。

# 何を、どうやって、、
特定ポートがブロック（または許可）状況の動作を知るため、
- msys2上でのnc（netcat）
- Wireshark
- ブラウザなど
を使って、Windows Defenderファイアウォールの動作を確認。

# 登録
## nc実行（新規プログラム登録）
msys2上でncを実行すると
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/b4c5d8c1-136e-6232-eedc-187218d9152a.png", width=90%>
と表示される。ここで「キャンセル」をクリックすると、ファイアウォール一覧・受信の規則では「ブロック」として登録される。
![nc登録キャンセル.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/1f7f67a2-3a9d-e83e-3288-e76b52da9c9f.png)
「アクセスを許可する」をクリックすれば、「許可」として登録される。
![nc登録許可.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/3f3d13d2-55c0-739d-3e92-3cdb70652db4.png)
初期状態では、ncの全ポートに対して、許可またはブロックとなる。特定ポートのみに適用するには、プロパティなどからポート番号を指定する。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/84ea1733-42d2-fb04-3aa7-e2aac5eec762.png", width=60%>
ちなみに、右クリックなどで規則は削除できる。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/d715b48b-83e9-4cc6-8134-d7cd44043b06.png", width=60%>

## 個別登録
新しい規則をクリックして登録する。
![新しい規則.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/7dbfc3fd-f797-0cc2-294d-84cceab0c503.png)
ここではポートの規則を選択。
![規則ポート.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/629bfcd7-055a-15d9-7ac9-ae1458bfe881.png)
![ポート8756.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/154baec3-e7d3-258f-72cd-7c8d2020a336.png)
![8756ブロック.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/93518ac7-c112-d7b9-f549-ad0a91479a3d.png)
![全ケースでブロック.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/8b38727a-051b-10e8-b57b-09c274f92dde.png)
登録
![8756登録された.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/7e798e58-c060-cc65-73d1-f16270de2363.png)

# 検証
## 受信
### ncのTCP受信をブロック
![ncTCPブロック.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/291cea22-f863-0f45-9d88-7bef6136ebca.png)
ncで特定ポートをListenする。リソースモニタで、ファイアウォールの状態が不許可となっていることがわかる。
![リソースモニタでブロックのコピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/cd1b783b-8622-b49f-da3e-63599dedff89.png)
このとき、別マシンから、ncコマンドでアクセス（echo test | nc 192.168.250.2 8756）したときのWiresharkデータは下記のとおり。
![Wiresharkデータ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/8b932cee-eff2-1f16-b4ac-8b3c5eaaec39.png)
TCP SYNに対する応答（SYN ACK）が存在しない。ちなみに、ポートをListenしていない時のWiresharkデータも同じである。

### ncのTCP受信を許可
同じように、nc特定ポートをリッスンする。
![リソースモニター(8756見える)のコピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/c5bdf823-907c-57fe-3e0a-735f81763f72.png)
このとき、別マシンから、ncコマンドでアクセスは、当然成功する。Wiresharkデータは下記のとおり。
![WiresharkOK.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/44978086-1ed2-8fcd-0b6e-3dce18b06d8e.png)

## 送信
ポート番号9804の送信をブロックする。
![nc送信プロック（一覧）.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/0be42a34-4d31-b2b6-ba34-15e6651e4648.png)
このとき、ncコマンドで、9804ポート番号を指定してアクセスしようとすると、コアをはくようだ。また、この時のWiresharkデータは存在しない。
![nc送信コアダンプのコピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/a2c9cfc2-92bf-c934-0b30-29cea9a764cd.png)
次にポート番号80の送信をブロックする。
![Block80.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/8b0e6302-ed90-edc5-9c61-165bed118e67.png)
ブラウザでは下記表示となる。
![httpブロック.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/327e93ac-78ce-a142-ae28-7edd52704cf7.png)

EOF