前の記事では、 ACLを使ってIPアドレス・Protocol・Port番号などを条件に通信をPermit / Denyする仕組み を学びました。
しかし、実際のネットワークセキュリティでは 単純に1パケットずつ条件を見るだけではなく、 「その通信がどのように始まったものなのか」 まで確認することがあります。
たとえば社内PCがWebサイトへアクセスした場合、 Webサーバーから応答パケットが返ってきます。
この応答通信は、 見た目だけなら Internet側から社内側へ向かう通信 です。
Webサイトからの戻り通信まで止まってしまわないのでしょうか?
そこで重要になるのが ファイアウォール(Firewall) と Stateful Inspection という考え方です。
ファイアウォールを 「通信を止める装置」とだけ覚えるのではなく、 通信ルールやセッション状態を確認し、 必要な通信だけを通過させるネットワーク境界の防御機能 として理解することを目指します。
ファイアウォールとは?
ファイアウォールとは、 異なるネットワーク間を流れる通信を監視し、 設定されたルールに基づいて許可または拒否する仕組み です。
Firewallは、 Routerや専用セキュリティ機器、 クラウドサービスなど さまざまな形で利用されています。
ファイアウォールは何を見て通信を判断する?
製品や機能によって異なりますが、 代表的には次のような情報を利用します。
どこから来た通信か
どこへ向かう通信か
TCP / UDP / 443など
既存通信への応答か
ACLとファイアウォールは何が違う?
ACLとFirewallはどちらも 通信をPermit / Denyできます。
ただし、 代表的な違いとして 通信状態を追跡するかどうか があります。
Protocol / Port
設定した条件に パケットが一致するかを判断。
+ Session Table
「既存通信への戻りか」 といった状態も判断。
これは理解しやすくするための基本整理です。 実際のFirewall製品では、 さらにApplication識別やIPSなど高度な機能を持つ場合があります。
StatelessとStatefulの違い
前後の通信状態を持たず、 そのパケット自身の情報を中心に判断します。
Session Tableを保持し、 既存通信への戻りかどうかなども確認します。
Session Tableとは?
Stateful Firewallでは、 通信開始時に Session情報 を記録します。
たとえば社内PCがHTTPS通信を開始したとします。
192.168.10.10:50001
198.51.100.20:443
Firewallは概念的に、 次のようなSessionを記録します。
192.168.10.10:50001
198.51.100.20:443
TCP
ESTABLISHED
その後、 Web Serverから応答が返ってきた場合、 FirewallはSession Tableを確認します。
戻り通信はSession Tableによって許可できる
198.51.100.20:443
Internet側から内部へ向かう通信であっても、 内部PCが開始した既存Sessionへの応答 であればPermitできます。
外部から突然始まる通信はどうなる?
今度は、 Internet側の端末から突然 社内PCへTCP接続を開始するとします。
既存Sessionへの戻りではなく、 外部から新しく開始された通信です。
明示的に許可するRuleが存在しなければ、 Firewallによって拒否できます。
TCPでは通信状態を追跡しやすい
TCPには SYN、ACK、FINなどの制御情報があり、 接続状態を持つProtocolです。
Stateful Firewallは、 こうした通信状態を追跡して Session管理を行えます。
UDPでもStateful Firewallは利用できる?
UDPはTCPのような 3-Way Handshakeを持ちません。
それでもStateful Firewallでは、 送信元・宛先IP、Port番号や Timeoutなどを利用して 擬似的にSession状態を管理 します。
UDPやICMPなどでも、 Firewall製品は通信情報を一定時間保持し、 戻り通信を識別する仕組みを持つ場合があります。
Firewall Policyのイメージ
Firewallでは、 たとえば次のようなPolicyを設定します。
DMZとは?
Internetから公開するWeb Serverなどを 社内LANと同じNetworkへ配置すると、 セキュリティ上のリスクが高まります。
そこで利用される代表的な考え方が DMZ(DeMilitarized Zone) です。
DMZを設けることで、 Internet公開サーバーと社内LANを 別のSecurity Zoneとして分離 できます。
Internet / DMZ / Internalなど、 信頼度の異なるNetwork間にFirewallを配置して 通信Policyを設定します。
NATとFirewallは一緒に使われることが多い
実際の境界機器では、 FirewallとNATの両方を実装していることがあります。
ただし、 学習するときは役割を分けて考えると分かりやすくなります。
次世代ファイアウォール(NGFW)とは?
近年のFirewallには、 IP AddressやPortだけでなく、 より高度な情報を利用して通信を判断する製品があります。
こうした高度な機能を備えたFirewallを NGFW(Next Generation Firewall) と呼ぶことがあります。
NGFWの詳細は製品やSecurity分野で深掘りできます。 まずは Session状態を見て通信を判断する という基本を理解しましょう。
ここで実際に試してみよう:Stateful Firewallシミュレーター
内部PCから通信を開始した場合と、 外部から突然通信を開始した場合の違いを確認してみましょう。
Stateful Firewall Simulator
通信ボタンを押してみましょう
まずInternal PCからInternetへHTTPS通信を開始してみましょう。
理解度チェック:この通信はPermit?Block?
Firewall PolicyとSession状態の両方を考えてみましょう。
Firewallのトラブルシューティングでは何を見る?
Source・Destination・Serviceなどが 意図したRuleに一致しているか確認します。
Stateful Firewallでは Session Tableの確認も重要です。
Firewall Policyだけでなく、 RouteやNAT設定も確認します。
Firewallが1台だけだとどうなる?
ここまで、 FirewallがNetwork境界を守る重要な機器であることを学びました。
では、 Internetとの境界にFirewallが1台しか存在しない場合を考えてみましょう。
このFirewallが故障すると、 Security機能だけではなく Network通信そのものが止まる 可能性があります。
Network通信を継続するにはどうすればよいのでしょうか?
そこで次に学習するのが、 ネットワーク冗長化 です。
確認問題:Firewallの仕組みを理解できたか確認しよう
Stateful Firewallの特徴として正しいものはどれですか?
Stateful FirewallはSession Tableを保持し、 既存通信に関連する戻り通信かどうかなどを判断できます。
Internal PCが開始したHTTPS通信へのServerからの応答は、 Stateful Firewallで一般的にどう扱われますか?
Firewallが内部から開始したSessionを記録していれば、 対応する戻り通信として許可できます。
DMZを設ける代表的な目的はどれですか?
DMZはInternet公開サーバーなどを Internal Networkと分離するための代表的なSecurity Zoneです。
3問に挑戦してみましょう。
まとめ
Firewallは Network間の通信を監視し、Policyに基づいてPermit / Denyする
Stateful Firewallは Session Tableを保持して通信状態を確認 できる
Internal側から開始した通信への戻りPacketは 既存Sessionとして許可可能
外部から突然開始される通信は、 明示的な許可がなければ Blockできる
DMZを利用すると Internet公開ServerとInternal Networkを分離 できる
次は「ネットワーク冗長化の基本」を理解しましょう
Firewallによって、 Network境界で通信を制御する仕組みを学びました。
しかしRouter・Switch・Firewallなどが 1台しか存在しない場合、 その機器が故障するとNetwork全体が停止する 可能性があります。
次は、 機器や通信経路を複数用意して 1か所の障害でNetwork全体が止まらないようにする 冗長化の基本 を学習します。
ネットワーク冗長化の基本を理解する →
