2010/03/13

postfixでのUCE制御の設定についてメモ

実家の鯖を再構築するに当たってMTAの設定を見直しているときに気がついたメモ。


reject_unknown_clientは迷惑メール対策としておすすめではない
逆引きが出来ないホストというのは多数存在するのでやらない方が良いでしょう。
reject_unknown_hostname(reject_unknown_helo_hostname)も危険でした
そもそも外部サーバである時点で外部に通じる名前を名乗るべきです。
べきなのですが、NATを通してローカルでしか通じない名前を名乗るMTAが多数いるのは仕方がないからやらない方が良い、という話です。

参考:
Postfix 設定パラメータ
Postfix の設定 - UCE 制御

やらない方がよいパラメータ:
smtpd_client_restrictionsパラメータ
 reject_unknown_client:逆引きできないことは悪ではありません。仕様上は正引きさえ出来ればよいのです。

やりたいけどやらない方がよいパラメータ:
smtpd_helo_restrictionsパラメータ
 reject_unknown_hostname:外部から通じる名前を名乗りやがれ・・・が名乗らないヤツもいる
 reject_non_fqdn_hostname:同上。社外の人間に対して社内の内線を伝えるやつもいる。

やっても良いと思うパラメータ:
smtpd_helo_restrictionsパラメータ
 reject_invalid_hostname:ちゃんとしたMTAならちゃんとした書式でしゃべります。
  逆にちゃんとした書式でしゃべらないようなMTAはスパムを出してくる可能性が高いです。
  (無理に一部のMTAで中継させるような書式でしゃべるヤツも居ます)
smtpd_client_restrictionsパラメータ
 reject_rbl_client:クライアントのIPアドレスをrblで拒否
 reject_rhsbl_client:クライアントのドメインをrblで拒否

smtpd_sender_restrictionsパラメータ
 reject_unknown_sender_domain:メアドのドメインにAもしくはMXレコードを持たない場合は正常にそのメアドに送信できない場合です。拒否しても問題ないでしょう
 reject_rhsbl_sender:メールアドレスのドメインで拒否
 reject_non_fqdn_sender:ローカルでしか通じないアドレスを外部に対して広告するのは間違っています


が、上記の設定では
・送信者アドレスはいくらでも偽装が可能
・スパムメールは届くことを前提に作られるのでコマンドをちゃんとしゃべる可能性が高い
・動的IPアドレスならrblによる拒否は回避可能
ため、拒否率は高くありません。逆にちゃんと設定しているMTAからのメールは基本的に拒否しないはずですが。

まぁ、reject_unknown_hostnameやreject_non_fqdn_hostnameをやっても
・自分のアドレスを逆引きできる場合はホストとしてその名前を名乗ればよい
ため、回避方法はあるのですが、スパムを大量生産している国では逆引きIPアドレスを設定していない事が多いため、多くのスパムを拒否できることも確かです。
その代り、ゲーム会社等、適当な自鯖を作っているところのメールを拒否る事になりかねません。
(実際、ゆずソフト、しとろんソフトのMTAがhost=unknownで来てた・・・)

良さそうなのは
・helo時に相手のホスト名と正引きのIPアドレスが一致するか調べる
・相手のホストがMXレコードを持っていることを確認する
といった辺りですが、上記以外で拒否するのではなくgreylistで遅延させ、再度繋いできた場合は許可しないとおそらく誤爆します。

結局、そのようなオートマトンより、メーラーのジャンクメール機能を使った方が個々のユーザに合わせた設定を出来るため良い、とは思いますが。

0 件のコメント:

コメントを投稿