YAMAHAルータで学ぶネットワーク構築術 > 静的フィルタリング(TCPヘッダの指定)
当サイト概要学習環境の準備プライバシーポリシーリンクについてリンクの申込お問い合せ
◆スポンサードリンク

◆Amazon
◆静的フィルタリング(TCPヘッダの指定)
◇スポンサードリンク

◆静的フィルタリング(TCPヘッダの指定)

 静的フィルタリングでは、通過させたい通信のために、常に、行きと戻りのパケットを通過させる穴が開けた状態になります。そのため、そこから、クラッカーやウイルスなどから侵入されるリスクが残ってしまいます。


 例えば、Webの通信を通すために戻りのパケットのために、送信元のTCPの80番のポート番号を通すように穴をあけていた場合、クラッカーが送信元ポートを偽装して、不正なパケットを送りつけてくると、ファイアウォールは正規のパケットとして通過させてしまいます。

 このような不正パケットを遮断するために、ファイアウォールにTCPヘッダ内の情報を見るように、もう少し、細かな条件を加えることができます。


◆TCPにおける通信

 ファイアウォールにおけるTCPヘッダの指定方法について説明する前に、まず、TCPにおける通信を理解しておきましょう。

TCPの通信において、スリーウェイハンドシェイクという手順で、接続を確立します。

 このハンドシェイクで、初期シーケンス番号を交換することで、2つのホストが、それぞれの初期シーケンス番号を同期させています。

 同期は、SYN(同期制御ビット)と初期シーケンス番号で構成されるパケットを交換することで行われます。

その手順は、次のように行われます。

手順 内容
手順1 送信元が相手に対して、「SYNパケット」を送信する。
手順2 SYN パケットを受け取った相手は、送信元に接続を許可する「SYN,ACKパケット」を送信する。
手順3 SYN ACK パケットを受けとった送信元は、接続開始をあらわす ACK パケットを送信し、受信側との通信を開始する。

スリーウェイハンドシェイクの様子を図で表すと次のようになります。


 このように、スリーウェイハンドシェイクでは、3つのパケットを往復させることで、コネクションを確立します。

 上図では、3つのパケットのやり取りしか、表していませんが、この後に続くパケットには、全てACK(アック)のフラグがオンになったパケットを送信します。

 つまり、TCPの通信では、送信側がSYN(シン)のフラグをオンにしたパケットを受信側に送信し、それ以降に続くパケットには、全て確認応答であるACK(アック)のフラグをオンにしたパケットを送ることとなります。


◆ファイアウォールにおけるコードビットのチェック

TCPヘッダは、次のように構成されています。

0 15 16 31
送信元ポート番号(16ビット) 宛先ポート番号(16ビット)
シーケンス番号(32ビット)
確認応答番号(32ビット)
ヘッダ長
(4ビット)
予約済み
(6ビット)
コードビット(各1ビット) ウィンドウサイズ
(16ビット)
U
R
G
A
C
K
P
S
H
R
S
T
S
Y
N
F
I
N
チェックサム(16ビット) 緊急ポインタ(16ビット)
(オプション)
データ
←―― 32ビット ――→

 ファイアウォールに、外部から送られてくるパケットのTCPヘッダ内のコードビット内のACKがオンになっているかを確認し、オンになっているパケットだけを通過させるようにすれば、外部からの不正パケットを遮断することができます。

 TCPにおける通信は、スリーウェイハンドシェイクという手順で、接続を確立しないと通信ができないので、SYNがオンになったパケットを遮断することで、スリーウェイハンドシェイクが確立できなくなり、TCPのコネクションは成立しなくなります。

 TCPは、このようにスリーウェイハンドシェイクのやり取りを確認することで、静的フィルタリングを細かく指定することができますが、UDP接続の場合、UDPヘッダ内にはコードビットがないので、TCPのような細かな指定をすることができません。

この辺りが、静的フィルタリングの限界となります。

 次の「静的フィルタリングの限界」では、静的フィルタリングの限界について、もう少し、詳しく説明してゆきます。

静的フィルタリング(その2)」 ← 前項 | 次項 → 「静的フィルタリングの限界



Copyright(c)2012〜 YAMAHAルータで学ぶネットワーク構築術 All rights reserved.