YAMAHAルーターの動的フィルタ

動的フィルタの詳細はドキュメントに記載されているが、ドキュメントからはわからない(分かりづらい)事項もあったのでメモ。

動的フィルタのタイムアウト時間

 ip filter dynamicコマンドでは、timeoutオプションを指定することでデータが流れなくなったときにコネクション情報を解放するまでの秒数を設定できるが、これはip filter dynamic timerコマンドで設定されたプロトコル毎のタイムアウト時間より長くできない(これはYAMAHAのサポートにも確認済み)。
 例えばudpのタイムアウト時間はip filter dynamic timerの方でデフォルト30秒になっているので、timeoutオプションで30秒をこえる長さを指定したいときには、別途ip filter dynamic timerコマンドのudp-idle-timeを長くしておく。
 そしてudp-idle-timeより早くタイムアウトさせたい動的フィルタについては明示的にタイムアウト時間を指定する(以下の例のdomain(DNS)の場合は、ip filter dynamic timerdns-timeout=5としてもOK。)。

ip filter dynamic 99 * * domain timeout=5

静的フィルタのestablished

ip filterコマンドではプロトコルでestablishedが指定できるが、動的フィルタを使う場合は基本的には不要。公式資料のp.11からは、動的フィルタが使えるならそっちを使ったほうが良いと読めるので。

www

wwwは、静的フィルタでは単にhttpのポート番号80を表すが、動的フィルタの方では80と443の両方を表す。
動的フィルタの方で80または443のみ扱いたいときは、それぞれhttpまたはhttpsを指定する。
静的フィルタで443を通したい(またはブロックしたい)場合はhttpsを指定する。

動的フィルタのimap

ニーモニック表にはimapやimap3が定義されているが、993ポートを使ったSSL/TLSありのIMAPSは扱えない。

ヘアピンNAT使用時の動作

out側とin側の両方に動的フィルタが作られる。

セッションの途中でポート番号が変更になった場合の動作について

 アプリケーションを指定した場合、FTPなど一部を除いて別のセッションとして動的フィルタが作成される。
 アプリケーションを指定せず、手動で設定した場合、大抵の場合は制御用のコネクションとデータ転送用のコネクションからなる一つのセッションとしてまとめられる。ただし、トリガーをtcpsynで指定した場合はなぜかまとめられない。この辺の動作はいまいち不明確。

  61568-1  85       T         T 192.168.0.31:49185    > 17.57.152.32:993      E
  61568-2  85       D         T 192.168.0.31:49186    > 17.57.152.32:993      E

現在のフィルタ設定

 基本的にはここを参考にして設定している。  filter 83-85, dynamic filter 85-87は本来必須ではないけど、将来的に個別に制御したい場面があるかもしれないので細かく分けてる。 また、トリガーを明記した動的フィルタを使うと、1つのセッションが複数のコネクションを持つときに以下のような感じに通信を束ねて くれて見栄えがいい。 → 通信を束ねるよりも見た目がシンプルな方がいいのでシンプルな設定に直した。

ip lan2 secure filter in 10 20 21 30 90 91 999 dynamic 90 91 92
ip lan2 secure filter out 11 20 21 31 22 82 998 dynamic 80 81 82 83 84 998 999

ip filter 10 reject 0.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/24 *
ip filter 11 reject * 0.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/24
ip filter 20 reject * * udp,tcp 135,netbios_ns-netbios_ssn,445 *
ip filter 21 reject * * udp,tcp * 135,netbios_ns-netbios_ssn,445
ip filter 22 reject * * icmp
ip filter 30 pass * 192.168.0.0/24 icmp 3,11,12
ip filter 31 pass 192.168.0.0/24 * icmp 3,8,11,12
ip filter 82 pass * * udp * https    # QUIC
ip filter 90 pass * (自宅サーバー1のIPアドレス) udp * (自宅サーバー1のポート)
ip filter 91 pass * (自宅サーバー2のIPアドレス) tcpsyn * https,www
ip filter 997 pass * * established * *
ip filter 998 pass * * * * *
ip filter 999 reject * * * * *

ip filter dynamic 80 * * domain syslog=off timeout=5
ip filter dynamic 81 * * www syslog=off timeout=7440
ip filter dynamic 82 * * filter 82 out 82 syslog=off timeout=300
ip filter dynamic 83 * * ping syslog=off timeout=60
ip filter dynamic 84 * * ntp syslog=off timeout=2
ip filter dynamic 90 * (自宅サーバー1のIPアドレス) filter 90 out 90 syslog=off timeout=120
ip filter dynamic 91 * (自宅サーバー2のIPアドレス) https syslog=off timeout=7440
ip filter dynamic 92 * (自宅サーバー2のIPアドレス) http syslog=off timeout=10
ip filter dynamic 998 * * tcp syslog=off timeout=7440
ip filter dynamic 999 * * udp syslog=off timeout=300
ip filter dynamic timer tcp-syn-timeout=240 tcp-fin-timeout=240 tcp-idle-time=7440 udp-idle-time=300 dns-timeout=5