Windowsファイアウォールで適用されるルールの優先順位、暗黙のdeny

通常、通信制御をする場合は、ファイアウォールかL3スイッチで行うことが多いですが、同一セグメントにいる場合、L2SWでは通信制御が難しいことが多いです。


大手企業の場合、ファイアウォールが何層にもなっていて、インターネット接続ポイントだけでなく、内部ファイアウォールなども導入していると思います。


ただし、中小企業などではファイアウォールを設置していないケースもありますが、クライアントから管理サーバなどへのアクセスを制限したいケースもあると思います。


そこで、ファイアウォールなどで通信制御できない場合は、サーバのパーソナルファイアウォール利用します。


これを設定することで、不要な通信をブロックすることができます。では、Cisco機器などの場合、ACLを定義すると暗黙のdenyが定義されて、許可されたものいがいはブロックされますが、Windowsの場合はどうなんでしょうか。


ということでマイクロソフトの公式サイトをチェックしたらありました。ちょっと対象が古いですが、

 

[ファイアウォール規則のプロパティ] ページ: [全般] タブ

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc730690(v=ws.11)?redirectedfrom=MSDN

 

適用対象: Windows 7, Windows Server 2008 R2


[操作] セクション
ファイアウォール規則の条件と一致するネットワーク パケットに対して、セキュリティが強化された Windows ファイアウォールで実行される操作を選択します。定義済みの複数のファイアウォール規則がある場合、照合のために評価される順番は、規則に指定された操作によって決まります。ファイアウォール規則は、次の順番で評価されます。

①[セキュリティで保護されているときに許可する設定のカスタマイズ] ダイアログ ボックスの [ブロックの規則より優先する] がオンにされた状態の [セキュリティで保護されている場合のみ接続を許可する]。

②[接続をブロックする]。

③[接続を許可する]。

④[既定のプロファイル動作] ([セキュリティが強化された Windows ファイアウォールのプロパティ] ダイアログ ボックスの [プロファイル] タブで指定された許可またはブロック)。

各カテゴリ内で、最も具体的な規則から具体性が低い規則の順で規則が評価されます。4 つの条件が指定されている規則は、3 つの条件だけが指定されている規則に優先して選択されます。ネットワーク パケットが規則に一致すると、その操作が即時にトリガーされ、その他の規則とは照合されなくなります。つまり、ネットワーク パケットが 1 つ以上の規則と一致する場合でも、パケットを最初に評価する一致した規則のみが、そのパケットに適用されます。

 


ちなみに、、、各設定の説明は以下になります。

[接続を許可する]
ファイアウォール規則のすべての条件に一致するネットワーク パケットを許可するには、このオプションを使用します。

[セキュリティで保護されている場合のみ接続を許可する]
インターネット プロトコル セキュリティ (IPsec) を使用して保護されているネットワーク パケットだけを許可するように指定するには、このオプションを使用します。

IPsec 設定は、接続セキュリティの各規則で定義する必要があります。既定では、この設定には、認証と整合性の両方が含まれることが要求されますが、暗号化は要求されません。この要件を構成するには、[カスタマイズ] をクリックし、[セキュリティで保護されているときに許可する設定のカスタマイズ] ダイアログ ボックスのオプションを選択します。


[接続をブロックする]
ファイアウォール規則の条件に一致する任意のネットワーク パケットを明示的にブロックするには、このオプションを使用します。ファイアウォール規則の作成時に [ブロックの規則より優先する] オプションをオンにしない限り、許可操作よりブロック操作が優先されます。


意外と細かく設定できます。ちなみに、Windowsファイアウォールは受信に関してはすべて拒否されますが、ステートフルインスペクションによりTCPの戻りパケットは通過します。


試しにすべて拒否にしても自分発信の通信はこれにより許可されます。その為、このすべてdenyを設定してしまうとすべて拒否することになります。


Windowsの場合、適用ルールがネットワーク機器と違うので、設定が意外と面倒かな~と思えてきました。


そして、Windowsファイアウォールの場合、以下のルールがデフォルトです。

標準的な設定(デフォルト)では以下のとおりとなります。

受信設定:
「規則に一致しない受信接続はブロックされます」
→これは、規則で定義していない受信通信は拒否することになります。つまり、Ciscoで言う暗黙のdenyが有効ということになります。

送信設定:
「規則に一致しない送信接続は許可されます」
→これは、規則で定義していない送信通信は許可されることになります。


つまり、Windowsファイアウォールを有効にすると、受信の規則で許可していない通信以外は拒否されるので、いったん、すべて許可を外して必要な通信だけ許可すればいいですね。