Secure Steady
パケットフィルタリング - パケットフィルタリング の使い方・オプション・サンプル

パケットフィルタリング - パケットフィルタリング

IP アドレス・ポート番号・プロトコルに基づいてパケットを許可・拒否する最も基本的なファイアウォール方式。

概念図

パケットフィルタリング diagram

ステートレス型とステートフル型

パケットフィルタリングは L3/L4 のヘッダ情報のみを見て可否を決定するシンプルな方式ですが、状態を追跡するか否かで運用性が大きく変わります。

観点 ステートレス型 ステートフル型
判定材料 個々のパケットのヘッダ(IP / Port / Protocol / Flag) ヘッダに加え、コネクション状態テーブル
戻りトラフィックの扱い 明示的に逆方向ルールが必要 既存コネクションの戻りを自動許可
代表実装 Cisco ACL(基本形)、AWS NACL iptables / nftables、conntrack、AWS Security Group
誤設定リスク 戻りルールの穴あけで broad な許可になりがち ルール数は少ないが conntrack テーブル枯渇に注意
性能特性 状態を持たないため高速・省メモリ 状態管理のぶんオーバーヘッドがある

現代のサーバー用途ではステートフル型が事実上の標準で、TCP/UDP/ICMP の会話を ESTABLISHED,RELATED として追跡し、戻りパケットに個別ルールを書かずに済むのが大きな利点です。

機能と限界

パケットフィルタリングは「どの IP のどのポートへの通信を許すか」という粒度の制御に優れる一方、HTTP ボディや TLS の中身など L7 の意味を理解できません。

レイヤ / 項目 できること できないこと
L3(IP) 送信元・宛先 IP レンジの許可/拒否、スプーフィング防止の基本 正当な IP から来る攻撃の識別
L4(TCP/UDP) ポート・フラグ(SYN/ACK)・コネクション状態に基づく制御 アプリケーションレベルの異常検知
L7(アプリ層) 原則対象外(ヘッダしか見ない) SQLi / XSS / コマンドインジェクション等の検知
暗号化通信 宛先ポートの制御のみ TLS 内部の検査(NGFW / WAF の領域)

このため、パケットフィルタは「到達性を最小化する」ための第一層として使い、アプリケーション攻撃の検知は WAF や NGFW、IDS/IPS に任せる多層防御が前提になります。

代表的な実装と配置

オンプレミスからクラウドまで、パケットフィルタリングは様々な形で実装されています。

実装 レイヤ 状態管理 主な用途
iptables / nftables Linux カーネル ステートフル(conntrack) サーバー単体のホスト FW、ゲートウェイ
Cisco ACL / Juniper firewall filter ルーター / L3 スイッチ ステートレスが基本 コアネットワーク、境界ルーター
AWS Security Group VPC / ENI 単位 ステートフル EC2 / RDS 等リソース単位のインバウンド/アウトバウンド制御
AWS NACL サブネット単位 ステートレス サブネット境界の粗粒度制御、緊急遮断
GCP Firewall Rules / Azure NSG VPC / VNet ステートフル クラウドネイティブな境界制御

クラウドではインスタンス単位の Security Group とサブネット単位の NACL を併用し、「最小の到達性」を構成するのが典型パターンです。

特に AWS NACL はステートレスなので、エフェメラルポートの戻り許可を忘れると通信が壊れる点に注意が必要です。

関連トピック