【質問】
AR560Sルータにファイアウォールを設定したところ、以下のようなアタックログが数分おきに繰り返し記録されるようになった。
問題はないか? また原因及び解消法は?
(日付・時刻) 4 FIRE FIRE ATTK (日付・時刻) Host scan from (IPアドレス) is finished
(日付・時刻) 6 FIRE FIRE ATTK (日付・時刻) Host scan from (IPアドレス) is underway
(この下は自動配信されるネット広告スペースです)
【回答】
AR550S, AR560S, AR570S他アライドテレシスのルータのファイアウォールにはアタック検出機能が備わっています。
このアタック検出機能は通知のみの動作であるため、通信を遮断することはありません。
但し、極めて多数のトラフィックが発生し、未確立(保留状態)となっているセッションがルータのキュー(送信を待つデータを保存するメモリー)の限界まで蓄積されてしまうと、それ以上のセッションを確立することは不可能となってしまうため、結果として一時的に通信不能状態になることがあります。
アライドテレシスのルータでは、ホストスキャンのアタック検出は、2分間に64回または128回のリクエストがデフォルトの閾値となっています。
1台のPCのブラウザが最大4セッション(設定を変えていた場合はさらに多い)までコネクションを作りますので、例えばプロキシサーバでは2分間に64回というデフォルト値は容易に越えてしまいます。
アタック検出では通信を遮断しませんので、正常動作の範囲でログが記録されていても問題ありませんが、ホストスキャンのアタック検出閾値を変更することによって、ログが記録されないように設定することが可能です。
アタックが検出されているIPアドレスが、ファイアウォールのprivate側で定義されているのであれば、以下のコマンドで閾値が変更できます。
set firewall policy=(ポリシー名) attack=hostscan outtrigger=(個数) time=(時間) |
上記設定中、ポリシー名欄にはファイアウォールに既に設定しているポリシー名と同じものを設定するようにして下さい。
time欄(分単位)で設定された時間内にouttrigger欄で設定した以上のイベントが発生した場合にログが記録されるようになります。
timeの最小値は1、outtriggerの最大値は4294967295なので、outtrigger=4294967295 time=1とすればhostscanがログに記録されることは無くなるでしょう。但しこの設定では本当のアタックを検知することもできなくなってしまいますので、ログやステータスを見ながら最適値を探って頂くのが良いかと思います。
なお、アタックが検出されているIPアドレスが、ファイアウォールのpublic側で定義されているのであれば、コマンドは以下のように変わります。
set firewall policy=(ポリシー名) attack=hostscan intrigger=(個数) time=(時間) |
このように、該当するアドレスがprivate側なのかpublic側なのかによってコマンドの使い分けをしなければなりません。
「hostscanログが記録されたので、set firewall policy attackコマンドで閾値を変更したが、全く効果が無かった」という記事がインターネット上に掲載されていましたが、該当記事ではprivate側とpublic側を取り違えて設定していたため、効果がなくて当然です。
なお、該当記事には「hostscanを誤検出する」「プロキシサーバからのパケットをルータがブロックする」という誤った情報が掲載されています。
先ほど述べたように、予め設定された閾値による検出動作であるため誤検出ではなく、またアタック検出によってパケットをブロックすることもありません。誤解なさらないようご注意下さい。
このページではHost scanに関して述べましたが、“SYN attack from (IPアドレス) is underway” “Denial
of service attack from (IPアドレス) is underway” が記録されていたときも同様です。それぞれattack=パラメータをsynattack,
dosfloodとして対応して下さい。