いつもお世話になっています。
自宅サーバでPostfixを使い、メールサーバを運用していますが、
スパムメール対策としてmain.cfに
disable_vrfy_command = yes
smtpd_helo_required = yes
smtpd_client_restrictions = reject_unknown_client
の3行を追加しています。
しかしどうやら、購読しているメルマガもこの設定に引っ掛かっているようです。
上記の設定を有効なまま購読しているメルマガのドメインのみ受信可能に出来ますでしょうか?
よろしくお願い致します。
> 自宅サーバでPostfixを使い、メールサーバを運用していますが、
> スパムメール対策としてmain.cfに
> disable_vrfy_command = yes
> smtpd_helo_required = yes
> smtpd_client_restrictions = reject_unknown_client
> の3行を追加しています。
> しかしどうやら、購読しているメルマガもこの設定に引っ掛かっているようです。
> 上記の設定を有効なまま購読しているメルマガのドメインのみ受信可能に出来ますでしょうか?
Postfixのフィルタリングは、階層構造をとったりできない単純なフィルタリング機能です。
これは、「上記の設定を有効にしたまま」という考え方は成立しないということです。
つまり、複数のフィルタリング条件を書いた場合、Postfixの実装に依存するため評価する順番は変えられないのでどうにもならないことだからです。現状でメルマガが拒否されているということは、上記にいずれかに引っかかっているからなので、この後に評価されるフィルタでいくら許可としたところで、その前に拒否されてしまえばどうにもならないということです。複数のフィルタを書くより、一つのフィルタで優先度をつけて書けばよいのではないでしょうか?
具体的には、上記以外にフィルタが無いなら、恐らく最後のreject_unknown_client(DNSの逆牽き及びPTRからの正牽き不可なら拒否)だと思うので、それならば、smtpd_sender_restrictionsが使えるはずです。
1. main.cfに下記を追加する。
smtpd_sender_restrictions = permit_mynetworks, check_sender_access hash:/etc/postfix/access, reject_unknown_sender_domain
permit_mynetworksは家庭内からは許可です。check_sender_accessは、指定されたデータベース(後ろに書かれた/etc/postfix/accessから作成)で MAIL FROM アドレスやドメイン、親ドメイン、localpart@ を検索し、対応する action を実行します。従って、通したいドメインをここで指定してあげれば通過してくれます。最後のreject_unknown_sender_domainは、MAIL FROM アドレスにDNS AまたはMXレコードがなく、Postfixがその送信者アドレスの最終配送先ではない場合に要求を拒否するので、reject_unknown_clientに相当する拒否をしてくれます。
左から順番に評価されるので、明示的にドメインを指定してあげればreject_unknown_sender_domainより先にヒットするので、メルマガは通過してくれます。
2. /etc/postfix/accessには、ドメインと処理を書いておきます。
example.com OK
hogehoge.com OK
という感じです。その後、
# postmap /etc/postfix/access
とやって、DB化します。
以上、下記を参考にすると良いです。
http://www.kobitosan.net/postfix/trans-2.2/jhtml/SMTPD_ACCESS_README.html
http://www.kobitosan.net/postfix/trans-2.2/jhtml/access.5.html
回答ありがとうございます。
結果的にメルマガを受信することはできました。
…がなぜか同時にスパムメールも
すり抜けてくるようになりました。(><)
いろいろ調べてもPostfix単体でスパムメールだけを
うまく弾くってのは難しそうですね。
> 回答ありがとうございます。
> 結果的にメルマガを受信することはできました。
> …がなぜか同時にスパムメールも
> すり抜けてくるようになりました。(><)
どう変更しましたか?
優先度はソースを見ないとわからないのでなんともいえませんが、単純にsmtp_sender_restrictionsを追加しただけでうまくいくか見てみる価値はありますよ。
そもそも引っかかっていた要因が特定できないとそれに着目した対策はできないですよ。
> いろいろ調べてもPostfix単体でスパムメールだけを
> うまく弾くってのは難しそうですね。
それは、まちがいないです。Maia Mailguardを是非試してほしいのですが、動かすのが難しいですかね。
ただ、最近は結構あたりさわりのない言葉を使用したり、画像ファイルで送りつけてきたり、Spamassassinnでも結構すり抜けます。
回答ありがとうございます。
> どう変更しましたか?
> 優先度はソースを見ないとわからないのでなんともいえませんが、単純にsmtp_sender_restrictionsを追加しただけでうまくいくか見てみる価値はありますよ。
> そもそも引っかかっていた要因が特定できないとそれに着目した対策はできないですよ。
おやじ様に教えて頂いた通り、
disable_vrfy_command = yes
smtpd_helo_required = yes
smtpd_sender_restrictions = permit_mynetworks, check_sender_access hash:/etc/postfix/access, reject_unknown_sender_domain
とし、/etc/postfix/accessに有効にするドメインを書きました。
> それは、まちがいないです。Maia Mailguardを是非試してほしいのですが、動かすのが難しいですかね。
> ただ、最近は結構あたりさわりのない言葉を使用したり、画像ファイルで送りつけてきたり、Spamassassinnでも結構すり抜けます。
何にしても完全排除ってのはできないのですね。
現状ではスパムは1日1通程度に減ったのでしばらくこのままで
様子を見たいと思います。