静的フィルタリングの設定(その2)

 ここでは、ファイアウォールの内側(LAN側)から発するパケットの戻りのパケットだけの通過を許可するフィルタリングの設定を行います。

Establishedのみを許可する

 TCPの通信は、スリーウェイハンドシェイクという手順で、接続を確立します。このハンドシェイクで、初期シーケンス番号を交換することで、2つのホストがそれぞれの初期シーケンス番号を同期させています。

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

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

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

つまり、送信側が受け取るパケットには、全て「ACK」のフラグが立っていることになります。

 そこで、ファイアウォール側で外部から送られてくるパケットに「ACK」のフラグ付いているものだけを通過させれば、ファイアウォールの内側(LAN側)から発するパケットの戻りのパケットだけを許可することと同意になります。

 フィルタリングの設定にestablishedを指定するとで、TCPヘッダに「ACK」のフラグが立っているということを条件件に加えることができます。

フィルタリングのメカニズムが理解できたところで、まず、R1にフィルタリング以外の設定を行っていきます。

●R1のコンフィグ

console prompt R1
ip route default gateway pp 1
ip lan1 address 192.168.1.1/24
pp select 1
 pppoe use lan2
 pp auth accept pap chap
 pp auth myname (PPPoE接続ID) (PPPoE接続パスワード)
 ppp lcp mru on 1454
 ppp ipcp ipaddress on
 ppp ipcp msext on
 ppp ccp type none
 ip pp mtu 1454
 pp enable 1
dns server pp 1
dns private address spoof on

・相手先情報番号に「pp1」を選択します。
R1# pp select 1

・プロトコルパラメータに「established」を指定して、ファイアウォールの内側から発するパケットの戻りのパケットを通過させます。
R1pp1# ip filter 1 pass * * established

・FTPのデータコネクションは、外部からコネクションを確立するので、そのパケットを通過させます。
R1pp1# ip filter 2 pass * * tcp ftpdata *

・DNSサーバへの問い合わせの応答パケットを通過させます。
R1pp1# ip filter 3 pass * * udp domain *

・pp側の「in」の方向にフィルタを適用します。
R1pp1# ip pp secure filter in 1 2 3

・相手先情報番号「pp1」の選択を終了します。
R1pp1# pp select none

外部からのPINGコマンドを拒否する

ここから、外部からのPINGコマンドを拒否するフィルタリングの設定を行っていきます。

●R1のコンフィグ

console prompt R1
ip route default gateway pp 1
ip lan1 address 192.168.1.1/24
pp select 1
 pppoe use lan2
 pp auth accept pap chap
 pp auth myname (PPPoE接続ID) (PPPoE接続パスワード)
 ppp lcp mru on 1454
 ppp ipcp ipaddress on
 ppp ipcp msext on
 ppp ccp type none
 ip pp mtu 1454
 pp enable 1
dns server pp 1
dns private address spoof on

・相手先情報番号に「pp1」を選択します。
R1# pp select 1

・プロトコルパラメータに「icmp」を指定してpingコマンドを拒否します。
R1pp1# ip filter 1 reject * * icmp

・全てのパケットを通過させます。
R1pp1# ip filter 2 pass * *

・pp側の「in」の方向にフィルタを適用します。
R1pp1# ip pp secure filter in 1 2

・相手先情報番号「pp1」の選択を終了します。
R1pp1# pp select none