ステートフルインスペクションが扱うプロトコル


(1) L3 / L4 の基本プロトコル

FW が標準でステート管理するもの。

プロトコル説明
TCPSYN, ACK, FIN, SEQ で完全ステート管理
UDPpseudo-state(疑似ステート)でタイマ管理
ICMPID と SEQ による関連セッション管理
GREトンネルセッションをトラッキング
ESP(IPsec)SPI(Security Parameters Index)でステート管理
AH(IPsec)ヘッダ整合性を検証しつつステート管理

(2) NAT / ALG が必要なプロトコル(ステートを深く追跡)

これらは 制御チャネルとデータチャネルが分かれる特殊プロトコル

Firewall はそれらを解析して、関連するポートを自動で開ける(ALG)。

プロトコル内容FW動作
FTP(Active/Passive)20/21 の制御+データで複雑PORT/PASVを解析してデータチャネル開放
SIP(VoIP)5060 + 動的ポート多数INVITE/SDP を読み取ってRTPポート許可
H.323(VoIP)制御とメディアで多数のポート関連チャネルを自動開放
RTSP(動画ストリーミング)TCP 554 + 動的ポートSETUP/PLAY を解析
TFTP制御+データが動的に変わる自動でデータポートを開ける
DNS(インスペクション)53/UDP/TCP応答サイズやIDを確認

これらは ステートフル+アプリケーションインスペクションのハイブリッドで動作します。

(3) トンネル・VPN系プロトコル

Firewall はこれらもステート管理します。

プロトコル説明
IKEv1 / IKEv2IPsecの交渉状態を管理
IPsec ESP/AHSPIを基準にセッション管理
L2TPPPPフレームの状態管理
PPTPGRE と TCP1723 の関連付け
SSL/TLSセッションごとに状態管理

(4) アプリケーションプロトコルでのステート

多くの FW(特に次世代FW)は L7 までステート管理します。

プロトコル内容
HTTP/HTTPSリクエスト/レスポンスをコネクション単位で管理
SSHセッションごとの鍵交換状態を維持
Telnetコネクション管理
SMTP/POP3/IMAPメールセッション管理
RDP3389/TCP の状態管理

次世代 FW(NGFW)では「アプリケーション識別」+「ステート管理」が標準。

2. ステートフルテーブルに登録される内容(重要)

FW が保持する状態は、プロトコルによって違う。


🟩 TCP の場合

FW が追跡する項目:

  • 送信元IP / ポート
  • 宛先IP / ポート
  • シーケンス番号
  • ACK番号
  • TCPフラグ(SYN/ACK/FIN/RST)
  • セッション状態(ESTABLISHED, FIN-WAIT 等)
  • タイムアウト
  • NAT変換後の宛先
  • バイト数 / パケット数

UDP の場合(疑似ステート)

  • セッション開始 IP/Port
  • タイムアウト(デフォルト 2分など)
  • NAT情報

※UDP はコネクションレスなので、完全ステートではなく
「一定時間だけ通信を関連付ける仕組み」。

ICMP の場合

  • Identifier(ID)
  • Sequence number
  • NAT情報
  • タイムアウト

SIP / RTSP / FTP のような複雑プロトコル

FW は制御チャネルを解析し、

  • 何番ポートでデータが流れるか
  • どの相手と通信するか

を読み取って、そのポートだけ一時的に許可します。