本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「New-NetFirewallRule」コマンドレットを解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は「Windows10」や「Windows 11」、Windows Serverに標準搭載されている「Windows Defenderファイアウォール」のポリシーを新規作成する「New-NetFirewallRule」コマンドレットです。
コンピュータのローカルアドレスやリモートコンピュータのアドレス、プロトコル、ポート番号といった要素を組み合わせてポリシーを作成し、コンピュータが送受信するパケットにポリシーに従ってフィルタリングする機能が「Windows Defenderファイアウォール」ですが、基本的なポリシーはWindowsのデフォルトで設定されています。
ほとんどの場合は、Windowsのデフォルトのポリシーで十分ですが、使用するアプリケーションや企業のセキュリティポリシーによってはデフォルトで用意されているポリシーでは十分でない場合もあります。
「New-NetFirewallRule」は、Windows Defenderファイアウォールのポリシーを新規作成するコマンドレットです。
なお、本コマンドレットは、従来コマンドプロンプトで使用していた「netsh」コマンドの「netsh advfirewall firewall add rule」オプション付き実行とほぼ同じものになります。
オプション | 意味 |
---|---|
-DisplayName | 作成したいポリシーの表示名を指定。必須 |
-Name | 作成したいポリシー名を指定する。省略可能 |
-Group | 作成したいポリシーグループを指定する。省略可能 |
-DisplayGroup | 作成したいポリシーグループの表示名を指定する。省略可能 |
-LocalAddress | 作成したいポリシーのローカルコンピュータアドレスを指定する。省略可能 |
-RemoteAddress | 作成したいポリシーのリモートコンピュータアドレスを指定する。省略可能 |
-Protocol | 作成したいポリシーのプロトコル(TCP/UDP/ICMPなど)を指定する。省略可能 |
-LocalPort | 作成したいポリシーのローカルコンピュータポート番号を指定する。省略可能 |
-RemotePort | 作成したいポリシーのリモートコンピュータポート番号を指定する。省略可能 |
-Direction | ポリシーの方向(Inbound/Outbound)を指定する。省略可能 |
-Action | ポリシーのアクション(Allow/Block)を指定する。省略可能 |
New-NetFirewallRuleコマンドレットを必須オプションである「-DisplayName」オプションを付けて実行すると、デフォルトのオプションが設定されたポリシーを新規作成できます(画面1)。なお、New-NetFirewallRuleコマンドレットは管理者権限で実行する必要があります。
New-NetFirewallRule -DisplayName TestPolicy
デフォルトのポリシーとはどのようなものなのでしょうか。設定内容を確認すると、以下のようなポリシーであることが確認できます。
オプション | 設定内容 |
---|---|
プロトコル | 任意のプロトコル |
ローカルポート番号 | 全てのポート |
リモートポート番号 | 全てのポート |
ローカルIPアドレス | 任意のIPアドレス |
リモート先IPアドレス | 任意のIPアドレス |
適用するプロファイル | 全てのプロファイル(Any) |
プログラム | 任意のプログラム |
通信方向 | 受信方向(Inbound) |
アクション | 許可(Allow) |
有効/無効 | 有効 |
いわゆる「受信方向で全ての通信を許可」というポリシーが「有効」の状態で作成されてしまいます。これはセキュリティホールになりかねない設定なので、デフォルトのポリシーの扱いには十分に注意してください。
以下のような内容のポリシーを作成する場合は、「-Protocol」オプションと「-LocalPort」オプションを使用します(画面2)。
オプション | 設定内容 |
---|---|
プロトコル | TCP |
ローカルポート番号 | 8080 |
リモートポート番号 | 全てのポート |
ローカルIPアドレス | 任意のIPアドレス |
リモートIPアドレス | 任意のIPアドレス |
適用するプロファイル | 全てのプロファイル(Any) |
プログラム | 任意のプログラム |
通信方向 | 受信方向(Inbound) |
アクション | 許可(Allow) |
有効/無効 | 有効 |
New-NetFirewallRule -DisplayName TestPolicy -Protocol TCP -LocalPort 8080
特定のコンピュータ(ここでは「192.168.10.200」のIPアドレスを持つコンピュータ)への通信をブロックする場合は、「送信方向」に「不許可」のポリシーを作成します(画面3)。
オプション | 設定内容 |
---|---|
プロトコル | 任意のプロトコル |
ローカルポート番号 | 全てのポート |
リモートポート番号 | 全てのポート |
ローカルIPアドレス | 任意のIPアドレス |
リモートIPアドレス | 192.168.10.200 |
適用するプロファイル | 全てのプロファイル(Any) |
プログラム | 任意のプログラム |
通信方向 | 送信方向(Outbound) |
アクション | 不許可(Block) |
有効/無効 | 有効 |
New-NetFirewallRule -DisplayName BlockPolicy -RemoteAddress 192.168.10.200 -Direction Outbound -Action Block
ブロックポリシーは優先されるポリシーとなるため、アドレス設定を間違えて全ての宛先にしてしまうと自身が送信元となる通信を全てブロックしてしまいます。設定の際は十分注意してください。
Microsoft MVP for Cloud and Datacenter Management(2012-2023)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.