6 月 03
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に書いてることを実験運用しています。
« 閉じる