[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[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) <satoh@xxxxxxxxx> http://d.hatena.ne.jp/stealthinu/

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

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

[検索ページ] [Postfix-JP ML Home]