パソコン鳥のブログ

アクセスカウンタ

zoom RSS メールサーバへのSMTPサービス拒否攻撃への対処

<<   作成日時 : 2014/01/09 23:20   >>

トラックバック 1 / コメント 0

メールサーバへのSMTPサービス拒否攻撃への対処方法です。

接続数を制限


あるIPアドレスからの、メールサーバへの接続数を制限します。
ここでいう「接続」は次のものです。
・あなたのメールサーバのアカウントへのメール配送の為の、他のメールサーバからの接続
・メール送信の為の、Thunderbird や Outlook 等のメールクライアントからの接続

/etc/postfix/main.cf

smtpd_client_message_rate_limit = 10
anvil_rate_time_unit = 60s
smtpd_client_event_limit_exceptions = $mynetworks


smtpd_client_message_rate_limit
単位時間あたりの、SMTPクライアントのメールサーバへの接続数の最大数を制限します。
この接続とは、メッセージ配送要求です。
1つのメールに複数の To,Cc が指定されていても、1つの配送要求として数えます。

メッセージ配送要求とは以下のもので、これらを制限します。
・あなたのメールサーバのアカウントへのメール配送の為の、他のメールサーバからの接続
・メール送信の為の、Thunderbird や Outlook 等のメールクライアントからの接続


anvil_rate_time_unit
単位時間を指定します。
例えば 60s を指定すると、単位時間は60秒となります。


smtpd_client_event_limit_exceptions
ここで指定されたSMTPクライアントには適用されません。
カンマ区切りで複数ネットワークを指定できますが、少なくとも $mynetworks を指定しておかないと、自サーバの利用者からの接続自体も制限することになります。


さて、smtpd_client_message_rate_limit で指定した制限を超えて接続してきた場合は、どうなるのでしょうか?
この場合、あなたのメールサーバには次のようなログが残ります。

/var/log/maillog

warning: Message delivery request rate limit exceeded: YYY from ZZZZZ[xxx.xxx.xxx.xxx] for service smtp

YYY の箇所は、smtpd_client_message_rate_limit で指定した値になります。
ZZZZZ は接続元ホスト名、xxx.xxx.xxx.xxx はIPアドレスになります。

設定値 smtpd_client_message_rate_limit や anvil_rate_time_unit は、メールサーバの利用者数や、流れるメールの量によって調整する必要がありますが、上記ログが出力されているかを確認しながら、調整して下さい。
通常の利用時にログが出力される場合は、設定値が小さいので、値を大きくします。

このようなログが出力される場合(smtpd_client_message_rate_limit で指定した制限を超えて接続してきた場合)、あなたのメールサーバのアカウントへのメール配送の為の、他のメールサーバからの接続では、その接続がエラーとなります。
そのメールサーバには、次のようなログが残ります。

/var/log/maillog

said: 450 4.7.1 Error: too much mail from xxx.xxx.xxx.xxx (in reply to MAIL FROM command))

但し、一定時間後に再送の為に、再度そのメールサーバから接続がなされます。
結果、メール配信に遅延が出ますが、メールは届きます。


一方、メール送信の為の、Thunderbird や Outlook 等のメールクライアントからの接続では、その接続がエラーとなり、Thunderbird や Outlook 等でメール送信が失敗します。


プロセス起動数を制限


メールサーバは、メール送信の為のメッセージ配送要求を受けると、その処理の為に色々なプロセスを起動します。
このプロセスの最大の同時起動数を指定します。

smtpd_client_message_rate_limit では、複数IPアドレスからのサービス拒否攻撃では、全体の接続数は多い場合でも、1つのIPアドレスからの接続数が少ないと制限にかかりません。

一方、プロセス起動数の制限では、複数IPアドレスからのメッセージ配送要求を制限できます。

/etc/postfix/main.cf

default_process_limit = 30

default_process_limit
プロセス起動数を指定します。
Postfix ではメール配送の為に pickup , cleanup , smtpd 等といったプロセスが起動しますが、この設定値は pickup , cleanup , smtpd 等 それぞれの起動数の制限値となります。
全プロセス数の合計ではありません。

設定の反映


以上の設定は、次のようにして Postfix に反映させます。

/etc/init.d/postfix reload




参考


Postfixパフォーマンスチューニング
postfixで送信元毎の同時送信数を制限する方法 - 理想未来はどうなった?
http://www.postfix-jp.info/trans-2.1/conf/master.cf.jp

テーマ

関連テーマ 一覧


月別リンク

トラックバック(1件)

タイトル (本文) ブログ名/日時
スパムメールの踏み台にされてしまった!
先日、管理しているメールサーバがスパムの踏み台にされてしまいました。 メールサーバのあるユーザアカウントのパスワードが漏れてしまったようで、そのアカウントを使って、スパムメールが大量に送信されました。 スパムメールの送信開始が休日の夜中に始まった為、異常に気付いて対処するまでに12時間かかってしまいました。 ...続きを見る
パソコン鳥のブログ
2014/03/06 23:25

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
メールサーバへのSMTPサービス拒否攻撃への対処 パソコン鳥のブログ/BIGLOBEウェブリブログ
文字サイズ:       閉じる