New-NetFirewallRule の使い方を徹底解説|PowerShellでファイアウォールルールを管理

Windowsのセキュリティを強化するためには、適切なファイアウォール設定が欠かせません。特に管理者やIT担当者にとって、PowerShellを活用して効率的にファイアウォールルールを設定することは重要なスキルです。

本記事では、「New-NetFirewallRule」 コマンドを用いて、新しいファイアウォールルールを作成する方法について詳しく解説します。具体的な使用例を交えながら、目的別に適切な設定ができるように説明していきます。

PowerShellを活用することで、手動での設定よりも素早く、柔軟にルールの管理が可能 になります。ぜひこの記事を参考にして、実践的なスキルを身につけてください。

New-NetFirewallRule コマンドとは?

「New-NetFirewallRule」は、Windows Defender ファイアウォールの新しいルールを作成するためのPowerShellコマンドです。このコマンドを使用すると、特定のポートやアプリケーションに対する通信許可・拒否のルール を手軽に追加できます。

従来の「netsh」コマンドを使用する方法よりも柔軟性が高く、スクリプト化しやすいため、多くの管理者がPowerShellの「New-NetFirewallRule」を活用しています。


基本的な使い方と構文

まず、「New-NetFirewallRule」の基本構文を確認しましょう。

New-NetFirewallRule -DisplayName "RuleName" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 80

主なパラメータの解説

パラメータ説明
-DisplayNameルールの名前(管理しやすい名前を指定)
-DirectionInbound(受信)または Outbound(送信)
-ActionAllow(許可)または Block(拒否)
-ProtocolTCPUDP などの通信プロトコル
-LocalPort許可またはブロックするポート番号

具体的な使用例

① 特定のポートを許可するルールの作成

Webサーバー(IISやApacheなど)を運用する場合、HTTP(80番)やHTTPS(443番)のポートを開放する必要があります。

New-NetFirewallRule -DisplayName "Allow_HTTP" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 80

このコマンドを実行すると、TCPの80番ポートへの受信を許可するファイアウォールルールが作成されます。


② アプリケーション単位で通信を許可する

特定のアプリケーションに対して通信を許可する場合、-Program パラメータを使用します。

例として、特定のアプリケーション(C:\Path\To\App.exe)に対して通信を許可するルール を作成してみましょう。

New-NetFirewallRule -DisplayName "Allow_MyApp" -Direction Inbound -Action Allow -Program "C:\Path\To\App.exe"

これにより、指定したアプリケーションの通信が許可されます。


③ 特定のIPアドレスだけ許可するルール

特定のIPアドレス(例:192.168.1.100)からのアクセスのみ許可する場合は、以下のように記述します。

New-NetFirewallRule -DisplayName "Allow_Specific_IP" -Direction Inbound -Action Allow -RemoteAddress 192.168.1.100 -Protocol TCP -LocalPort 22

このルールでは、SSH(ポート22)へのアクセスを 192.168.1.100 からのみ許可 します。


応用編:高度なファイアウォールルールの設定

① 一括で複数のポートを許可する

複数のポート(例:80, 443)を一括で許可する場合、-LocalPort にカンマ区切りで複数指定できます。

New-NetFirewallRule -DisplayName "Allow_Web_Traffic" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 80,443

これは、HTTPとHTTPSの両方のポートを許可 するルールになります。


② 特定のポートをブロックする

特定のポート(例:3389、リモートデスクトップのRDPポート)をブロックしたい場合は、-Action Block を指定します。

New-NetFirewallRule -DisplayName "Block_RDP" -Direction Inbound -Action Block -Protocol TCP -LocalPort 3389

これにより、リモートデスクトップ(RDP)への接続をブロック できます。


③ グループポリシーで適用されているルールを上書きする

組織のポリシーによって適用されているルールを変更する場合、-PolicyStore ActiveStore を指定することで、新しいルールを適用できます。

New-NetFirewallRule -DisplayName "OverridePolicy" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 8080 -PolicyStore ActiveStore

この設定を行うことで、既存のグループポリシーによる設定を一時的に上書きすることが可能です。


作成したルールの確認・削除

作成したルールの一覧を表示する

追加したルールを確認するには、以下のコマンドを使用します。

Get-NetFirewallRule | Select-Object DisplayName, Direction, Action, Enabled

作成したルールを削除する

不要になったルールを削除する場合は、「Remove-NetFirewallRule」コマンドを使用します。

Remove-NetFirewallRule -DisplayName "Allow_HTTP"

このコマンドを実行すると、「Allow_HTTP」という名前のファイアウォールルールが削除 されます。


まとめ

「New-NetFirewallRule」を使用すると、Windows Defender ファイアウォールの設定をPowerShellで簡単に管理できます。

  • 特定のポートを許可・ブロックできる
  • アプリケーション単位で通信制御が可能
  • 特定のIPアドレスのみ許可する設定も可能
  • 一括で複数のルールを適用できる
  • 作成したルールの確認や削除も容易

ファイアウォールの適切な設定は、セキュリティ強化の基本です。PowerShellを活用して、効率的かつ正確にファイアウォールを管理 しましょう。

タイトルとURLをコピーしました