あらかじめ警告しておく。 MIRROR は危険なターゲットであり、 conntrack と NAT が登場した際にひとつのコード例として書かれたものにすぎない。非常に危険な状況を招き、使用を誤ると深刻な DDoS/DoS に陥る可能性がある。他のいかなる手段を用いてでも MIRROR の使用は避けるべきだ。セキュリティ上の不備を理由に、このターゲットはカーネル 2.5 及び 2.6 からは削除されたのだ! |
MIRROR ターゲットは、あくまでも実験的な、デモンストレーション用のターゲットで、使用は慎むべきだということを警告しておく。というのも、これは酷いループを引き起こし、最悪、サービス不能 (Denial of Service) に陥ることもあるからだ。 MIRROR ターゲットは、 IP ヘッダの送信元と宛先を入れ替えてパケットを送り出すためのもの。大変おかしな効果をもたらすが、このターゲットのせいで自分のマシンをクラックする羽目になり真っ赤になって怒るクラッカーがいたなんて話は、賭けてもいいが、今まで一度も耳にしたことがない。このターゲットで成し得る効果は、控えめに言っても狂気の沙汰だ。例えばここに、80番ポートに対して MIRROR ターゲットを設定してある A というコンピュータがあったとしよう。ホスト B が yahoo.com からやってきて、ホスト A の HTTP サーバにアクセスを試みたとすると、 MIRROR ターゲットは yahoo ホスト自身の WEB ページ (そこがリクエストの出どころだから) を返す結果となる。
注意は、 MIRROR ターゲットは INPUT、FORWARD、PREROUTING チェーンおよび、それらから呼ばれたユーザ定義チェーンでしか有効でないこと。また、 MIRROR ターゲットの結果として出ていくパケットは、filter、nat、mangle のどの通常テーブルからも見えない。見えたとしたら、ループをはじめとして様々なトラブルの原因となってしまう。ここが、このターゲットが頭痛の種と成り得る理由であり、しかも何が起こるかは皆目見当がつかない。例を挙げよう。あるホストが MIRROR ターゲットを使用している別のホストへ、成りすまし (spoof) を掛けたパケットを TTL 255 で送ったとする。なお且つ、そのパケット自体、やはり MIRROR ターゲットを使っている第3 のホストから来たように偽装している。するとパケットは、所定のホップ数が完結するまで、ひっきりなしに往き来を繰り返し始める。仮にホップが 1 だったとしても、パケットの往き来は 240 から 255回に達する。クラッカーにとっては悪くない話だ。つまり、1500バイトのデータを送りつければ、コネクションの 380k バイトを食い尽くすことができる。クラッカー、悪戯者、といった類の輩にとって、こんなおいしい話はない。
Linux カーネル 2.3, 2.4 で機能する。安全面での根本的欠陥のため、カーネル 2.5 及び 2.6 からは削除された。このターゲットは使ってはならない。 |