AR ROUTER
CentreCOM (アライドテレシス Allied-telesis) ルータ設定に関するメモ


FIREWALL configuration

プライヴェイト アドレスからのアクセスを拒否する。

Admin arrouter> add firewall policy="fire" ru=1 ac=deny int=ppp0-0 prot=ALL
Admin arrouter> set firewall policy="fire" ru=1 rem=192.168.0.0-192.168.255.255

外部からプライヴェイトアドレスによるアクセスがあるわけがない・・のだが、現実にあるので、切るしかない。(^^;)
このほかに、172.16.なんとか他の設定もやっておくといいかも。IPアドレスの範囲は、ハイフンでつないで指定する。

外部から到来する自前(Global)アドレスからのアクセスを拒否する。

Admin arrouter> add firewall policy="fire" ru=2 ac=deny int=ppp0-0 prot=ALL
Admin arrouter> set firewall policy="fire" ru=2 rem=AAA.BBB.CCC.DDD-EEE.FFF.GGG.HHH

マサカとは思うが、一応これもやっとくべき・・だよね。

policyは、任意の文字列。区分できればなんでもいいと思う。intは適用するインタフェイス。eth0とかeth1とか。acは、actionで、deny or allow。

ruは、rule番号で、これが小さい順に評価され、マッチするとdeny(拒否) か allow(通過)になる。

firewallをenableにすると、明示的にallowしない限り、すべてのアクセスは拒否されるので、内部から外部へのアクセスを全部OKにするためには、

Admin arrouter> add firewall policy="fire" ru=30 ac=allow int=eth0-0 prot=ALL

・・とか設定しておく必要がある。

なお、ARルータは特に何も設定しなくても Directed ブロードキャストには反応しないようだ。

それから、

firewallを設定すると、なぜか勝手にsshのポートが開いてしまう。これを閉じるために

Admin arrouter> add firewall policy="fire" ru=10 ac=deny int=ppp0-0 prot=tcp po=22

・・と設定し、22番ポートを閉じる必要がある。まあ、そのままSSHを使ってもいいんだけれど。

ちなみに、ruleの記述追加を多くしていくと、ルータのスループットが低下するのではないかと危惧していたが、計測してみたところ、影響は認められなかった。まだまだ大丈夫だ! (でも、8Mbps以上のADSLにするとどうなんだ??)


AR320のスループット

AR320は、インタフェイスが10BASE-Tなので、ラインスピードは10Mbps。また、カタログには、スループット=9.42Mbpsと書いてある。しかし現実には、こんなに出るわけはない。

ということで、12MbpsのADSLにしたときにAR320のスループットを確認してみたが、思ったより、出てないみたい。ちなみに、モデムのリンク速度は、ほぼ11Mbpsである。
通常使っている分は、スループットで5Mbps出るってことはあまりない。で、拡張NAT や FIREWALL、それに IP FILTER 込みの実効スループットということでいろいろテストしてみたが、けっきょく 5.9Mbps と、いうことになった。この値は某速度計測サイトで記録した最高値と一致する。
もちろん FIREWALL設定を切るとなんぼか速くなり、6.6Mbps程度出る。NATとFILTERも止めれば、さらにいくらか速くなるのだろうが、これらはちょっと切れない。

リンク速度から推測して、もう少し速くてもいいのではないか、AR320がボトルネックになっているのではないか、今のままでもルータを高スループットのものに換えれば8Mbps程度は出る可能性があるのでは・・・と思いを巡らすのであった。
なお、サーバやPCのRWIN等の設定は、直で接続してスループット80Mbps程度出ているので、もういじるところは無い・・・。

後日譚: けっきょく、ルータをスループット99Mbpsが売り文句のものに変更したら、実効速度は8.5Mbpsを超えた。AR320は、せいぜいADSL8M以下用のルータと考えた方がいいだろう。


NTP configuration

Admin arrouter> enable ntp
Admin arrouter> set ntp utc=+09:00:00
Admin arrouter> add ntp peer=AAA.BBB.CCC.DDD

ARルータは、NTPでの時刻同期が可能である。これで正確なLOGを採ることができる。
最初の行でntpを有効にする。次にUTCからのオフセットを設定する。JSTだから、9時間進んでいる。
最後に同期をとるNTPサーバのIPアドレスを設定する。


LOG module configuration

Admin arrouter> disable log reception
Admin arrouter> set log utcoffset=+09:00:00
Admin arrouter> create log out=1 dest=syslog server=AAA.BBB.CCC.DDD secure=no
Admin arrouter> add log out=1 filt=1 severity=>2 act=process

ARルータは、他のARルータからのログを受信して一緒に表示する機能があるが、最初の行は、これを禁止する。次は、UTCからのオフセット。3行目が、出力設定。出力番号で括るためにoutで番号を付ける。
destでsyslog型式を指定し、serverで指定したIPアドレスのホストへ転送する。当然ながら受け取るホスト側では受け入れのための設定が必要である。ここで secure=no としておくと、パスワード変更等の情報は出力されなくなる。
最後の行でfilt番号を付けて、例のようにseverity(重要度)が2以上のみ、とか、AUTH関係だけとかの指定を行う必要がある。


SNMP configuration

Admin arrouter> enable snmp
Admin arrouter> create snmp community=communityname
Admin arrouter> add snmp community=communityname manager=AAA.BBB.CCC.DDD

最初の行でSNMPを有効にする。次にSNMPのコミュニティ名を設定。
最後に、SNMPでのやりとりを許すホストのIPアドレスを設定する。

以下は、SNMPでトラフィック監視するための MRTG の設定ファイル(mrtg.cfg)例。個人でmrtg走らせても、あまりメリットないですが。(^^;)

WorkDir: /usr/local/www/path-to/mrtg
options[_]: growright, bits
IconDir: /path-to/mrtg/images
Language: euc-jp
RunAsDaemon: Yes
Interval: 5

######################################################################
# System: AR320
# Description: CentreCOM AR320 version 2.2.2-03 13-Nov-2001
######################################################################
### Interface 3 >> Descr: 'ppp0' | Name: 'ppp0' | Ip: 'WWW.XXX.YYY.ZZY' | Eth: '' ###

Target[WWW.XXX.YYY.ZZZ_3]: 3:communityname@WWW.XXX.YYY.ZZZ:
SetEnv[WWW.XXX.YYY.ZZZ_3]: MRTG_INT_IP="WWW.XXX.YYY.ZZY" MRTG_INT_DESCR="ppp0"
MaxBytes[WWW.XXX.YYY.ZZZ_3]: 1000000
kilo[WWW.XXX.YYY.ZZZ_3]: 1024
Title[WWW.XXX.YYY.ZZZ_3]: Traffic Analysis for AR320
BodyTag[WWW.XXX.YYY.ZZZ_3]: <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#53017E" ALINK="#FA4305" STYLE="margin-left: 50px;margin-right: 25px">
PageTop[WWW.XXX.YYY.ZZZ_3]: <SPAN STYLE="font-weight: bold;font-size: 20pt;color: #0000A0;letter-spacing: -2px">Traffic Analysis for whitebase</SPAN>

HTTP configuration

Admin arrouter> disable http server

ファームウエアのVersionが旧い場合、CodeRedなどのWormによって不具合が生じる可能性があるらしい。 よって、httpのポートを塞ぐ。


INTERFACE configuration

Admin arrouter> set int=ppp0 mtu=1448

AR320等でフレッツADSL利用の場合、デフォルトのmtuは、1454になっている。しかし、一説によると1448の方が誤差の範囲(?)で高速だというハナシもある。
というわけで、mtuを変更する場合は上記コマンドを投入する。

ところが・・・MTU=1448にすると、mss は MTU-40=1408 になるのが一般的だと思うのだが、AR320では mss=1328になってしまう。つまり、mss=MTU-120 なのだ。なぜこう(mss=1328)なるのか、だいぶ悩んでしまった。NTTのフレッツ網やプロバイダ側でmssの制限がかかっているのではと疑ってメイルで問い合わせてみたが、どうもAR320の実装がそうなっているらしいのである。
前述の「1448の方が誤差の範囲(?)で高速」というフレッツADSLとATMペイロード(48バイト)に絡むハナシは、mss=MTU-40 というのが前提であるため、AR320ではMTU=1448にしてもこれには乗れない。

ではどうするのがいいのかというと、mss+80(各種ヘッダ)=48の倍数 になるようにMTUを調節するのだ。AR320でフレッツADSLの場合、MTUは1454以下にはならない(setコマンドで1454以上にしても実際は最大1454に自動調整される)ので、
Admin arrouter> set int=ppp0 mtu=1432
・・・と、する。これで mss=1312 になる。1312+80=1392=48*29 である。
これで本当にいくらか高速化するのかというと、ぜんぜん確認していないのでわからない。(^^;)


HOSTSCAN等の誤認

クライアントPC → PROXYサーバ → ARルータ と経由してWebブラウジングしているわけだが、クライアント(複数)からのリクエストが多くなると、ARルータが PROXYサーバから外部へ HOSTSCAN や SYNATTACK 等 が あると勘違いするのか、PROXYからのパケットをブロックしてしまうのである。(3分程度で回復するのだが)

これを抑止するため、以下の設定を実施してみたが、まるで効果が無い。ウソだろ、おぃ。(^^;)

Admin arrouter> set firewall poli="fire" attack=hostscan outt=4294967295 ti=1
Admin arrouter> set firewall poli="fire" attack=synattack outt=4294967295 ti=1

で、アタマに来てサポートに連絡。そしたら、次のような回答が・・

結論から申し上げますと、誠に恐れ入りますが 現象の回避はできかねます。また、攻撃検出機能を無効にする設定もできかねます。
このため、攻撃の通知イベントを発生させるしきい値を設定することにより通知イベントを発生しにくく設定していただいておりますが、残念ながら現在の設定が本製品に設定できる最大値となります。

これは困った。しかし、なぜSPIを切れないんだ??
それ以前に、ホストスキャンの類が ホントに 1分間 4294967295回以上 発生したというのか??

その後、以下のように設定することで、SYN ATTACKについては WARNINGが出なくなった。

Admin arrouter> set firewall poli="fire" attack=synattack outt=0 ti=1

ただし、同じことを HOST SCANの方で設定しても逆効果だった。もう、わけわからん。(T_T)


代理応答の抑止

WebサーバのLOGに timeoutエラー(408)が頻繁に出るようになった。具体的には、外部ネットからサイトのページを見るときに、一部の画像ファイルのGETができなかったり、ブラウザが「タイムアウトしました」とか「このページにはデータがありません」とか文句を言ってくる。(もちろん、内部ネットからは何の問題もなくGETできるのである)

sh fire evedeny event を見ると、TCP open failed などというエラーが大量に発生している。
ノイズ等、なんらかのネットワーク障害が発生して接続しにくい状況にあるとき、ARルータがSYNパケットへの代理応答をしてしまうことで、さらに接続しにくい状況にハマってしまうようだ。

  1. 外部→SYN→ルータ 外部クライアントからサーバに向けて接続要求。
  2. 外部←SYN/ACK←代理←ルータ→SYN→サーバ ルータ代理応答。が、SYN はサーバに届かなかった。
    あるいはサーバからの SYN/ACK がルータに届かなかった。(この時点で TCP open failed)
  3. 外部→ACK→ルータ→サーバ クライアントは SYN/ACK を受け取っているので、ACKを返す。
  4. 外部←RST←ルータ←サーバ サーバは、接続確立していないので、RSTを返す。
  5. 外部→GET→ルータ→サーバ RSTを返されても、ブラウザは接続確立してると思っているのでGETを送る。
  6. で、数回GETを送るが、結局「このページにはデータがありません」・・になる。

SYN/ACKが返ってくるので、もうSYNは再送できないわけだ。 代理応答を止めると、ルータ〜サーバ間に問題があっても、何回かSYNを再送することで、どうにか通信ができる。
本来はSYN-Attack対策のための機能らしいのだが、ここは勝手に代理応答されてしまっては困るのである。 よって、次のコマンドにより、代理応答を抑止する。

Admin arrouter> disable firewall poli="fire" tcpsetupproxy

とりあえずは、これで 408エラーは出なくなる。が、障害の本当の原因は別にあるはずなので、しっかり探すように。(^^;)

なお、代理応答をenableにすると、mss=536 になってしまう。これは、AR320がmssを通知してくれないからであろう。(mssが通知されない場合、TCPのデフォルトでmss=536として設定されるらしい)

Inter-Networking Top | router (cisco) | Servers | Create Your Own Web Page | ZCR/bLOG