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
完璧ですね。
コメントを追加