静的フィルタリングの設定例

 ここでは、内部からインターネットへのアクセスを通過させ、外部からのアクセスを制限するフィルタリングを設定していきます。

まず、下準備として、下図のネットワークにおいて、フィルタリング以外の設定を行っていきます。

R1ルータの設定

・プロンプトを「R1」にします。
# console prompt R1

・LAN1インターフェイスのIPアドレスとサブネットマスクを設定します。
R1# ip lan1 address 192.168.1.1/24

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

・LAN2側に対して、PPPoEを使用するよう設定します。
R1pp1# pppoe use lan2

・認証タイプを設定します。
R1pp1# pp auth accept chap pap

・PPPoEサーバとの認証情報を設定します。
R1pp1# pp auth myname (PPPoE接続ID) (PPPoE接続パスワード)

・接続時にサーバからIPアドレスを得るように設定します。
R1pp1# ppp ipcp ipaddress on

・接続時にサーバからDNSサーバのIPアドレスを得るように設定します。
R1pp1# ppp ipcp msext on

・LCPのネゴシエーションで「Maximum Receive Unit」オプションで、パケットの最大長を指定します。
R1pp1# ppp lcp mru on 1454

・PPPにおけるMTUを指定します。
R1pp1# ip pp mtu 1454

・圧縮機能を使用しません。「none」で指定しない場合、デフォルトのstac圧縮でネゴシエーションされます。
R1pp1# ppp ccp type none

・「pp1」を使用できるようにします。
R1pp1# pp enable 1

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

・宛先がLAN1以外の宛先であるデフォルトルートとして、相手先情報番号「pp1」に設定します。
R1# ip route default gateway pp 1

・DNSサーバのIPアドレスは、pp1から取得するアドレスを取得します。
R1# dns server pp 1

・プライベートアドレスのDNSアドレス解決要求をDNSサーバに転送しないように設定します。
R1# dns private address spoof on

●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

R1ルータのフィルタリングの設定

R1ルータに下記のフィルタリングを設定します。

R1# ip filter 10 reject 10.0.0.0/8 * * * *
R1# ip filter 11 reject 172.16.0.0/12 * * * *
R1# ip filter 12 reject 192.168.0.0/16 * * * *
R1# ip filter 13 reject * * tcp * telnet
R1# ip filter 30 pass * 192.168.1.0/24 icmp * *
R1# ip filter 31 pass * 192.168.1.0/24 established * *
R1# ip filter 32 pass * 192.168.1.0/24 tcp * ident
R1# ip filter 33 pass * 192.168.1.0/24 tcp ftpdata *
R1# ip filter 34 pass * 192.168.1.0/24 udp domain *
R1# ip filter 35 pass * 192.168.1.0/24 udp * 33434-33500
R1# ip filter 20 reject * * udp,tcp 135 *
R1# ip filter 21 reject * * udp,tcp * 135
R1# ip filter 22 reject * * udp,tcp netbios_ns-netbios_ssn *
R1# ip filter 23 reject * * udp,tcp * netbios_ns-netbios_ssn
R1# ip filter 24 reject * * udp,tcp 445 *
R1# ip filter 25 reject * * udp,tcp * 445
R1# ip filter 50 reject * 10.0.0.0/8 * * *
R1# ip filter 51 reject * 172.16.0.0/12 * * *
R1# ip filter 52 reject * 192.168.0.0/16 * * *
R1# ip filter 99 pass * * * * *
R1# ip filter source-route on
R1# ip filter directed-broadcast on
R1# pp select 1
R1pp1# ip pp secure filter in 10 11 12 13 20 21 22 23 24 25 30 31 32 33 34 35
R1pp1# ip pp secure filter out 20 21 22 23 24 25 50 51 52 99
R1pp1# pp select none

静的フィルタリングの設定例の解説

PP側のIN方向とOUT方向のフィルタリングの目的を個別に解説していきます。

PP側のIN方向のフィルタ

・外部からの送信元IPアドレスがプライベートIPアドレスのパケットを遮断します。これは、IPスプーフィング攻撃であなどを遮断する目的で設定します。

R1# ip filter 10 reject 10.0.0.0/8 * * * *
R1# ip filter 11 reject 172.16.0.0/12 * * * *
R1# ip filter 12 reject 192.168.0.0/16 * * * *

・外部からのTelnetを遮断します。

R1# ip filter 13 reject * * tcp * telnet

・ICMPパケットを許可します。例えば、pingやWindowsのtracert などがICMPを使っています。
また、tracerouteには、「ICMPを利用する方法」と「未使用UDPを利用する方法」の2種類があります。
R1# ip filter 30 pass * 192.168.1.0/24 icmp * *

・TCPのスリーウェイハンドシェイクを利用したフィルタです。TCPの通信において、内部から発したパケットの戻りのパケットだけを許可します。
R1# ip filter 31 pass * 192.168.1.0/24 established * *

・メールの通信(SMTPやPOPなど)やFTPを行なう際、identによりユーザ情報確認が行なわれる場合があるため、その確認パケットを許可します。

 通常、identをフィルタで遮断しても通信可能なようですが、反応が遅くなるという症状が報告されているため、許可しています。メール利用に問題が発生しなければ、遮断して問題ありません。

R1# ip filter 32 pass * 192.168.1.0/24 tcp * ident

・アクティブモードで動作するFTP通信に備えて、許可しておきます。パッシブモードのFTP通信を用いる場合は、このフィルタの適用は必要ありませんので遮断しても問題ありません。

R1# ip filter 33 pass * 192.168.1.0/24 tcp ftpdata *

・DNSへの問い合わせを許可します。
R1# ip filter 34 pass * 192.168.1.0/24 udp domain *

・tracerouteには、「ICMPを利用する方法」と「未使用UDPを利用する方法」の2種類があります。こちらは「未使用のUDP」を許可するフィルタです。

R1# ip filter 35 pass * 192.168.1.0/24 udp * 33434-33500

PP側のIN方向とOUT方向の共用のフィルタ

不正利用され易いWindowsが利用するTCP/UDPの135,137,138,139,445番のポートを遮断します。

R1# ip filter 20 reject * * udp,tcp 135 *
R1# ip filter 21 reject * * udp,tcp * 135

・「netbios_ns-netbios_ssn」の部分は、netbios_ns(137)からnetbios_ssn(139)までというポートの範囲を表します。
R1# ip filter 22 reject * * udp,tcp netbios_ns-netbios_ssn *
R1# ip filter 23 reject * * udp,tcp * netbios_ns-netbios_ssn
R1# ip filter 24 reject * * udp,tcp 445 *
R1# ip filter 25 reject * * udp,tcp * 445

PP側のOUT方向のフィルタ

・宛先がプライベートIPアドレス宛てのパケットを遮断します。これは通常の通信ではありえない宛先です。

R1# ip filter 50 reject * 10.0.0.0/8 * * *
R1# ip filter 51 reject * 172.16.0.0/12 * * *
R1# ip filter 52 reject * 192.168.0.0/16 * * *

・上記フィルタに該当しないパケットを全て許可します。

R1# ip filter 99 pass * * * * *

・「source-routeオプション付きIPパケット」を遮断します。source-routeオプションとは、始点経路制御のことで、意図的なIPデータグラムの経路制御を行う場合に使用されるオプションのことです

R1# ip filter source-route on

・終点IPアドレスがDirected Broadcastアドレス宛になっているIPパケットを遮断します。Directed Broadcastアドレスとは、IPアドレスのホスト部が全て"1"であるアドレスのことです。

R1# ip filter directed-broadcast on

・「pp1」を使用できるようにします。
R1# pp select 1

・pp側の「in」の方向にフィルタを適用します。
R1pp1# ip pp secure filter in 10 11 12 13 20 21 22 23 24 25 30 31 32 33 34 35

・pp側の「out」の方向にフィルタを適用します。
R1pp1# ip pp secure filter out 20 21 22 23 24 25 50 51 52 99

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

●R1のコンフィグ

console prompt R1
ip route default gateway pp 1
ip filter source-route on
ip filter directed-broadcast on
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
 ip pp secure filter in 10 11 12 13 20 21 22 23 24 25 30 31 32 33 34 35
 ip pp secure filter out 20 21 22 23 24 25 50 51 52 99
 ip pp nat descriptor 1
 pp enable 1
ip filter 10 reject 10.0.0.0/8 * * * *
ip filter 11 reject 172.16.0.0/12 * * * *
ip filter 12 reject 192.168.0.0/16 * * * *
ip filter 20 reject * * udp,tcp 135 *
ip filter 21 reject * * udp,tcp * 135
ip filter 22 reject * * udp,tcp netbios_ns-netbios_ssn *
ip filter 23 reject * * udp,tcp * netbios_ns-netbios_ssn
ip filter 24 reject * * udp,tcp 445 *
ip filter 25 reject * * udp,tcp * 445
ip filter 30 pass * 192.168.1.0/24 icmp * *
ip filter 31 pass * 192.168.1.0/24 established * *
ip filter 32 pass * 192.168.1.0/24 tcp * ident
ip filter 33 pass * 192.168.1.0/24 tcp ftpdata *
ip filter 34 pass * 192.168.1.0/24 udp domain *
ip filter 35 pass * 192.168.1.0/24 udp * 33434-33500
ip filter 50 reject * 10.0.0.0/8 * * *
ip filter 51 reject * 172.16.0.0/12 * * *
ip filter 52 reject * 192.168.0.0/16 * * *
ip filter 99 pass * * * * *
nat descriptor type 1 masquerade
dns server pp 1
dns private address spoof on