私が所有するYAMAHAルーターの中で、最も新しい機種は「YAMAHA RTX810」です。

今回は、私自身の学び直しも兼ねて、YAMAHA RTX810を使用して、IPv4の静的フィルターと動的フィルター、コマンドの読み方、適用インターフェースでの「in/out」に絞って整理していきたいと思います。
特に、インターフェースにフィルターを適用する際の、「in/out」に関しては、都度確認しないと分からなくなってしまっていましたので、備忘録として残したいと思います。
静的フィルターと動的フィルターの違い
YAMAHAルーターのフィルターコマンドには、2種類のフィルターがあります。
1.静的フィルター
通常「IPフィルター」と言えば、こちらの静的フィルターの事
送信元・宛先IPアドレス、プロトコル、ポート番号などの条件に従い、パケットの通過・破棄を判断します。
ルールは設定に従って固定され、通信の開始を覚えて復路を自動許可する仕組みとは異なる為、送信(往路)で許可した通信は、受信(復路)でも手動で許可してあげないと、通信が出来ません。
◇ 静的ipフィルターコマンド書式
#ip filter filter_num pass_reject src_addr[/mask] [dest_addr[/mask] [protocol [src_port_list [dest_port_list]]]]
◇ 静的ipフィルターコマンド例
#ip filter 1031 pass * 192.168.10.2 tcp * www
全ての送信元&送信ポート(*)から、192.168.10.2へのTCP80(www)の通信を許可(pass)
2.動的フィルター
インターネットルーターでは必ず設定するフィルター
宛先への送信(往路)を契機に状態を管理し、その通信に属する受信(復路)のパケットを一定時間通せるようにします。
外からの通信はブロックしますが、内からの通信は基本通す設定にする「インターネットルーター」の役割として、YAMAHAルーターを導入する場合は、必ず動的フィルターを設定します。
通信終了やタイムアウトに応じて管理情報を解放します。静的ルールで開始通信を絞り、動的ルールで関連(送受信)通信を扱うという役割分担が基本になります。
対象はTCP/UDPです。ICMPは動的フィルターの対象外です。その為、Ping送受信を通す必要がある場合は、静的フィルターで双方向通信許可を設定する必要がありますので、注意です。
◇ 動的ipフィルターコマンド書式
#ip filter dynamic dyn_filter_num srcaddr[/mask] dstaddr[/mask] protocol [option ...]
◇ 動的ipフィルターコマンド例
#ip filter dynamic 105 * * tcp
全ての送信元(*)から、全ての宛先(*)へのTCP通信を許可(一定時間受信も許可)
in/outはインターフェースを基準に考える
inは、そのインターフェースからルーターが受信する方向。outは、そのインターフェースからルーターが送信する方向です。「社内向けだからin」と覚えると、適用する場所を変えたときに混乱します。
PC AからPC Bへのパケットは、LAN1ではin、LAN2ではoutです。応答は逆になり、LAN2ではin、LAN1ではoutです。同じパケットでも、入口と出口で方向の表現が変わります。まず構成図に進行方向を書き、次に適用先を決めると整理できます。
また、通信は双方向(送受信)が通る事で初めて通信として成り立ちますので、フィルターを適用するインターフェースの「in/out」どちらかで拒否(reject)する事で、該当通信を止める事が可能になります。

ip filterコマンドの読み方
ここであらためて、静的フィルターコマンドの読み方について、書いてみたいと思います。
静的フィルターの基本書式は、番号、動作、送信元、宛先、プロトコル、送信元ポート、宛先ポートの順です。以下の例は、PC AからPC BのTCP 8080番への通信を許可します。
「*」はその項目のすべてに一致します。送信元ポートは通常クライアントが選ぶため、この例では*を指定します。8080は宛先ポートです。passは通過、rejectは破棄を意味します。ポートを逆に書くと、意図する要求パケットに一致しません。
ip filter 110 pass 192.168.10.10 192.168.20.10 tcp * 8080
定義しただけでは適用されない
ip filterでルールを定義した後、secure filterでインターフェースと方向に番号を指定します。次の例は、LAN2から送信するパケットに110、199の順で静的フィルターを適用します。
静的フィルターは、適用コマンドに並べた順に照合し、最初に一致したルールで判断します。番号の大小で自動的に並べ替えるわけではありません。静的フィルター列のどれにも一致しなければ破棄します(暗黙のDeny)。
末尾に全破棄を明示してあげると、意図を読み取りやすくなります。
ip filter 199 reject * * * * *
ip lan2 secure filter out 110 199
動的フィルターは静的フィルターと組み合わせる
ここでは、TCP 8080番を対象にした動的フィルターを定義します。
dynamicの後の210は動的フィルター番号です。静的番号の列と動的番号の列は、適用コマンド中のdynamicで区切ります。
開始パケットの許可は静的フィルターで制御します。一度動的な許可ができると、その通信は静的フィルターより優先して扱われます。
ip filter dynamic 210 192.168.10.10 192.168.20.10 filter 110
ip lan2 secure filter out 110 199 dynamic 210
in/out動作確認を行う
検証環境を作成して、IPフィルターのin/out動作確認を行いました。
検証構成
動作確認するにあたり、自宅にあるもう一台のYAMAHAルーター「RTX1100」も使用して、以下のような検証環境を作成いたしました。

実際にYAMAHA RTX810のインターフェースで、in/outフィルターをかけて、実際の動作を見てみたいと思います。
RTX810 LAN1フィルター
RTX810のLAN1インターフェース(赤線で囲まれた箇所)に静的IPフィルターを適用します。

OUTフィルター設定
LAN1インターフェースに「OUTフィルター」をかけます。
冒頭で説明した通り、「OUTフィルター」は、LAN1から出ていく方向にかかります。
絵にすると、以下のように赤矢印方向にフィルターがかかるはずです。

実際に静的IPフィルターを適用して動作を確認してみたいと思います。
検証構成図の左側にある、「192.168.3.0/24」から の通信のみ、通信を許可するフィルターを設定します。ポイントは、矢印方向なので、送信元を「192.168.3.0/24」にする点を間違えないようにしてください。
適用するフィルターは以下です。最後の「ip filter 100 reject * *」はなくても大丈夫です(暗黙のDeny)。
ip lan1 secure filter out 20 100
ip filter 20 pass 192.168.3.0/24 *
ip filter 100 reject * *
OUTフィルター動作確認
pingコマンドを使用して動作確認をすると、「192.168.3.0/24」のPCへ疎通が確認できました。ただし、「192.168.4.0/24」のPCへは疎通不可でした。

想定通り、RTX810 LAN1インターフェースから、PC側へ出ていく方向に制限がかかっている事が分かります。
INフィルター設定
続いて、LAN1インターフェースに「INフィルター」をかけます。
冒頭で説明した通り、「INフィルター」は、LAN1に入っていく方向にかかります。
絵にすると、以下のように赤矢印方向にフィルターがかかるはずです

実際に静的IPフィルターを適用して動作を確認してみたいと思います。
検証構成図の左側にある、「192.168.3.0/24」へ の通信のみ、通信を許可するフィルターを設定します。ポイントは、矢印方向なので、送信先を「192.168.3.0/24」にする点を間違えないようにしてください。
ip lan1 secure filter in 20
ip filter 20 pass * 192.168.3.0/24
ip filter 100 reject * *
適用するフィルターは以下です。最後の「ip filter 100 reject * *」はなくても大丈夫です(暗黙のDeny)。
INフィルター動作確認
pingコマンドを使用して動作確認をすると、OUTフィルターと同じように「192.168.3.0/24」のPCへ疎通が確認できました。ただし、「192.168.4.0/24」のPCへは疎通不可でした。

こちらも想定通り、RTX810 LAN1インターフェースへ入っていく方向に制限がかかっている事が分かります。
IPフィルター よくある疑問
Q. 動的フィルターを設定すれば、外部からの通信をすべて防げますか?
A. 適用先や静的ルールを含む全体の設計によります。今回の例では、許可した通信に属する応答と、別の開始通信を分けて考えます。
Q. establishedは動的フィルターと同じですか?
A. 同じではありません。静的フィルターのestablishedはTCPのACKフラグを見る条件です。通信の開始を記憶する動的フィルターと区別します。
Q. IPv6にもこの設定が効きますか?
A. ここで使うip filterはIPv4の設定です。IPv6は別途設計・確認が必要です。
参考:YAMAHA コマンドリファレンス(RTX810収録版)
次回はフィルターで防げること・防げないこと
今回は、単純に静的IPフィルターのIN/OUT動作を確認しただけでしたが、今後は、実機では「通った」という結果に加え、どの条件で通ったかまで確かめたいと思います。
次回は、このフィルターで抑えられる通信と、許可した通信に含まれる脅威など別の対策が必要な領域を整理し、SCS評価制度★3に向けた備えへつなげてまいります。
フィルター設定だけでは、SCS評価制度★3の要求を満たすとはいえません。経済産業省の制度構築方針では、基礎的なシステム防御と組織的な対策を含めて評価する枠組みを示しています。制度の詳細は公開時点の公式情報を確認してください。
参考:経済産業省 制度構築方針

コメント