ドメインキーとSPF

サーバー運用がかなり厳しいので寄付をしてくれる人がいたらこちら
メインPCもボロボロになってきたので、ついにほしいものリスト公開

Domain-Keysの設定

Qmail-toasterでメールのところで紹介したDomain-Keysの設定をします。
まずはqmail-scanner.plを編集しましょう。

my $qmailqueue = '/var/qmail/bin/qmail-queue'; ↓ my $qmailqueue = '/var/qmail/bin/qmail-dk';

次に証明書の作成です。
qmail-toasterでは/var/qmail/control/domainkeys/Your.Domain/を利用しています。

mkdir -p /var/qmail/control/domainkeys/example.com/ cd /var/qmail/control/domainkeys/example.com/ /usr/local/ssl/bin/openssl genrsa -out rsa.private 768 /usr/local/ssl/bin/openssl rsa -in rsa.private -out rsa.public -pubout -outform PEM mv rsa.private default chown -R qmailq /var/qmail/control/domainkeys chmod 0600 default grep -v ^- rsa.public | perl -e 'while(<>){chop;$l.=$_;}print "t=y; p=$l;\n";'

出てきた文字列をDNSのTXTフィールドに追加します。
"t=y; o=-;"(すべてのメールに署名があることを規定)ではなく、
"t=y; o=~;"(署名があるものもあれば、ないものもある)という方がいいかもしれません。

$ORIGIN example.com. _domainkey TXT "t=y; o=~;" $ORIGIN _domainkey.example.com. default TXT "k=rsa; p=【grep -v ^- rsa.public~で出てきたp=からの文字列】"

後はDomainkeysに対応しているメールアドレスに送って確認しましょう。
大手だとYahoo!Gmailです。

そこからのメールを受け取って受信でもチェックをしましょう。

メールを送信した場合のヘッダ

Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=example.com; b=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;

メールを受信した場合のヘッダ

DomainKey-Status: good 又は DomainKey-Status: no signature

spfの設定

Domain-keysではやれ証明書作成だディレクトリ作成だとやりますが、
spfは基本的にDNSのTXTレコードに書くだけです。
ただ本来は固定IPで使うのがいいのですが、
とりあえず動的IPでも手間をあまりかけないでやってみます。

まずは今のIPアドレスをしらべましょう。

dig www.example.com ~~ www.example.com. 172800 IN A 192.0.43.10 ~~

確認できたらexample.com.zoneに設定を追加します。

spf1 TXT "v=spf1 +ip4:vvv.xxx.yyy.zzz ~all" TXT "v=spf1 include:spf1.example.com ~all" hogehoge TXT "v=spf1 include:spf1.example.com ~all"

これだけです。
IPが変更になったらspf1のレコードだけ変えておけば
いちいち全部変えなくてもすみます。

ちなみにIPv4のvvv.xxx.yyy.zzzからメールは送信されるけど
そうじゃない場合もあるという意味です。

gmailがspfに対応してるのでテストでメールを送受信してみましょう。
受信したメールのヘッダを見ると以下のようにspfについての記述が出てきます。

Received-SPF: pass (google.com: domain of webmaster@example.com designates vvv.xxx.yyy.zzz as permitted sender) client-ip=vvv.xxx.yyy.zzz;

うちではDomain-keysも入れてるので
もう一個ヘッダで認証情報がのってきます。

Authentication-Results: mx.google.com; spf=pass (google.com: domain of webmaster@example.com designates vvv.xxx.yyy.zzz as permitted sender) smtp.mail= webmaster@example.com; domainkeys=pass header.From= webmaster@example.com

完璧ですね。

コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。
CAPTCHA
また変更しました
Fill in the blank.