コンテンツへスキップ

Windows ファイアウォールがブロックしたポートの番号を確認する。

■ ファイアウォールのログファイルを確認したいとき。

■ 何番ポートを開放すればいいの?とか、ファイアウォールが原因なの?とかの調査方法。

Windows ファイアウォールがブロックしたポートの番号を確認する。

ファイアウォールをオフにすると正常に動作するので、ファイアウォールが通信をブロックしているのは確実なんだけど、何番をブロックしているのかわからない。

ファイアウォールがブロックしたポートの番号ってログとかで見れないのか?と思ったので調べてみました。

ファイアウォールのログ出力を有効にする。

ファイアウォールにもログ出力の機能があるのですが、デフォルトでは、オフになっています。

ファイアウォールのプロパティを開く

「セキュリティが強化されたWindows Defender ファイアウォール」を検索などで呼び出します。

図1: タスクバーの検索アイコンをクリックして「セキュリティが強化されたWindows Defender ファイアウォール」を呼び出すところ。
図1: タスクバーの検索アイコンをクリックして「セキュリティが強化されたWindows Defender ファイアウォール」を呼び出すところ。

図2: 検索結果に「セキュリティが強化されたWindows Defender ファイアウォール」が表示されたのでクリックする。
図2: 検索結果に「セキュリティが強化されたWindows Defender ファイアウォール」が表示されたのでクリックする。

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

図3: ファイアウォールの管理画面で「Windows Defender ファイアウォールのプロパティ」リンクをクリックする。
図3: ファイアウォールの管理画面で「Windows Defender ファイアウォールのプロパティ」リンクをクリックする。

ファイアウォールのプロパティ画面。

ネットワーク毎にタブが分かれており、各ネットワーク毎に設定を分けられるようです。

図4: ファイアウォールのプロパティ画面。ドメイン/プライベート/パブリックのタブごとに設定を分けられる。
図4: ファイアウォールのプロパティ画面。ドメイン/プライベート/パブリックのタブごとに設定を分けられる。

「パブリック プロファイル」を設定。

現在アクティブなのは「パブリック」なので、パブリックで設定を行います。

ネットワークの種類の確認方法

パブリック プロファイル タブをクリックして、ログのカスタマイズをクリック。

図5: パブリック プロファイル タブを開いて、ログの「カスタマイズ」ボタンをクリックする。
図5: パブリック プロファイル タブを開いて、ログの「カスタマイズ」ボタンをクリックする。

「破棄されたパケットをログに記録する」を「はい」に設定して、「OK」 をクリック。

これでログが出力されるようになります。

図6: ログ設定のカスタマイズ画面で「破棄されたパケットをログに記録する」を「はい」に変更する。
図6: ログ設定のカスタマイズ画面で「破棄されたパケットをログに記録する」を「はい」に変更する。

「名前」の欄でログファイルの出力先を確認しておきましょう。

(保存場所を指定できるので、変更したい場合は指定する。)

ログファイルの確認

ログファイルの場所を開きます。

図7: エクスプローラーでログファイルの保存先フォルダを開き、pfirewallファイルを確認する。
図7: エクスプローラーでログファイルの保存先フォルダを開き、pfirewallファイルを確認する。

ログファイルへのアクセス権を付与する。

早速ログの内容を確認したいところですが、ログファイルを開こうとしてもアクセス許可が無いので、開けません。

まだファイアウォールのログファイルへのアクセス権がない状態(のハズ)ですので、自分にログファイルへのアクセス権を付与します。

図8: メモ帳でpfirewall.logを開こうとしたら、アクセス許可がないというエラーが表示された。
図8: メモ帳でpfirewall.logを開こうとしたら、アクセス許可がないというエラーが表示された。

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

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

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

図10: プロパティのセキュリティタブから「詳細設定」をクリックする。
図10: プロパティのセキュリティタブから「詳細設定」をクリックする。

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

図11: セキュリティの詳細設定画面で「続行」をクリックして管理者権限で編集する。
図11: セキュリティの詳細設定画面で「続行」をクリックして管理者権限で編集する。

追加をクリック。

図12: アクセス許可エントリの一覧で「追加」ボタンをクリックする。
図12: アクセス許可エントリの一覧で「追加」ボタンをクリックする。

プリンシバルの選択 をクリック。

ユーザー名を入力してOK をクリック。

図13: 「プリンシパルの選択」でユーザー名を入力してOKをクリックする。
図13: 「プリンシパルの選択」でユーザー名を入力してOKをクリックする。

「名前の確認」ボタンを押すと、確認してくれるので入力ミスなど防げます。

フルコントロールにチェックしてフルコン付与しています。

実際は読み取りアクセスだけ十分かと思います。

図14: フルコントロールなど各権限にチェックを入れて付与する。
図14: フルコントロールなど各権限にチェックを入れて付与する。

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

図15: 新しいアクセス許可エントリが一覧に追加されたのを確認する。
図15: 新しいアクセス許可エントリが一覧に追加されたのを確認する。

画面右下の「OK 」をクリックして、操作を確定。

他の画面も閉じてOK です。

ログファイルが開けました。

図16: メモ帳でpfirewall.logがついに開けて、ログの中身が確認できた。
図16: メモ帳でpfirewall.logがついに開けて、ログの中身が確認できた。

ログ内容の確認。

何かファイアウォールにブロックさせてどんなログが出るか確認してみましょう。

PING で見てみよう

早速PING をブロックさせてログをみてみましょう。

PING はエコー要求の規則で受信許可してるので、無効にします。

これでPING はブロックされます。

図17: 受信の規則一覧から「ファイルとプリンターの共有(エコー要求 - ICMPv4 受信)」を選んで無効化する。
図17: 受信の規則一覧から「ファイルとプリンターの共有(エコー要求 – ICMPv4 受信)」を選んで無効化する。

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

図18: PowerShellでpingを打つと、要求がタイムアウトして100%ロストしている。
図18: PowerShellでpingを打つと、要求がタイムアウトして100%ロストしている。

ログに記録されている。

図19: ログファイルにICMPのDROP記録がちゃんと残っている。
図19: ログファイルにICMPのDROP記録がちゃんと残っている。

ログの内容について、Fields の値と照らし合わせてみましょう。

Fields
date2022-01-19
time 22:10:13
actionDROP
protocolICMP
src-ipfe80::84cc:786:cf9f:2742
dst-ipfe80::458b:47dc:e67c:f1c9
src-port
dst-port
size80
tcpflags
tcpsyn
tcpack
tcpwin
icmptype 128
icmpcode 0
info
path RECEIVE
pid 4

「dst-ip(宛先 IP)」が自分のIP ですね。

図20: ipconfig /allでホスト名やIPv4/IPv6アドレスを確認して、ログのFields欄と照らし合わせる。
図20: ipconfig /allでホスト名やIPv4/IPv6アドレスを確認して、ログのFields欄と照らし合わせる。

SSH で見てみよう。

OpenSSH を無効化。

図21: 受信の規則一覧で「OpenSSH SSH Server (sshd)」を選んで無効化する。
図21: 受信の規則一覧で「OpenSSH SSH Server (sshd)」を選んで無効化する。

今度は、notepad++ という、テキストエディタでログファイルを監視をしてみます。

Linux ではおなじみの「tail -f」が使えます。

「tail -f 」はファイルへの書き込みを監視して、書き込みがあったら表示を更新してくれる感じの機能です。

図22: notepad++でログファイルを右クリックし、「ファイル監視(tail -f)」を選択する。
図22: notepad++でログファイルを右クリックし、「ファイル監視(tail -f)」を選択する。

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

図23: PowerShellからsshで接続すると、ポート22でタイムアウトしてしまう。
図23: PowerShellからsshで接続すると、ポート22でタイムアウトしてしまう。

ちゃんと書き込みがありました。

この辺がそうだな。

ブロックしたポートは22です。

図24: notepad++でtail -f中のログにDPT=22のTCP DROPの記録が流れてくるのを確認。
図24: notepad++でtail -f中のログにDPT=22のTCP DROPの記録が流れてくるのを確認。

最後の数字はPID を示しています。

3384 はsshd (OpenSSH サーバー)なので、このログは「SSH」接続のログだったことが分かる。

図25: タスクマネージャーでPID 3384がsshd(OpenSSH SSH Server)だと確認できる。
図25: タスクマネージャーでPID 3384がsshd(OpenSSH SSH Server)だと確認できる。

ネットワークの種類確認

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

図26: 設定の「ネットワークとインターネット」画面で、イーサネットの「プロパティ」からネットワークの種類(パブリック ネットワーク)を確認する。
図26: 設定の「ネットワークとインターネット」画面で、イーサネットの「プロパティ」からネットワークの種類(パブリック ネットワーク)を確認する。

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

図27: イーサネットのプロパティ画面で、ネットワーク プロファイルの種類(パブリック/プライベート)を切り替えられる。
図27: イーサネットのプロパティ画面で、ネットワーク プロファイルの種類(パブリック/プライベート)を切り替えられる。

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」に出力されたログを確認します。

図28: Linuxのターミナルで「tail -f /var/log/messages」を実行して、firewalldのFINAL_REJECTログを確認しているところ。
図28: Linuxのターミナルで「tail -f /var/log/messages」を実行して、firewalldのFINAL_REJECTログを確認しているところ。

「DPT = ***** 」がブロックされたポートでしょうね。

以上です。

(Visited 7,237 times, 1 visits today)

「Windows ファイアウォールがブロックしたポートの番号を確認する。」への1件のフィードバック

  1. ピンバック: Windows ファイアウォールのポート開放(WindowsServer 編) - .zapping

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です