2006年7月18日

[postfix-jp: 2170] sleep中にコネクションが切れたら終了するパッチ (Re: sleep中にコネクションが切断されたことを検出したい)

さとうです。

 先日こちらで質問して助言いただいた、sleep中にコネクションの切断を検知
して、切れたと同時にsmtpdも落としたい、ということを実現するためのパッチを
公開しました。

http://k2net.hakuba.jp/pub/postfix-sleep.patch

 これは、Postfix-2.3以降で利用できる sleep という機能を使って、応答の遅
延を掛けることでスパム対策を行っているような場合に、プロセス数の増加をな
るべく少なくするために、遅延している間に相手が接続を切ったら、smtpdもす
ぐに終了するためのパッチです。


 また、先日からこの週末あけまでにかけて、2つのまったく別の環境で運用し、
パッチを当てたPostfixにてログを採取できました。

 下記にその結果を添付します。秒は遅延を開始してからの時間を10秒毎に四捨
五入した時間帯で、LC数が途中でlost connectionとなった数、PL数がこちらの
返答前にDATAコマンドを送ってきた数、です。
 切断検出率は、このパッチによりクライアントからの切断が検出できた割合で
す。これは、closeやshutdownが行われずに接続が切れた場合は、このパッチで
は切断の検出ができないためです。


【環境A】

切断検出率 80%

秒 LC数 PL数 %
0 62 82 7%
10 131 1 6%
20 310 4 15%
30 805 101 43%
40 201 9%
50 57 2 3%
60 84 98 9%
70 1 0%
80 3 2 0%
90 180 8%

総数 2124
35秒まで 1496 70%
45秒まで 1697 80%
65秒まで 1938 91%


【環境B】

切断検出率 85%

秒 LC数 PL数 %
0 234 655 4%
10 7737 369 37%
20 2185 68 10%
30 5663 392 27%
40 113 9 1%
50 708 32 3%
60 1131 1705 13%
70 46 14 0%
80 36 5 0%
90 928 102 5%

総数 22132
35秒まで 17303 78%
45秒まで 17425 79%
65秒まで 21001 95%


 この結果から、多くのスパマーは10秒や30秒以内の短いタイムアウトを設定し
て送信していることがわかります。(環境A/Bの傾向の違いは、届くスパム種類以
外に、sleep以外に掛けている制限の違いによるものも考えられます。)
 遅延は65秒ほど掛ければ現在のところ十分で、遅延によるプロセス数の増加な
どがどうしても問題になる場合には、35秒ほどでも遅延による効果の7割以上が
得られる、ということがわかりました。
 90秒にも山がありますが、これは特定の送信元と考えられるため、このスパム
業者らしい接続要求に対してのみ、特別に長めの遅延を掛けるか、確実に特定で
きるならそのままRejectするようにしたほうがよいと考えられます。


 このMLにおいて、神戸さんや岩本さん、特に柳澤さんには、非常に参考になる
アイデアと助言をいただきました。ありがとうございました。


#このパッチ(または同等の機能)をPostfixに取り入れて欲しいと思うのですが、
#そのためには本家Postfix-MLなどでお願いしないといけないでしょうか。
#出来ればパッチ当てずに使えるようになりたいのですが。


--
佐藤 潔 (SATOH Kiyoshi) http://d.hatena.ne.jp/stealthinu/

_______________________________________________
Postfix-jp-list mailing list
Postfix-jp-list@xxxxx
http://lists.sourceforge.jp/mailman/listinfo/postfix-jp-list

投稿者 xml-rpc : 2006年7月18日 20:21
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/39632
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。