Windowsファイアウォールの実務設定ガイド|GPOで一括管理する方法と現場でよくある設定ミス

インフラセキュリティ基礎

ファイアウォールを無効にすれば確かに通信の問題は解決します。
しかしその瞬間から、端末は外部からの不正な接続を受け入れる状態になります。

ネットワーク機器のファイアウォールで守られているから大丈夫と思いがちですが、境界防御だけでは侵害後の横展開を防げません。

Windowsファイアウォールはエンドポイント側の最後の砦です。
本記事では設定の確認方法からGPOによる一括管理、現場でよくある設定ミスまで解説します。

Windows Defenderのウイルス対策設定については「Windows Defender設定の実務ガイド|現場で使える推奨設定とGPO一括管理の方法」も参照してください。

Windowsファイアウォールとは

OSに標準搭載されたパケットフィルタリング機能

Windowsファイアウォールとは、Windowsに標準搭載されたホストベースのファイアウォール機能です。ネットワークからの受信通信・外部への送信通信を規則(ルール)に基づいてフィルタリングします。

Windowsファイアウォール(Windows Defender ファイアウォール)
Windowsに標準搭載されたホストベースのパケットフィルタリング機能。受信・送信のトラフィックをポート番号・プロトコル・アプリケーション単位で制御できる。グループポリシー(GPO)での一括管理にも対応している。

ホストベースのファイアウォール
個々の端末(ホスト)上で動作するファイアウォール。ネットワーク機器のファイアウォールとは異なり、端末に届いたトラフィックを端末側でフィルタリングする。ネットワーク機器のファイアウォールを通過した通信でも、ホストベースのファイアウォールでブロックできる。

ネットワーク機器のファイアウォールは境界での防御ですが、一度ネットワーク内に侵入した攻撃者の横展開には効果がありません。Windowsファイアウォールを有効にしておくことで、侵害された端末から別の端末への不正接続を防ぐ多層防御が実現できます。

ドメイン・プライベート・パブリック、3つのネットワークプロファイルの違い

Windowsファイアウォールには3つのネットワークプロファイルがあり、接続しているネットワークの種類によって自動的に切り替わります。

プロファイル 適用場面 セキュリティレベル
ドメイン ドメインコントローラーに接続できるネットワーク 中(ドメインポリシーで管理)
プライベート 自宅・信頼できるネットワーク
パブリック 公共の場・不特定のネットワーク 高(最も厳しい制限)

ドメイン参加端末が社内ネットワークに接続している場合は「ドメイン」プロファイルが適用されます。ただし在宅勤務や外出先でVPNを使わずに接続した場合は「パブリック」プロファイルが適用されることがあるため、すべてのプロファイルで有効化しておくことが重要です。

現場で確認すべき設定項目

プロファイル別の有効状態を確認する

まず3つすべてのプロファイルでファイアウォールが有効になっているか確認します。

# すべてのプロファイルのファイアウォール状態を確認する
Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultInboundAction, DefaultOutboundAction

EnabledTrueDefaultInboundActionBlockになっていることを確認してください。どれか1つでもEnabledFalseになっている場合は即座に有効化が必要です。

# すべてのプロファイルを有効化する(管理者権限で実行)
Set-NetFirewallProfile -All -Enabled True

推奨:3つすべてのプロファイルで有効(Enabled = True)

受信規則・送信規則の基本的な考え方

Windowsファイアウォールの規則は「受信規則」と「送信規則」の2種類があります。

受信規則(Inbound Rules)
外部から端末への通信に対して適用するルール。デフォルトでは「ブロック」が基本で、許可する通信のみ明示的に例外として追加する(ホワイトリスト方式)。

送信規則(Outbound Rules)
端末から外部への通信に対して適用するルール。デフォルトでは「許可」が基本。業務上の必要性がある場合は送信規則でも制限をかける。

現在有効になっている受信規則を確認します。

# 有効な受信許可規則の一覧を確認する
Get-NetFirewallRule -Direction Inbound -Enabled True -Action Allow |
    Select-Object DisplayName, Profile, Direction, Action |
    Sort-Object DisplayName |
    Format-Table -AutoSize

不要な受信許可規則が大量に存在する場合は整理が必要です。特に「すべてのポートを許可」するような広範な規則は削除またはより限定的な規則に変更してください。

ログ設定——接続の記録を残す

ファイアウォールのログを有効化しておくと、ブロックされた通信を記録できます。インシデント調査の際に攻撃の痕跡を追うための重要な証跡になります。

# ドメインプロファイルのログ設定を確認する
Get-NetFirewallProfile -Name Domain |
    Select-Object Name, LogFileName, LogMaxSizeKilobytes, LogBlocked, LogAllowed

LogBlockedFalseの場合はブロックされた通信が記録されていません。以下のコマンドで有効化できます。

# すべてのプロファイルでブロックされた接続をログに記録する
Set-NetFirewallProfile -All -LogBlocked True -LogMaxSizeKilobytes 32767

ログはデフォルトでC:\Windows\System32\LogFiles\Firewall\pfirewall.logに保存されます。

イベントログを使った攻撃検知の方法については「イベントログで攻撃を検知する実践パターン」も参照してください。

GPOでファイアウォール設定を一括管理する

GPOで設定できる主な項目

ドメイン環境ではGPOを使ってファイアウォール設定を全端末に一括適用できます。個別端末での設定漏れを防ぐために有効です。

GPOのパスは以下です。

コンピューターの構成
 └── Windowsの設定
   └── セキュリティの設定
     └── セキュリティが強化されたWindowsファイアウォール

現場でよく設定するGPO項目を整理します。

設定項目 推奨値 場所
ドメインプロファイルの状態 有効 Windowsファイアウォールのプロパティ
プライベートプロファイルの状態 有効 同上
パブリックプロファイルの状態 有効 同上
受信接続(デフォルト) ブロック 各プロファイルのプロパティ
ブロックされた接続のログ はい 各プロファイルのログ設定
ログファイルの最大サイズ 32767KB 同上

GPOで設定したファイアウォールポリシーはローカルの設定より優先されます。ただし管理者がGPOの設定を上書きできないよう「ローカル管理者がポリシーをオーバーライドできない」設定も合わせて確認してください。

グループポリシーの設計と運用については「グループポリシー(GPO)設計入門|セキュリティ設定をADで一括管理する方法」を参照してください。

設定の確認方法(PowerShell)

GPO適用後の設定状態をPowerShellで確認できます。

# ファイアウォールの現在の設定サマリーを確認する
Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultInboundAction, LogBlocked, LogFileName

# リモートの端末のファイアウォール状態を確認する
Invoke-Command -ComputerName "PC001" -ScriptBlock {
    Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultInboundAction
}

GPO適用後に設定が反映されているか確認する場合はgpresult /rまたはgpresult /h report.htmlも併用してください。

現場でよくある設定ミス

1. 「通信できないから」という理由でファイアウォールをオフにする

アプリケーションの通信エラーが出たとき、原因調査の手間を省くためにファイアウォールを無効化してそのままにしてしまうケースがあります。正しい対処は「ファイアウォールを無効にする」のではなく「必要な通信だけを許可する受信規則を追加する」です。どのポートで通信が必要かをアプリのドキュメントで確認してから、最小限の例外規則を追加してください。

2. パブリックプロファイルが有効になっていない

「社内のドメインプロファイルだけ有効にしておけばいい」という認識で、パブリックプロファイルが無効になっているケースがあります。在宅勤務・外出先・VPN未接続時はパブリックプロファイルが適用されます。パブリックプロファイルは最も厳しい制限が必要なプロファイルです。必ず有効化してください。

3. ログが無効で証跡が残らない

ファイアウォールのブロックログが無効になっていると、不正な接続試行の証跡が残りません。インシデント発生後に「ログが残っていなかった」という事態を防ぐため、すべてのプロファイルでブロックログを有効化してください。ログのサイズも最大値(32767KB)近くまで拡張することを推奨します。

4. 例外設定が広すぎて意味がなくなっている

「すべてのポートを許可」「すべてのIPアドレスからの接続を許可」といった広範な受信許可規則が蓄積して、実質的にファイアウォールが機能していない状態になるケースがあります。定期的に受信許可規則を棚卸しし、不要な規則は削除してください。特にリモートデスクトップ(3389番)やSMB(445番)への無制限な受信許可は危険です。

チェックリスト

有効状態の確認

  • [ ] ドメイン・プライベート・パブリックの3つすべてのプロファイルが有効になっている
  • [ ] すべてのプロファイルで受信接続のデフォルトが「ブロック」になっている
  • [ ] GPOでファイアウォール設定が一括管理されている

ログの確認

  • [ ] すべてのプロファイルでブロックされた接続のログが有効になっている
  • [ ] ログの最大サイズが適切に設定されている(推奨:32767KB)
  • [ ] ログファイルのパスを把握している

規則の確認

  • [ ] 不要な受信許可規則が蓄積していないか定期的に棚卸ししている
  • [ ] RDP(3389番)・SMB(445番)への受信許可が必要最小限のIPに限定されている
  • [ ] 「すべてのポートを許可」するような広範な例外規則がない

3つすべてのプロファイルは有効になっていますか?

管理している端末で確認してください。

Get-NetFirewallProfile | Select-Object Name, Enabledを実行して、すべてのプロファイルのEnabledTrueになっていることを確認してください。1つでもFalseになっている端末があれば即座に有効化してください。

Windowsファイアウォールはエンドポイント側の最後の砦です。ネットワーク機器のファイアウォールで境界を守りながら、エンドポイントでも防御することで、侵害後の横展開に対する多層防御が完成します。

不正アクセスに対する多層防御の全体像については「不正アクセス対策の基本設計|侵入経路を理解して守れる構成を作る」もあわせてご覧ください。

あわせてご覧ください

参考文献

コメント

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