■ ファイアウォールのログファイルを確認したいとき。
■ 何番ポートを開放すればいいの?とか、ファイアウォールが原因なの?とかの調査方法。
Windows ファイアウォールがブロックしたポートの番号を確認する。
ファイアウォールをオフにすると正常に動作するので、ファイアウォールが通信をブロックしているのは確実なんだけど、何番をブロックしているのかわからない。
ファイアウォールがブロックしたポートの番号ってログとかで見れないのか?と思ったので調べてみました。
ファイアウォールのログ出力を有効にする。
ファイアウォールにもログ出力の機能があるのですが、デフォルトでは、オフになっています。
ファイアウォールのプロパティを開く
「セキュリティが強化されたWindows Defender ファイアウォール」を検索などで呼び出します。


「Windows Defender ファイヤーウォール プロパティ」をクリック。

ファイアウォールのプロパティ画面。
ネットワーク毎にタブが分かれており、各ネットワーク毎に設定を分けられるようです。

「パブリック プロファイル」を設定。
現在アクティブなのは「パブリック」なので、パブリックで設定を行います。
パブリック プロファイル タブをクリックして、ログのカスタマイズをクリック。

「破棄されたパケットをログに記録する」を「はい」に設定して、「OK」 をクリック。
これでログが出力されるようになります。

「名前」の欄でログファイルの出力先を確認しておきましょう。
(保存場所を指定できるので、変更したい場合は指定する。)
ログファイルの確認
ログファイルの場所を開きます。

ログファイルへのアクセス権を付与する。
早速ログの内容を確認したいところですが、ログファイルを開こうとしてもアクセス許可が無いので、開けません。
まだファイアウォールのログファイルへのアクセス権がない状態(のハズ)ですので、自分にログファイルへのアクセス権を付与します。

ログファイル「pfirewall」を右クリックして、プロパティを開く。

セキュリティタブの詳細設定をクリック。

続行をポチっとしてから、フルコントロールを自分に付与します。(特にフルコンである必要はないです。)

追加をクリック。

プリンシバルの選択 をクリック。
ユーザー名を入力してOK をクリック。

「名前の確認」ボタンを押すと、確認してくれるので入力ミスなど防げます。
フルコントロールにチェックしてフルコン付与しています。
実際は読み取りアクセスだけ十分かと思います。

こんな感じで追加されていればOKです。

画面右下の「OK 」をクリックして、操作を確定。
他の画面も閉じてOK です。
ログファイルが開けました。

ログ内容の確認。
何かファイアウォールにブロックさせてどんなログが出るか確認してみましょう。
PING で見てみよう
早速PING をブロックさせてログをみてみましょう。
PING はエコー要求の規則で受信許可してるので、無効にします。
これでPING はブロックされます。

PING するも、ファイアウォールにブロックされてロストしています。

ログに記録されている。

ログの内容について、Fields の値と照らし合わせてみましょう。
Fields | 値 |
---|---|
date | 2022-01-19 |
time | 22:10:13 |
action | DROP |
protocol | ICMP |
src-ip | fe80::84cc:786:cf9f:2742 |
dst-ip | fe80::458b:47dc:e67c:f1c9 |
src-port | – |
dst-port | – |
size | 80 |
tcpflags | – |
tcpsyn | – |
tcpack | – |
tcpwin | – |
icmptype | 128 |
icmpcode | 0 |
info | – |
path | RECEIVE |
pid | 4 |
「dst-ip(宛先 IP)」が自分のIP ですね。

SSH で見てみよう。
OpenSSH を無効化。

今度は、notepad++ という、テキストエディタでログファイルを監視をしてみます。
Linux ではおなじみの「tail -f」が使えます。
「tail -f 」はファイルへの書き込みを監視して、書き込みがあったら表示を更新してくれる感じの機能です。

22 ポートで接続できなかった旨のエラー。

ちゃんと書き込みがありました。
この辺がそうだな。
ブロックしたポートは22です。

最後の数字はPID を示しています。
3384 はsshd (OpenSSH サーバー)なので、このログは「SSH」接続のログだったことが分かる。

ネットワークの種類確認
設定>ネットワークとインターネットをクリックすれば、
プロパティのところでアクティブなネットワークの種類が確認できます。

プロパティをクリックして開けば、プロファイルの種類を変更する事もできます。

Linux ファイアウォールがブロックしたポートの番号を確認する。
Linux の場合は「firewalld」のログを採取する。
linux も同じような設定をして、ブロックされた時のログを確認します。
下記のコマンドでログを取得する対象を設定します。
firewall-cmd --set-log-denied=?
********************************************
choose from 'all','unicast','broadcast','multicast','off'
********************************************
denied=? には、いずれかの値を指定。
- all
- unicast
- broadcast
- multicast
- off(デフォルト)
「/var/log/messages」に出力されたログを確認します。

「DPT = ***** 」がブロックされたポートでしょうね。
以上です。
ピンバック: Windows ファイアウォールのポート開放(WindowsServer 編) - .zapping