自宅のメールサーバはspamがひどいので、SPFを入れてみた。
http://ja.wikipedia.org/wiki/Sender_Policy_Framework
送信者のドメインからDNS問い合わせをして、IPアドレスが間違っているかどうか(つまり送信者がメールアドレスを詐称しているかどうか)をチェックする機能。
sendmailのlibmilterをビルド。
$ cd sendmail-8.14.3/libmilter/
$ ./Build
$ sudo ./Build install
そしたらsourceforgeからsid-filterをダウンロード。最新はsid-milter-1.0.0.tar.gz。
解凍してビルド。
$ tar zxf sid-milter-1.0.0.tar.gz
$ cd sid-milter-1.0.0
$ ./Build
$ sudo ./Build install
devtools/Site/site.config.m4を編集して「APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER')」を追記してsendmailをビルド。
$ ./Build
$ sudo ./Build install
sendmail.mcを編集して「INPUT_MAIL_FILTER(`sid-filter',`S=inet:8891@localhost')dnl」を追記してsendmail.cfを作成。
$ sh Build sendmail.cf
$ sudo Build install-cf
sid-filterの起動をrc.localに追記。
/usr/bin/sid-filter -l -p inet:8891@localhost
sendmail再起動。
$ /etc/init.d/sendmail stop
$ /etc/init.d/sendmail start
幾つかメールを携帯と送受信して動作確認。
メールヘッダを確認。
Authentication-Results: ns1.webdb.co.jp; sender-id=pass header.from=hogehoge@dj.pdx.ne.jp; spf=pass smtp.mfrom=hogehoge@dj.pdx.ne.jp
これでサーバはできあがり。
あとは数日spamのヘッダを確認して、クライアント側でフィルタ設定すれば完了。
もし問題無ければ受信せずにサーバ側で弾くこともできるかな?