ぽよメモ

レガシーシステム考古学専攻

RTXシリーズでのフィルタ設定

メリークリスマス。地獄のインターネット世界にようこそ。甘いケーキの代わりにRTX1100いかがですか。下手をすればホールケーキよりもお安いですよ。
さて、本日はクリスマスですがRTX1100のフィルタ設定をちゃんとお勉強しないとなぁと思っていたので軽くだけやります。

現在の構成は以下のようになっています。
lan1: デスクトップやノートパソコン・スマホ等が接続されている宅内LAN(192.168.0.0)
lan2: PPPoEでインターネットに接続
lan3: DMZ(192.168.10.0, サーバーに192.168.10.2を振る)

RTX1100には二種類のフィルタが存在します。

  1. 静的フィルタ
  2. 動的フィルタ

名前の通りで、静的に(常に一定に)作用するフィルタと、動的(場合により変化して)作用するフィルタです。負荷は当然動的フィルタのほうが大きく、使い分けが大事なようです。
勉強のためにあちこちのサイトを覗いたのですが、フィルター番号についてはまちまちでした。とりあえずわかったのは、

  1. フィルタ番号自体に特に意味は無い(ただの識別子)
  2. 適用した順に作用

自分でルールを設定してやるのが良さそうです。とりあえずここでは簡単に、

lan番号in=0,out=1フィルタ番号
1001= 1001
2101= 2101
3001= 3001

こんな感じにしておこうかと。また、in/out共用のフィルタには2を設定しようと思います(例: 2201)。
こんな感じでルールを設定している人のものを見ると、フィルタ番号の部分が3桁もあったり(そんなに設定するんだろうか)、VLANの有無があったり(むずかしくてわからないよぅふええ)、といった感じで少し長く感じたので短くしてみました。足りなければ増やせばよいのだよ(適当

静的フィルタ

フィルタの適用順は静的フィルタ→動的フィルタの順なので、まずは静的フィルタの設定からしていきます。

1. プライベートIPからのアクセスを遮断

これはlan2に設定します。IPアドレスを偽装(IPスプーフィング)して行われる攻撃を防ぐことができるらしいです。

# ip filter 2001 reject 10.0.0.0/8 * * * *
# ip filter 2002 reject 172.16.0.0/12 * * * *
# ip filter 2003 reject 192.168.0.0/16 * * * *

同時にoutへもこれを適用しておきます。

# ip filter 2104 reject * 10.0.0.0/8 * * *
# ip filter 2105 reject * 172.16.0.0/12 * * *
# ip filter 2106 reject * 192.168.0.0/16 * * *

2. 不正利用されやすいポートの遮断

これもlan2に設定。

# ip filter 2207 reject * * udp,tcp 135 *
# ip filter 2208 reject * * udp,tcp * 135
# ip filter 2209 reject * * udp,tcp netbios_ns-netbios_ssn *
# ip filter 2210 reject * * udp,tcp * netbios_ns-netbios_ssn
# ip filter 2211 reject * * udp,tcp 445 *
# ip filter 2212 reject * * udp,tcp * 445

netbios_ns-netbios_ssnとはポート番号137~139のことのようです。聞いたことがないので調べましたが、こんな感じらしいです。なんでポート番号にしないんだろう…

ポート番号サービス名備考
137netbios-nsWindowsが周辺のパソコンのIPアドレスを調べるために使う
138netbios-dgmWindowsが周辺のパソコンを調べるために使う
139netbios-ssnWindowsが周辺のパソコンやプリンタと接続するために使う
445Direct Hosting of SMBSMBをNetBIOSを介さずにホストする際に用いられる

これらのポートをもし外側から利用する場合、これを設定すると使えなくなることに注意が必要です。
参考:
ウェルノウンポート番号
445/tcpポートへのアクセス・ログがファイアウオールに大量に記録される
フィルタリングで遮断すべきポート番号(その2)

3. 外部からのtelnetを遮断

外部からtelnetされないようにしておきます。

# ip filter 2013 reject * * tcp * telnet

4. ICMPパケットの許可

pingやtracert(traceroute)などがこれを利用しています。

# ip filter 2014 pass * 192.168.0.0/24 icmp

5. WWWサーバーおよびSSHサーバーへのパケットのうち最初だけ通過

残りのパケットは動的フィルタで処理します。

# ip filter 2015 pass * 192.168.10.2 tcpflag=0x0002/0x0017 * www
# ip filter 2016 pass * 192.168.10.2 tcpflag=0x0002/0x0017 * 22

6. 「source-routeオプション付きIPパケット」を遮断

通常悪用しかされないので塞ぐ、ということのようです。→参考:source-routeオプション付きIPパケットに対するフィルタリング

# ip filter ip filter source-route on

7. 終点IPアドレスがDirected Broadcastアドレス宛になっているIPパケットを遮断

Smurf attackから防御するためにホスト部が"1"であるIPアドレス宛てのパケットを遮断します。Smurf attackとは、要するに送信元を偽装してpingを大量に送りつけ、ネットワークやコンピュータに負荷を与える攻撃方法らしいです。

# ip filter directed-broadcast on

参考:
directed broadcastパケットのフィルタリング
Smurf攻撃

8. すべて遮断/すべて許可

以上に該当しないパケットを許可or遮断します。どこでも使えるので特別な番号を与えておきます。

# ip filter 4000 reject * *
# ip filter 5000 pass * *

動的フィルタの設定

静的フィルタでは常にその入り口を開いている必要があるのですが、動的フィルタではその都度必要に応じて開くという動作が可能になり、セキュリティが増します。
フィルター番号はYAMAHA公式と揃えておきます

1. 各種通信の許可

# ip filter dynamic 100 * * ftp
# ip filter dynamic 101 * * www
# ip filter dynamic 102 * * domain
# ip filter dynamic 103 * * smtp
# ip filter dynamic 104 * * pop3
# ip filter dynamic 105 * * tcp
# ip filter dynamic 106 * * udp

2. SSHできるようにする

YAMAHAの公式サイトではtelnetを通す設定を紹介していますが、LinuxサーバーならSSHするだろうと思うのでこっちを設定します。

# ip filter dynamic 200 192.168.0.0/24 * 22

[2015/12/26 追記] これではダメでした。以下の様に変更します。

# ip filter 2017 pass * 192.168.10.2 22
# ip filter dynamic 200 192.168.0.0/24 * filter 2017

[2015/12/28 追記] 上のやつでもダメでした。動的フィルタは諦めて静的に変えます。

# ip filter 2118 pass * * 22
# ip filter 2019 pass * * established
# ip lan3 secured filter in 2019 4000
# ip lan3 secured filter out 2118 5000 dynamic 100 101

3. wwwサーバーへのパケットを通す

# ip filter dynamic 201 * 192.168.10.2 www

フィルタの適用

後はこれらを適用していきます。

# pp select 1
pp1# ip pp secure filter in 2001 2002 2003 2207 2208 2209 2210 2211 2212 2013 2014 2015 2016 4000 dynamic 201
pp1# ip pp secure filter out 2104 2105 2106 2207 2208 2209 2210 2211 2212 5000 dynamic 100 101 102 103 104 105 106
# pp select none
# ip lan3 secure filter in 2019 4000
# ip lan3 secure filter out 2118 5000 dynamic 100 101
# save

…合ってるんかな
参考
自社サーバーを公開(1つの固定グローバルIPアドレス / DMZセグメント : LAN3)