こないだからMRTGでサーバの負荷状況を監視してるのですが、なんだか土曜日あたりからやけに重くなっていて、どうも1時間おきごとに負荷が高くなっているようでした。
それで調べてみると、うちのドメイン宛にユーザー名は辞書を使ってspamが送られてきており、Return-Pathに書いてある存在しないドメイン宛にそのエラーを返そうとして、重くなっていることがわかりました。
ちなみに送ってきているIPは fi01-79b11f.kyoto.flets.isao.net [61.121.177.31] からで、エラーメール数は2,600でした。
isao.netへの連絡は後でするとして、現在もspamを送り続けてきているようなので、とりあえず一時的にこのIPからの接続をリジェクトするようにする。
postfixを使っているので、/etc/postfix/main.cf の設定に追加。
smtpd_client_restrictions = permit_mynetworks check_client_access hash:/etc/mail/reject_client
/etc/mail/reject_client ファイルを作成。
61.121.177.31 REJECT
postmapコマンドでreject_sender.dbを作成
# postmap /etc/mail/reject_client
送信元・送信者による制限 を参考にした。というかそのまんま。
とりあえずこれで新規には来れなくなったはずですが、山のように溜まっているエラーメールは残っているので、これを消す。
これはpostsuperコマンドで行うことが出来る。mailqでspamのエラーメールだけであることが確認して、全てのキューに溜まっているメールを削除する。
# postsuper -d ALL deferred # postsuper -d ALL defer
postsuper.1 にpostsuperの日本語マニュアルがある。
なのだけど、うちのpostfixはVine-2.1.5のバージョンからあげていなくて、postsuperにこの削除機能が入っていなかったので、まず新しいバージョンへ上げることにする。
postfix-2.1.0を落としてきて、環境を引き継ぐようにupgradeでインストールする。そのためrpmで入っているものは消さずにそのまま残しておく。
% make # make upgrade
ただ、/etc/groupにpostdropグループが必要、ということだったので追加し、また2.0以降はlocal_recipient_rejectの扱いがかわるので注意、というメッセージが出たが、これはうちでは関係しなかったのでそのままにする。
LOCAL_RECIPIENT_READMEに関連情報。