【Windows 11対応】Windowsのファイアウォールで「ping」コマンドへの応答を許可するTech TIPS

pingを使うと、相手のコンピュータが稼働しているかどうかを確認できる。ただWindows OSはデフォルトではpingに応答しない。Windows Defenderファイアウォールの設定を変更することで、これを許可する方法を紹介する。

» 2022年03月02日 05時00分 公開

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Tech TIPS」のインデックス

連載目次

Windowsの設定を変えると、pingに応答するようになる! Windowsのファイアウォールで「ping」コマンドへの応答を許可する

対象OS:Windows 10/Windows 11


pingで相手が稼働しているかどうかを確認する

 TIPS「Windowsのpingコマンドでネットワークトラブルの原因を調査する」では、Windows OSに付属する「ping」コマンドの基本的な使い方について説明している。その中では、「pingを実行すると対象PCからpingの応答が返ってくるので、それを使って相手のPCが稼働しているかどうかを確認できる」と紹介した。システムの死活監視においては、pingは一番基本的なコマンドである。

 pingは、ネットワークプロトコルでいうと、TCP/IPの補助プロトコルである「ICMP(Internet Control Message Protocol)」の「エコー要求/エコー応答」メッセージを使って相手と通信している。だが現在のWindows OSでは、セキュリティなどの理由のため、デフォルトではこのパケットの受信を許可していない。pingでPCの存在が判明すると、次は脆弱(ぜいじゃく)性を狙う攻撃につながるなど、好ましくない使われ方がされる危険性があるためだ。

 そのため、インストールしたばかりのWindows PCに向けて「ping pc01」のようなコマンドを実行しても応答がないことも多い(Active Directoryドメイン環境などでは、管理者があらかじめ許可していることもあり、その場合は応答がある)。だが社内や家庭内など、限定された環境ならば管理のためにpingを許可しても問題ないだろう。

 本Tech TIPSでは、Windows 10/11を対象として、pingに応答するようにWindowsファイアウォールの設定を変更する方法を紹介する。

pingの受信を許可する

 pingコマンドに応答させるためには、Windowsファイアウォールの設定を変更して、「ICMPのエコー」プロトコルの受信を許可すればよい。以下、Windows 11での画面を例に、その手順を紹介する(特記しない限り、Windows 10と操作手順は共通)。

 まずは「Windowsセキュリティ」アプリを起動する。

  1. スタート]ボタンを押して[スタート]メニューを開く
  2. Windows 11の場合は、ここでメニュー右上の[すべてのアプリ]ボタンをクリック
  3. アプリ一覧で「W」の見出しを見つけるまでスクロール
  4. W」欄にある[Windowsセキュリティ]というアプリをクリックして起動
1.[スタート]ボタンをクリックして	[スタート]メニューを開く 2.(Windows 11のみ)ここにある	[すべてのアプリ]ボタンをクリック 3.スクロールして「W」という見出しを見つける 4.[Windowsセキュリティ]をクリック 「Windowsセキュリティ」アプリを起動する

 「Windowsセキュリティ」アプリの画面が表示されたら、「プロファイル」と呼ばれるネットワーク接続状況のうち、「アクティブ」(有効)になっているものを確認する。

  1. Windowsセキュリティ」アプリの左ペインで、[ファイアウォールとネットワーク保護]を選択
  2. ドメインネットワーク」「プライベートネットワーク」「パブリックネットワーク」という3種類のプロファイルがあることを確認
  3. (アクティブ)」が付いているプロファイルを確認

 ちなみに、「windowsdefender://Network」というコマンドラインを実行すると、以下の「ファイアウォールとネットワーク保護」という画面を直接呼び出せる。

起動した「Windowsセキュリティ」アプリ 1.[ファイアウォールとネットワーク保護]を選択 2.3つのプロファイルがあることを確認 3.「アクティブ」なプロファイルを確認 4.[詳細設定]をクリック 現在有効な「プロファイル」を確認する

 実際に適用されるファイアウォールの規則は、プロファイルによって異なる。「パブリック」は公共/公衆ネットワーク環境を想定していて、最も制限が厳しい状態に設定されている。「ドメイン」はActive Directoryドメインに参加している場合に適用されるプロファイルである。

 ネットワークインタフェースが複数あるシステムでは、2つ以上のプロファイルがアクティブになっていることがあるので、よく確認しておく。

 もしプロファイルが2つしか表示されていなかったり、「アクティブ」が見当たらなかったりする場合は、いずれかのプロファイルをクリックして開き、すぐに左ペインの[ファイアウォールとネットワーク保護]をクリックして、この画面に戻ってみよう。これで3つのプロファイルが表示されるはずである。どうしても表示されない場合は、無視して次のステップへ進んで構わない。

 アクティブなプロファイルを確認できたら、[詳細設定]リンクをクリックして、「セキュリティが強化されたWindows Defenderファイアウォール」を開く。その左ペインのツリーにある[受信の規則]をクリックして、受信に対するファイアウォール規則の一覧画面を表示させる。

起動した「セキュリティが強化されたWindows Defenderファイアウォール」 ここでも3つのプロファイルのうち、どれがアクティブか確認できる 「セキュリティが強化されたWindows Defenderファイアウォール」の画面

 真ん中のペインの「受信の規則」一覧から、以下の手順でpingを受け付けるための規則を見つける。

  1. グループ]列見出しをクリックして、この列の昇順または降順で一覧を並び替える
  2. スクロールして「ファイルとプリンターの共有」というグループを見つける
  3. 2」のグループ内で、「ファイルとプリンターの共有(エコー要求 - ICMPv4 受信)」「ファイルとプリンターの共有(エコー要求 - ICMPv6 受信)」という規則を見つける

 デフォルトでは以下のスクリーンショットのように、IPv4向けとIPv6向けの規則がそれぞれ2つずつ、計4つある。いずれも行頭にチェックマークがない無効状態のはずだ。

真ん中のペインに、ファイアウォールの受信規則一覧が表示される 1.[グループ]列見出しをクリックしてソート 2.「ファイルとプリンターの共有」グループを見つける 3.[ファイルとプリンターの共有(エコー要求 ? ICMPv<4または>受信)]という規則を見つける pingに応答するための規則の確認

 上述の規則の候補が見つかったら、以下の手順で絞り込んでから有効化する。

  1. IPv4でpingを受け付けるなら名前に「ICMPv4」を含む規則を、IPv6なら「ICMPv6」を含む方を対象とする
  2. 1」の規則のうち、調べておいたアクティブなプロファイルが[プロファイル]列に含まれている規則を特定して右クリック
  3. 表示されたメニューで[規則の有効化]をクリック

 規則を右クリックする前に、[Ctrl][Shift]キーを使って複数の規則を選択すると、同時にそれらを有効化できる。

1.「〜エコー要求〜」の規則のうち、IPv4でpingに応答させるなら「ICMPv4」、IPv6なら「ICMPv6」である規則が対象 2.「1」の規則のうち、[プロファイル]列にアクティブなプロファイルが含まれる規則を右クリック 3.[規則の有効化]をクリック pingに応答するための規則の有効化

 以上の手順を実行すると、同じサブネット内からのICMPのエコー要求の受信が許可され、直ちにpingに応答するようになるはずだ。実際に以下の手順で試してみよう。

  1. ファイアウォールの規則を有効化したPCと同じサブネットに接続されているWindows PCで、コマンドプロンプトあるいはPowerShell、Windowsターミナルを起動
  2. 規則を有効化したPCのIPアドレスに対し、「-t」オプション付きでpingコマンドを実行する。これで対象PCにpingが繰り返される

 ICMPを許可すると、途中からすぐに応答が返ってくるようになるはずだ。

1.ファイアウォールの設定を変更するPCと同じサブネットに接続されているWindows PCで、コマンドプロンプトを起動 2.設定を変更するPCのIPアドレスに対してpingを繰り返し実行 pingに無応答の状態 ファイアウォールの受信規則を有効にすると、すぐに応答が始まる pingへの応答例

 もしpingの応答がない場合は、前述のファイアウォール設定で、使用しているプロファイル名などを再確認すること。

パブリックプロファイルでpingを受け付けないようにする

 上の例では、「プライベート」と「パブリック」プロファイルに対するpingの応答を許可した。そのため、例えばノートPCを携帯電話回線や屋外の無線LANなどにつないで利用している場合でも、同じサブネット内の未知のノードからのpingに応答することになる可能性がある(実際には、こうしたネットワークでは隣接ノードとの通信を禁止していて、pingが届かないこともよくあるが)。

 このような状況を回避し、本当にプライベート(家庭内や社内のローカルLAN)からのpingだけを許可したければ、受信規則に含まれるプロファイルから「パブリック」を除外するか、受信規則を複製して、プライベートプロファイルのみを対象とする規則を作ればよい。

 プライベートプロファイルだけに限定する手順は以下の通りだ。

  1. 前述の手順で「セキュリティが強化されたWindows Defenderファイアウォール」を起動
  2. 左ペインのツリーから[受信の規則]を選択
  3. 先ほど有効化した「〜エコー要求〜」の規則を右クリックし、表示されたメニューで[プロパティ]を選択
  4. 表示されたプロパティダイアログで、[詳細設定]タブを選択
  5. プロファイル」欄で[プライベート]だけを「オン」にする
  6. OK]ボタンをクリック

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。