3
6月
0

Backscatter対策を考えてみた。


Backscatterというのは例えばウチのメールサーバーのドメインがexample.jpだとすると、スパマーがこのFromのFQDNにexample.jpを使ってあっちこっちにスパムをばら撒いた結果、バウンスしたメールがウチのメールサーバーに戻ってくる、いわゆるバウンススパム?といったところでしょうか?

そこで、ポリシーサービスを使ってこれをある程度抑止することはできないものかと考えてみました。

1.自ネットワーク内(postfix自身が外部への配送を許可するネットワーク)からのリクエストならばポリシーサービススクリプトでfromのアドレス(キー)と現在時刻(値)を記録する。
2.自ネットワーク外からのリクエストで且つfromのアドレスがMAILER-DEAMONとかならばポリシーサービススクリプトでrecipient(宛先)のアドレスが1のキーにマッチしなければ自ネットワーク内から送信したメールのバウンスではないと判断してREJECTする(そうでなければDUNNOを返して以降の処理を継続)。

※1のキーの有効期限を30分〜120分程度に設定しておく

これの欠点は自ネットワーク内からメールを送信して有効期限内にこの送信者アドレス宛てにバウンスメールが来てしまうと止められないこと。

要は自ネットワーク内からメールを出さない限り(もしくは有効期限切れならば)外から来たバウンスメールは一切受け付けませんよという仕組みです。

まぁ〜まだ頭の中だけのことなので、もう少し吟味して実験してから採用するかどうか決めます。

ちなみに現在のウチのmain.cf、master.cfはこんな感じになってます。

main.cf

disable_vrfy_command = yes allow_min_user = yes allow_mail_to_commands = alias,forward,include smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes non_fqdn_reject_code = 450 127.0.0.1:10027_time_limit = 3600 127.0.0.1:10028_time_limit = 3600 smtpd_restriction_classes = check_dynamic_client check_client_jp check_client_na check_dynamic_client = check_client_access cidr:/etc/postfix/check_client_country check_client_na check_client_jp = check_policy_service inet:10027 sleep 35 permit check_client_na = check_policy_service inet:10028 sleep 125 smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination reject_unlisted_recipient check_client_access regexp:/etc/postfix/check_special_client check_sender_access regexp:/etc/postfix/check_special_sender reject_non_fqdn_sender reject_unverified_sender check_client_access regexp:/etc/postfix/check_dynamic_client content_filter = scan:127.0.0.1:10025 receive_override_options = no_address_mappings

master.cf

scan unix - - n - 16 smtp -o smtp_send_xforward_command=yes 127.0.0.1:10026 inet n - n - 16 smtpd -o content_filter= -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks -o smtpd_helo_restrictions= -o smtpd_client_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks_style=host -o smtpd_authorized_xforward_hosts=127.0.0.0/8 127.0.0.1:10027 inet n n n - 16 spawn user=nobody argv=/usr/local/bin/receivegrey --DEBUG=0 --DBFILE=/tmp/receivegrey-jp.db --TYPE=1 --COUNT=1 --BEGIN=5 --END=120 127.0.0.1:10028 inet n n n - 16 spawn user=nobody argv=/usr/local/bin/receivegrey --DEBUG=0 --DBFILE=/tmp/receivegrey-na.db --TYPE=1 --COUNT=2 --BEGIN=10 --END=120

http://cmf.ohtanz.com/blog/archives/174に書いてることを実験運用しています。

Enjoyed reading this post?
Subscribe to the RSS feed and have all new posts delivered straight to you.
Post your comment



now loading...