今までのスパムメール対策の場合、海外から来るスパムメールはガシガシ弾いてくれていたから問題ないのですが、数は少ないとはいえ国内から来るスパムメールはPostfix側でのフィルタが弱すぎるせいで最後の頼みがprocmailで動かしているDNSBL、URLBL、ベイジアンスパムフィルタだけだったので、もう少し国内から来るスパムメールもチェックしたい!ということでPostfix制限クラス(smtpd_restriction_classes)を導入してみました。
要は何がしたいかと言うとsmtpd_client_restrictionsのチェックをパスした国内からのメールをsmtpd_sender_restrictions側でもう一度動的IP(若しくは逆引きできない)かどうかチェックして、動的IPだった場合はエンベロープのFROMのFQDNがフリーメール等のFQDNだった場合は要求を拒否したかったのです。
今回追加した項目は以下のとおり。
> vi /etc/postfix/main.cf
-----------------------------------------
smtpd_restriction_classes =
clientsender_matching
clientsender_matching =
check_sender_access regexp:/etc/postfix/sender_matching
smtpd_sender_restrictions =
check_client_access regexp:/etc/postfix/client_matching
-----------------------------------------
> vi /etc/postfix/client_matching
-----------------------------------------
# [rule 1]
/^[^.]*.*[0-9]{1,3}-[0-9]{1,3}.*¥..+¥.[a-z]/ clientsender_matching
# [rule 2]
/^[^.]*.*[0-9]{1,3}¥.[0-9]{1,3}.*¥..+¥.[a-z]/ clientsender_matching
# [rule 3]
/^[^.]*.*[0-9]{1,3}x[0-9]{1,3}.*¥..+¥.[a-z]/ clientsender_matching
# [rule 4]
/^[^.]*.*[0-9]{4}.*¥..+¥.[a-z]/ clientsender_matching
# [rule 5]
/^[^.]*.*[0-9]{3,}[a-z]{3,}.*¥..+¥.[a-z]/ clientsender_matching
# [rule 6]
/^[^.]*.*[a-z]{3,}[0-9]{3,}.*¥..+¥.[a-z]/ clientsender_matching
# [rule 7]
/^[^.]*.*[0-9]{3,}-[a-z]{3,}.*¥..+¥.[a-z]/ clientsender_matching
# [rule 8]
/^[^.]*.*[a-z]{3,}-[0-9]{3,}.*¥..+¥.[a-z]/ clientsender_matching
# [rule 9]
/^[^.]*.*(dhcp|dial|ppp|dsl|flets|ftth|cable).*¥..+¥.[a-z]/ clientsender_matching
# [rule 10]
/^unknown$/ clientsender_matching
-----------------------------------------
> vi /etc/postfix/sender_matching
-----------------------------------------
/.*@yahoo¥.co¥.jp$/ 450 may not be mail exchanger
/.*@hotmail¥.co¥.jp$/ 450 may not be mail exchanger
/.*@hotmail¥.com$/ 450 may not be mail exchanger
/.*@gmail¥.com$/ 450 may not be mail exchanger
/.*@nifmail¥.jp$/ 450 may not be mail exchanger
-----------------------------------------
こうすることでsmtpd_sender_restrictionsで再度動的IP(若しくは逆引きできない)かどうかを判定して、sender_matchingにマッチしたFQDNだった場合に要求を拒否することができます。
詳細はpostfixのスパムメール対策(排除率は99.975%だった)をご覧くださいませ。