Windowsファイアウォールの無効化:包括的なガイド

「Windowsファイアウォールを無効化またはオフにする理由は何ですか?」

Windowsのファイアウォールを無効にする理由はさまざまです。もちろん、すべての理由が正当なものとは言えませんが、合理的な理由も存在します。

この記事では、Windowsファイアウォールを無効にする方法について学びます。単一マシンの設定、ホームネットワーク、または企業環境のいずれにおいても、この記事は役立ちます。

Windowsのソフトウェアファイアウォールをあらゆる方法で無効にする方法を学びます!

  • Windowsファイアウォールの管理コンソールを使用する
  • コマンドライン(cmd.exe)
  • PowerShell
  • グループポリシー
  • Azure仮想マシンの場合、Azureカスタムスクリプト拡張機能も使用できます。

それでは、始めましょう!

前提条件

この記事はハウツー記事なので、手順に従うためにはいくつかの要件があります。いくつかの例はドメイン環境と非ドメイン環境を対象としています。

非ドメイン環境の場合

  • Windows 10を実行している1台以上のコンピュータが必要です。ここでの例は1台のコンピュータで実行することもできますが、一部の手順はリモート操作に特化しています。
  • また、それらのWindows 10コンピュータには管理者権限が必要です。

ドメイン環境の場合

  • A Windows 2019 server that is also a domain controller. A Windows 2016 server should also work.
  • 同じネットワークに接続され、ドメインに参加している1台以上のWindows 10コンピュータが必要です。

GUIを使用する

おそらく、ファイアウォールを無効にする最も簡単な方法は、Windowsに組み込まれているGUIツールを使用することです。ホームユーザーにとっては、GUIを使用してWindowsファイアウォールをオフにするのが最も簡単な方法でしょう。

Windows Securityアプリを使用する

管理する最初のGUIツールはWindows Securityアプリです。Windows SecurityアプリはWindows 10のバージョン1703以降で利用可能です。

  1. Windows Securityアプリを起動するには、[スタート]ボタンをクリックしてからWindows Securityと入力し、検索結果に表示されたWindows Securityアプリをクリックして開くをクリックします。
Launching the Windows Security App in Windows 10

2. Windows Securityアプリのホーム画面にはさまざまなメニューアイテムが表示されます。ファイアウォールとネットワークの保護を探し、クリックして開きます。

The Windows Security App home

3. ファイアウォールとネットワークの保護ページには、さまざまなネットワークプロファイルが表示されます。これらのネットワークプロファイルには、ドメインネットワークプライベートネットワーク、およびパブリックネットワークがあります。これらのネットワーク接続場所ごとにファイアウォールをオフにすることができます。この例では、プライベートネットワークプロファイルを選択する必要があります。

List of Network Profiles in the Windows Security app

4. この例では、プライベートネットワークプロファイルが選択されています。プライベートネットワークの設定に入ったら、Windows Defenderファイアウォールをオフにするためにスイッチをクリックします。

Disable Windows Firewall for the network profile

必要に応じて、他のネットワークプロファイルに対しても同じ手順を繰り返します。

Windows Defenderファイアウォールコントロールパネルを使用してWindowsファイアウォールを無効にする

別のGUIツールは、Windows Defenderファイアウォールコントロールパネルです。Windowsセキュリティアプリとは異なり、Windows Defenderファイアウォールコントロールパネルは、Windows 10アプリのモダンなインターフェースではなく、クラシックなコントロールパネルアイテムの外観を提供しています。

以下に、Windows Defenderファイアウォールコントロールパネルを起動するためのいくつかの方法があります。

方法1:Control Panel —> System and Security —> Windows Defender Firewallに移動します。

Open Windows Defender Firewall from Control Panel

方法2:スタートメニューを開き、「windows defender firewall」と入力します。 Windows Defenderファイアウォールのリンクをクリックします。

Open Windows Defender Firewall the Start Menu Search

方法3:実行ダイアログボックスを開き、control firewall.cplと入力してOKをクリックします。

Open Windows Defender Firewall the Run Dialog

Windows Defenderファイアウォールコントロールパネルでは、おなじみのネットワークプロファイルのリストが表示されます。 ドメインネットワーク、プライベートネットワーク、およびゲストまたはパブリックネットワーク。左側にあるWindows Defenderのオンまたはオフのリンクをクリックします。

The network profiles list in Windows Defender Firewall

カスタマイズ設定ページでは、各ネットワークプロファイルに対してWindowsファイアウォールを無効にするオプションがあります。以下の例では、Windowsファイアウォールはすべてのネットワークプロファイルでオフになっています。

Disable Windows Firewall on each network profile

コマンドラインの使用

おそらく既にご存知のように、WindowsのGUI操作のほとんど、もしくはすべてには、コマンドラインの対応があります。コマンドラインを使用すると、GUIオプションを使用する場合に比べて、場所を移動する手間が省けることがあります。

さらに、コマンドラインオプションを使用すると、タスクをスクリプト化または自動化することもできます。

NETSHコマンドを使用してWindowsファイアウォールを無効にする

古いですが便利なユーティリティであるnetshは、コンピューターのネットワーク構成を管理するために使用できます。この場合は、Windowsファイアウォールを無効にするために使用します。

netsh advfirewall setコマンドを使用すると、各場所またはすべてのネットワークプロファイルでWindowsファイアウォールを個別に無効にできます。

  • netsh advfirewall set currentprofile state off – このコマンドは、アクティブまたは接続されている現在のネットワークプロファイルのファイアウォールを無効にします。たとえば、現在アクティブなネットワークプロファイルがドメインネットワークである場合、このコマンドはそのネットワークプロファイルのファイアウォールを無効にします。
  • netsh advfirewall set domainprofile state off – ドメインネットワークプロファイルのみで無効にします。
  • netsh advfirewall set privateprofile state off – プライベートネットワークプロファイルのみで無効にします。
  • netsh advfirewall set publicprofile state off – このコマンドは、パブリックネットワークプロファイルのみで無効にします。
  • netsh advfirewall set allprofiles state off – このコマンドは、すべてのネットワークプロファイルで一度に無効にします。

以下のデモンストレーションでは、上記の各コマンドを実行しています。

Disable Windows Firewall using netsh

Netshコマンドの構文、コンテキスト、および書式について詳しく学ぶ

Set-NetFirewallProfilePowerShell Cmdletを使用する

Windows 10およびWindows Server 2012以降には、NetSecurity PowerShellモジュールが組み込まれています。このNetSecurity PowerShellモジュールには、ネットワークおよびネットワークセキュリティの設定に関連するコマンドレットが含まれています。そのうちの1つがSet-NetFirewallProfileで、これを使用してWindowsファイアウォールを無効にすることができます。

Set-NetFirewallProfileの構文は以下の通りです。

# 各指定されたネットワークプロファイルのWindowsファイアウォールを無効にする
Set-NetFirewallProfile -Profile <PROFILE NAME> -Enabled False

# すべてのネットワークプロファイルのWindowsファイアウォールを無効にする
Set-NetFirewallProfile -All -Enabled False

以下のコマンドは、PublicPrivate、およびDomainネットワークプロファイルでファイアウォールを無効にします。

Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled False

以下のデモンストレーションは、上記のコマンドを使用してWindowsファイアウォールを無効にするSet-NetFirewallProfileの動作を示しています。

Disable Windows Firewall on selected network profiles

プロファイル名を指定せずに、-Allパラメータースイッチを使用してすべてのネットワークプロファイルでWindowsファイアウォールを無効にする方法を以下の例に示します。

Disable Windows Firewall on all network profiles

PowerShellを使用してリモートでWindowsファイアウォールを無効にする方法

多数のコンピューターでファイアウォールを無効にする必要がある場合、各コンピューターに手動でログインしてコマンドを実行するのは非効率です。特にネットワーク環境では、PowerShellを使用してリモートで無効にすることができます。

注意:この手順では、対象のコンピュータでWinRMがすでに有効になっている必要があります。ほとんどの場合、WinRMはドメインに参加したコンピュータに対してリモート管理の目的ですでに設定されています。

詳細については、Windowsリモートシェルの有効化方法を参照してください。

1つずつWindowsファイアウォールを無効にする場合は、Enter-PsSessionコマンドレットを使用してリモートコンピュータにコマンドを発行することができます。

以下の例では、コマンドはdcという名前のサーバーから発行され、リモートコンピュータの名前はdesktop1です。使用されるコマンドは以下に示されています。

Enter-PsSession -ComputerName desktop1
Set-NetFirewallProfile -All -Enabled False

上記のコードをPowerShellで実行すると、以下のデモと同様の出力が得られます。

Disable Windows Firewall remotely using PowerShell (Enter-PsSession)

上記の手順は、数台のリモートコンピュータで作業している場合に適しています。しかし、無効にする必要があるコンピュータが大量にある場合は、スクリプトに適したアプローチが必要です。その場合は、Invoke-Commandコマンドレットを使用できます。

$computers = @('desktop1')
$computers | ForEach-Object {
	Invoke-Command -ComputerName $_ {
		Set-NetFirewallProfile -All -Enabled False
	}
}

上記のコードからわかるように、リモートコンピュータの名前は$computers変数に配列として格納されています。それから、PowerShellは各リモートコンピュータをループしてInvoke-Commandコマンドレットを実行し、Set-NetFirewallProfile -All -Enabled Falseコマンドを発行します。期待する結果については、以下のデモを参照してください。

Disable Windows Firewall remotely using PowerShell (Invoke-Command)

グループポリシーの使用

GPOを展開することで、システム管理者はドメイン内の選択されたコンピュータまたはすべてのコンピュータのWindowsファイアウォールをオフにすることができます。展開後、Windowsファイアウォールの無効化は、ポリシーによって自動化され、適用範囲内のすべてのコンピュータに対して強制されます。

GPOの作成

GPOを作成するには、サーバー上でグループポリシー管理コンソールを起動する必要があります。これを行うには、実行ダイアログでgpmc.mscコマンドを実行します。

gpmc.msc command in the Run dialog

グループポリシー管理コンソールで、フォレストを展開し、GPOを作成するドメインを選択します。以下のイメージでは、GPOがxyz.intドメインに作成されています。ドメインを右クリックし、「このドメインでGPOを作成し、ここにリンクする…」をクリックします。

Create a GPO in this domain, and Link it here…

新しいGPOダイアログボックスが表示されます。 名前ボックスにWindowsファイアウォールを無効にすると入力し、OKボタンをクリックします。

Enter the name of the new GPO

次に、新しいGPOを右クリックし、編集をクリックします。GPOはグループポリシー管理エディタで開きます。その後、これらのフォルダを展開しますコンピューターの構成 —> ポリシー —> 管理用テンプレート —> ネットワーク —> ネットワーク接続 —> Windows Defender —> ファイアウォール —> ドメインプロファイル。

右ペインの設定リストで、Windows Defenderファイアウォール: すべてのネットワーク接続を保護するをダブルクリックしてプロパティを開きます。

Group Policy Management Editor

設定プロパティが開いたら、値を無効に変更し、OKをクリックします。

Set Windows Firewall setting to Disabled

標準プロファイル設定に同じオプションを繰り返して適用します。それから、グループポリシー管理エディタウィンドウを閉じることができます。

全ドメインコンピュータにGPOを展開する

GPOを作成したら、ドメインコンピュータにGPOを展開する必要があります。

GPOを適用するには、グループポリシー管理Windowsファイアウォールの無効化 GPOを選択します。次に、スコープタブで、セキュリティフィルタリングセクションの追加ボタンをクリックします。

Add Security Filtering

ユーザー、コンピュータ、またはグループの選択ダイアログボックスで、ドメインコンピュータを検索し、OKをクリックします。これにより、ドメインコンピュータグループのメンバーであるすべてのコンピュータにGPOが適用されます。

Search and choose Domain Computers

以上です!次回のクライアントコンピュータのポリシーアップデート時に、ファイアウォールが無効になります。

GPOが作成および展開されたので、ポリシーアップデートを強制することで、GPOが機能しているかどうかをテストできます。クライアントコンピュータでgpupdate /forceを実行してポリシーアップデートをテストします。

Force update the policy

上記の結果からわかるように、ポリシーがクライアントコンピュータに適用されるとすぐに、Windowsファイアウォールの無効化設定が適用されます。また、システム管理者によって設定が管理されているという情報ボックスも表示されます。

Information box

注意: 通常のユーザーとコンピューターのグループポリシーの自動更新間隔は、90分です。さらに、コンピューターの起動時やユーザーのログイン時にもグループポリシーが更新されます。

Azure仮想マシンでWindowsファイアウォールを無効にするためにカスタムスクリプト拡張機能を使用する

Azure仮想マシンにアクセスできなくなった場合、Windowsファイアウォールがトラフィック(RDPを含む)をブロックしている可能性があります。Windowsファイアウォールに変更を加え、自分自身をロックアウトしてしまったかもしれません!

この記事で以前に説明された方法をすべて試してもうまくいかない場合でも、まだ希望はあります。Azure仮想マシンのゲストOS内でWindowsファイアウォールを無効にするには、Azureカスタムスクリプト拡張機能を利用します。

主な手順は次のとおりです:

  • Windowsファイアウォールを無効にするためのコマンドが含まれたPowerShellスクリプト(*.PS1)を作成します。
  • Azureポータルを使用して、Azure仮想マシンにカスタムスクリプト拡張機能をインストールします。
    • PowerShellスクリプトをAzure Storageにアップロードします。
    • スクリプトはAzure仮想マシンのゲストOSで自動的に1回だけ実行されます。

この例では、テストVMの名前はdevmachine1で、Windowsファイアウォールは有効な状態です。

注意:進める前に、アカウントに適切なAzure RBACロールがあることを確認してください。

Disable-Windows-Firewall.ps1スクリプトの作成

前のセクションで、Windowsファイアウォールを無効にするための利用可能なコマンドを学びました。この例では、netshユーティリティを使用します。

お好きなコードエディタまたはテキストエディタで、名前をDisable-Windows-Firewall.ps1とした新しいファイルを作成します。スクリプトを編集し、次のコード行を追加します:netsh advfirewall set allprofiles state off。編集が完了したら、スクリプトを保存します。以下はPowerShellで簡単に行う方法です。

'netsh advfirewall set allprofiles state off' | Out-File .\\Disable-Windows-Firewall.ps1

カスタムスクリプト拡張機能のインストールとPowerShellスクリプトのアップロード

スクリプトの準備ができたので、次のステップはカスタムスクリプト拡張機能をインストールし、スクリプトをAzure Storageの場所にアップロードすることです。そして、拡張機能がインストールされると、スクリプトは自動的にAzure VMに対して実行されます。

  • まず、Azureポータルにログインし、Azure VMリソースを見つけて開きます。この例では、Azure VMの名前はdevmachine1です。次に、拡張機能ブレードに移動し、追加ボタンをクリックします。
  • 新しいリソースページで、カスタム スクリプト拡張を見つけてクリックします。次に、作成をクリックします。拡張機能のインストールページで、スクリプト ファイル (必須) ボックスの隣にある参照ボタンをクリックします。
  • リストからストレージ アカウントを選択します。この例では、ストレージ アカウントの名前はstoragexyz01です。cont1という名前のコンテナが表示されますので、スクリプト ファイルをアップロードするコンテナをクリックします。

注意: まだ Azure ストレージ アカウントやコンテナをお持ちでない場合は、Azure ストレージ アカウントの作成を参照して作成手順を確認してください。

  • コンテナを選択したら、アップロードをクリックし、コンピュータ上に作成したdisable-windows-firewall.ps1 ファイルを参照します。ファイルを選択したら、アップロードボタンをクリックします。
  • これで、コンテナ内にdisable-windows-firewall.ps1ファイルが表示されるはずです。リストからdisable-windows-firewall.ps1をクリックし、選択をクリックします。これで、拡張機能のインストールページに戻り、最終的にOKをクリックして拡張機能のインストールを開始します。

この時点で、拡張機能の展開を待つだけで、アップロードしたスクリプトも自動的に実行されます。全体のプロセスを確認するには、以下のデモを参照してください。

Disable Windows Firewall in Azure VM using the Custom Script Extension

サマリー

この記事では、Windowsの組み込みのGUIツールを使用してWindowsファイアウォールを無効にする方法を学びました。また、netshやPowerShellを使用してローカルまたはリモートでWindowsファイアウォールを無効にする方法も学びました。

さらに、ドメインコンピューターのWindowsファイアウォールを無効にするためのグループポリシーオブジェクトの作成と展開方法も学びました。最後に、Azure VMのゲストOSでWindowsファイアウォールを無効にするためにAzureカスタムスクリプト拡張機能を使用する方法も学びました。

Windowsファイアウォールを無効にするためのさまざまな方法があります。この記事ではいくつかの方法を紹介しましたが、PsExecを使用してリモートで無効にするなど、自分で試してみることもできます。

さらなる参考資料

Source:
https://adamtheautomator.com/disable-windows-firewall/