現代のネットワークにおいてUDP/TCPで活躍する機器といえばファイアウォール。あらかじめ設定したルールに従って「この通信は許可、この通信は拒否」というように通信を選別して、いろいろな脅威からシステムを守る。
UDPファイアウォール
ファイアウォールで行う通信制御技術のことをステートフルインスペクションという。通信の許可・拒否を定義するファイアウォールルールで構成されたフィルターテーブルと、通信を管理するコネクションテーブルを用いて、流れる通信を制御している。
- ファイアウォールはコネクションレスのUDPをコネクション型のプロトコルのように扱うことによって、UDP通信を制御する。
- フィルターテーブルでアクションが「許可(ACCEPT)」のファイアウォールルールにヒットした場合、コネクションテーブルに受け取ったリクエストパケットの情報(IPアドレスやポート番号、プロトコルなど)と、これから受け取る予定のリプライパケットの情報をコネクションエントリとして新しく追加する。一方、アクションが「拒否(REJECT)」のファイアウォールルールにヒットした場合はコネクションテーブルにコネクションエントリを追加せず、コードが「Port Unreachable(コード3)」のICMPパケットを返す。また、アクションが「ドロップ(DROP)」のファイアウォールルールにヒットした場合は何もしない。前述した拒否のアクションは、結果としてそこに何らかの危機が存在していることを示すことになってしまい、セキュリティの観点からはよろしくない。その点ドロップのアクションは単純に破棄するだけで存在自体を相手に知らせずに済む。ドロップは、パケットをこっそり破棄する動作から「Silent Discard」とも呼ばれる。
- アクションが許可のファイアウォールルールにヒットした場合、サーバーからのリプライが発生する場合がある。
- 通信が終了したら、コネクションエントリのアイドルタイムアウト値をカウントダウンする。その値が0になったらコネクションエントリを削除する。
コメントを残す