静的フィルタリングの設定(その2)
ここでは、ファイアウォールの内側(LAN側)から発するパケットの戻りのパケットだけの通過を許可するフィルタリングの設定を行います。
Establishedのみを許可する
TCPの通信は、スリーウェイハンドシェイクという手順で、接続を確立します。このハンドシェイクで、初期シーケンス番号を交換することで、2つのホストがそれぞれの初期シーケンス番号を同期させています。
その手順は、次のように行われます。
手順 | 内容 |
手順1 | 送信元が相手に対して、「SYNパケット」を送信する。 |
手順2 | SYN パケットを受け取った相手は、送信元に接続を許可する「SYN,ACKパケット」を送信する。 |
手順3 | SYN 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