クラウド、レンタルサーバ、SEO、WPなどのレシピを!

サーバーレシピ

CentOS7 postfix メールサーバー

Postfix 3.4 [迷惑メール対策 SPF] CentOS7 (マルチドメイン)

投稿日:

SPFとは

迷惑メール対策の一つである「SPF」。
「SPF」とは、送受信時に、「正規のメールサーバーから送信されたか」を判定する仕組み。

迷惑メールの送り主は、「攻撃用メールサーバー」から送信されることが多いです。
「正規のメールサーバー」は、利用者の認証情報をパスした(通過した)、メールサーバーの事です。

SPFでは、メールの受信時に、「迷惑メールではない」と判断します。
(メールサーバーが乗っ取られた場合は別です)

メールの受信時には、「Python」もしくは、「Perl」プログラムで判定をします。
今回、Python3で、判定する方法「pypolicyd-spf」を書いています。

メール送信時は、「DNS」で設定を行います。

SPFの問題点

SPFの問題点は、「転送」にあります。
SPFは、送信元を指定しており、転送をすると、「転送元」が変わってしまうのです。
転送先から、受け取ると、「SPF」は、スパムとして判断してしまいます・・・

これを回避する方法はあるが、実際には、広まっておりません・・・
そもそも、envelope-from を書き換えて転送すればいいのですが・・・

Python 3

↑CentOS7にデフォルトで入っているpythonのバージョン

↑Python 3.x が入りました。

py3dns(pypolicyd-spf用ライブラリ)

「py3dns」は、python 用 DNS ライブラリ。

「pydns」pydns-2.3.6.tar.gzは、python 2 用です。

今回、python3 用を入れます。
https://sourceforge.net/projects/pydns/files/py3dns/py3dns-3.0.2.tar.gz/download
から、
py3dns-3.0.2.tar.gz
をダウンロードしてインストール

pyspf(pypolicyd-spf用ライブラリ)

pypolicyd-spf 本体インストール

pypolicyd-spf 設定

Failだと、メールが届かないので、「False」にして、ヘッダ情報に付加して、メールは、届くようにする。

pypolicyd-spf テスト

で、何も反応がないことを確認。
実際には、標準入力を待っている状態。
不具合がある場合は、なにか、エラーメッセージが出てきます。

postfix設定

上記、2行を加えます。行頭の 「policy」の部分を、main.cfでも、同じ名前にします。「policy」でなくても大丈夫。

実際に、メールを受信してみる

メールを受信すると、

というヘッダ情報が付加されて、「Pass」となり、「迷惑メールではない」と、判定されています。

送信時の設定(DNSの設定)

TXTレコードで、上記のように記述します。「all」の前は、「-」(マイナス)ではなく、「チルダ」です。
「マイナス」と「チルダ」では、意味が違います。

 

-CentOS7, postfix, メールサーバー

Copyright© サーバーレシピ , 2019 All Rights Reserved.