web-dev-qa-db-ja.com

スパマー辞書攻撃中にpostfixがリソースを食いつぶすのを止めますか?

スパマーが数千台のゾンビPCのボットネットを使用して、存在しないランダムなアドレス@ example.comに非常に高速でスパムを送信すると、postfixはVPSプロバイダーのリソース制限を使い果たして対処しようとします。具体的には、VPSによって900に制限されている非TCPソケットの数を使い果たします。 Virtuozzo linuxVPSのCentOS5で接尾辞2.3.3-2.1.el5_2を実行しています。

/var/log/maillog says:
Feb 23 06:26:22 postfix/smtpd[3938]: warning: connect #1 to subsystem private/proxymap: Cannot allocate memory
Feb 23 06:26:22 postfix/smtpd[3936]: fatal: socket: Cannot allocate memory
Feb 23 06:26:48 postfix/qmgr[17702]: fatal: socket: Cannot allocate memory

辞書攻撃には何千ものIPが関係しているため、ファイアウォールはやや困難です。

VPSプロバイダーは、次のパラメーターを調整することを提案しましたが、それらを何に設定するかについては提案しませんでした。

max_idle = 100s (default)
max_use = 100 (default)

Postfixとスパマー辞書攻撃で同じ問題を抱えている別の人を見つけました:

http://forums.vpslink.com/linux/394-you-hitting-socket-resource-limits-2.html#post5241

彼は変わった:

default_process_limit from 100 (default) to 10

...これで問題は解決しましたが、パフォーマンスが低下しました。

Postfix.org/TUNING%5FREADME.htmlをスキミングした後でも、ここでどのパラメーターを安全に調整する必要があるのか​​正確にはわかりません。

1
ane

残念ながら、Postfixはプロセス駆動型モデルに従っているため、負荷がかかった状態でのメモリ使用量が多いことは、その副作用の1つです。あなたはこれを試すことができます

/etc/postfix/master.cfから

# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       n       -       5       smtpd

maxproc列で、-をより小さな数に置き換えて、同時のsmtpdプロセスの数を制限できます。これにより、受信メールの量にある程度のゲートが提供されます。

もう1つの方法は、fail2banを解析して大量の配信不能メールを送信するアドレスのiptablesブロックを発生させるように構成できる/var/log/maillogを調べることです。

1
Dave Cheney

次のようなものを追加することを検討してください。

smtpd_recipient_restrictions =
        permit_auth_destination,
        permit_mynetworks,
        reject_unauth_destination,
        reject_unlisted_recipient

...あなたのmain.cfファイル。これにより、配信先のユーザーがいないことが判明するとすぐに、postfixが接続の一部をダンプします。魔法は reject_unlisted_recipient 、これを使用すると、システムで無効なユーザーが拒否されます local_recipient_maps 。そうすることで、ドロップされた各接続が次の接続を処理するために貴重なリソースを解放するため、進行中の処理の量を減らすことによって、ある程度のプレッシャーを取り除く必要があります。はい、スパマーはどのアドレスが無効であるかを判断できますが、スパマーはあなたのアドレス(攻撃をかわす)よりも送信に時間を浪費する(そして拒否され、帯域幅を浪費する)方が良いでしょう。

0
Avery Payne