「備忘録」 Postfix(CentOS)でSPF対応しちゃう。

  • 10
    Like
  • 0
    Comment
More than 1 year has passed since last update.

Postfix(CentOS)でSPF対応しちゃう。

前処理

  • yumで最新化。
  • 普通にメールが送受信出来るかどうか確認。
  • 適当にGoogleメールとかに送信して、SPF判定がReceived-SPF: neutralになっていることを確認。(ちなみに、今回はこちら側がSPF対応するのであって、これは対応しないからあしからず。)
  • Googleメールから返信して、ヘッダがよくあるヘッダになっていることを確認。

python pypolicyd-spf のInstall

最近は、何でもyumで導入が出来るようになっているので、yumでやっちゃう。

yum.install.cmd
=============================================================================================================================================================================================================================================
 Package                                                      Arch                                                  Version                                                        Repository                                           Size
=============================================================================================================================================================================================================================================
Installing:
 pypolicyd-spf                                                noarch                                                1.3.1-2.el6                                                    epel                                                 44 k
Installing for dependencies:
 python-ipaddr                                                noarch                                                2.1.9-3.el6                                                    base                                                 31 k
 python-pydns                                                 noarch                                                2.3.6-1.el6                                                    epel                                                 39 k
 python-pyspf                                                 noarch                                                2.0.11-1.el6                                                   epel                                                 47 k

Transaction Summary
=============================================================================================================================================================================================================================================
Install       4 Package(s)

policyd-spf の動作確認

yum経由で入れたので大丈夫だとは思うのだけど、たぶん。
動作を確認する。

policyd-spf.run.cmd
[root@rinka ~]# python /usr/libexec/postfix/policyd-spf /etc/python-policyd-spf/policyd-spf.conf
^CTraceback (most recent call last):
  File "/usr/libexec/postfix/policyd-spf", line 658, in <module>
    line = sys.stdin.readline()
KeyboardInterrupt
[root@rinka ~]# 

実行してみて、何も表示されなければ、okです。

policyd-spf.conf の設定変更

まず、最初はSPF認証のメッセージヘッダを追加するだけにしましょう。
最初から、SPF通してないメールは受け取らないとか、早計かも?

policyd-spf.conf
#  For a fully commented sample config file see policyd-spf.conf.commented

debugLevel = 1
defaultSeedOnly = 1

#HELO_reject = Fail
HELO_reject = False
#Mail_From_reject = Fail
Mail_From_reject = False
PermError_reject = False
TempError_Defer = False

skip_addresses = 127.0.0.0/8,::ffff:127.0.0.0/104,::1

HELO_reject と Mail_From_reject をFalseにします。Failは受け付けないという意味です。
また、下に方にあるPermErrorは、SPF構文が間違っている場合にどうするか?ですね。
TempErrorは・・・。知らない。あとで調べよう。

Postifx(master.cf)の設定変更

master.cf
############################################################################
# SPF認証設定
#
policy-spf     unix  -       n       n       -       0       spawn
  user=nobody argv=/usr/bin/python /usr/libexec/postfix/policyd-spf /etc/python-policyd-spf/policyd-spf.conf

Postfix(main.cf)の設定変更

main.cf
#
# SPF
#
smtpd_recipient_restrictions =
    permit_mynetworks
    permit_sasl_authenticated
    reject_unauth_destination
        check_policy_service unix:private/policy-spf
policy_time_limit = 3600

Postfixの再起動

restart
postfix check
service postfix restart

動作の確認

log
Jul 26 15:48:28 rinka policyd-spf[20137]: Pass; identity=mailfrom; client-ip=209.85.214.171; helo=mail-ob0-f171.google.com;

あとがき。

出来た。
さくっと出来た。
あとは、この送信されてきたメールを返信するような仕組みがあればいいな。
そしたら、自分で担当しているDNSとか、メールサーバの確認が出来るもんねー。