2009年09月08日

Yahoo!メール対応の結果

長々とYahoo!メール対応について書いてきましたが、

  • SPF
  • DomainKeys

と対応して、Yahoo!メールにメールを出してみましたが、結局 SPAM のままでした。もちろん、

Received-SPF: pass (hoge.com: domain of foo@hoge.com 
   designates xxx.xxx.xxx.xxx as permitted sender) 
  receiver=hoge.com; client-ip=yyy.yyy.yyy.yyy; envelope-from=foo@hoge.com;
Authentication-Results: mta115.mail.tnz.yahoo.co.jp
   from=hoge.com; domainkeys=pass (ok)

という風に SPF も DomainKeys も pass となっています。

http://help.yahoo.co.jp/help/jp/mail/in_trouble/in_trouble-21.html
・メールサーバーのDNSの逆引き情報を正しく設定する
Yahoo!メールはメール配信元の確認のため、広範囲なDNSチェックを
行なっています。DNSの逆引き情報は正しく設定してください。

と書いてありました。レンタルサーバ1台に複数の domain を割り当ててるので、逆引き情報を正しく設定することはできません。
それ以前の問題として、逆引きできる domain でもエラーになりました。
やれることはやりましたし、うちの貧弱なPCでは、Yahoo!メール使っていると「仮想メモリが少なすぎます」という警告も出て、正直、めんどうなので、ほっとくことにしました。
たぶん、機械学習で SPAM 認定もしていると思われるので、今までテストで送って「迷惑メール」に振り分けられたものは、「迷惑メールではない」ボタンを押しておきましたが、まあ、期待薄でしょうが。
posted by おちエン at 00:07| Comment(0) | SPF/DomainKeys | このブログの読者になる | 更新情報をチェックする

2009年09月07日

DomainKeysトラブルシューティング

DomainKeys 実際はなかなかうまくいきませんでした。
トラブルシューティングというよりもはまったポイントを書いておこうと思います。

そもそも、DomainKeys がきちんと設定できていれば、メールのヘッダに

DomainKey-Signature: a=rsa-sha1; s=beta; d=hoge.com; c=simple; q=dns; 
  h=date:from:to:subject:message-id:mime-version:content-type: 
    content-transfer-encoding:x-mailer; 
  b=xxxx

という風に DomainKey-Signature が表示されるはずです。

にも関わらず、全く表示されず、/var/log/maillog に、

dk-filter[6811]: xxxxx external host yyy.isp.com attempted to send as hoge.com

とエラーが吐かれていました。

実はLAN 内のサーバではなく、以下の図のようにレンタルサーバにsendmail を立てて、ISP 経由で接続をしています。

system.gif

この構成が問題でした。。。そもそも、dk-filter は、

  • 中からのメールには DomainKey-Signature をつける
  • 外からのメールは、DomainKey のチェックをする
という動きになっています。どこを「中」とみなすは設定することができます。/etc/mail/host に ISP の domain を書いておき、たとえば、

.isp.com

としておき、dk-filter のコマンドオプション -i でこのファイルを指定します。

% /usr/bin/dk-filter -H -l -p local:/var/run/dk-filter.sock -d hoge.com 
    -s /var/db/domainkeys/beta.key.pem -S beta -i /etc/mail/host

これでやっと DomainKey-Signature が着くようになります。 ただし、当然、この ISP からのメールに DomainKey-Signature をつけるようになってしまうという欠点もあります。
posted by おちエン at 23:29| Comment(0) | SPF/DomainKeys | このブログの読者になる | 更新情報をチェックする

2009年09月06日

Yahoo!メールSPAM対応 DomainKeys編(2)

DomainKeys 対応の続き。

DomainKeys 対応するためには

  • sendmail を milter 対応にする
  • libmilter.a を install
  • dk-milter を install
  • sendmail.cf の再作成

が必要です。

sendmail の milter 対応ですが、sendmail-8.13.x/libmilter/README にある通り、

Starting with 8.13 sendmail is compiled by default
with support forthe milter API.

デフォルトで milter 対応になっているはずです。 確認するためには、

% /usr/sbin/sendmail -d
Version 8.13.x
 Compiled with: DNSMAP LOG MATCHGECOS MILTER MIME7TO8 MIME8TO7
                NAMED_BIND NETINET NETUNIX NEWDB PIPELINING SCANF USERDB XDEBUG

で MILTER と表示されるかどうかで確認できます。

ただし、sendmail 自体が milter 対応していても libmilter.a はデフォルトでは install されないようなので、
libmilter.a を install する必要があります。
以前 sendmail を make した人はそのディレクトリに移動して、していない人は新規にダウンロードして、sendmail-8.x.x.tar.gz を展開した後、

% cd libmilter/
% gmake
% sudo gmake install

という風にします。

次に dk-milter を install します。まうは、ダウンロードして展開。

% wget http://sourceforge.net/projects/dk-milter/files/DomainKeys%20Milter/1.0.2/dk-milter-1.0.2.tar.gz/download
% tar xvzpf dk-milter-1.0.2.tar.gz
% cd dk-milter-1.0.2

make するためには、devtools/Site/site.config.m4 を作る必要があります。site.config.m4.dist をベースに変更します。

% cd devtools/Site/
% cp ../../site.config.m4.dist site.config.m4
% vi site.config.m4

編集時は、devtools/Site/site.config.m4.sample も参考にします。
ちなみに実際に使った site.config.m4 は、以下のものです。

dnl NIS は使っていないため、-UNIS を設定
APPENDDEF(`confENVDEF', `-UNIS')

dnl 必要ないと思うが念のため、設定。
APPENDDEF(`confLIBS', `-lssl -lcrypto')

dnl POP before SMTP を使用しているため、-DPOPAUTH を設定
APPENDDEF(`conf_dk_filter_ENVDEF', `-DPOPAUTH ')

dnl libmilter の場所を指定
APPENDDEF(`bld_dk_filter_INCDIRS', `-I/usr/include')
APPENDDEF(`bld_dk_filter_LIBDIRS', `-L/usr/lib')

#文頭に dnl があると、コメント行となります。
あとは make するだけ。

% cd ../../
% ./Build
% sudo ./Build install

install したら、dk-milter を起動させます。

% /usr/bin/dk-filter -H -l -p local:/var/run/dk-filter.sock -d hoge.com -s /var/db/domainkeys/beta.key.pem -S beta

という感じ。-s で秘密鍵の場所を、-S で selector名を指定します。
詳しくは次回説明します。

最後に sendmail.cf を作りなおします。 sendmail.mc に

INPUT_MAIL_FILTER(`dk-filter', `S=local:/var/run/dk-filter.sock')

を追加するだけ。

% cd sendmail-8.13.7/cf/cf/
% vi sendmail.mc
% gmake sendmail.cf
% sudo cp sendmail.cf /etc/mail/

後は sendmail を restart するだけです。
posted by おちエン at 10:34| Comment(0) | SPF/DomainKeys | このブログの読者になる | 更新情報をチェックする

2009年09月05日

Yahoo!メールSPAM対応 DomainKeys編

今回は DomainKeys 対応です。

作業を進める前にまず、selector名を考える必要があります。
selector名は beta とします。


DomainKeys には、公開鍵・秘密鍵が必要なので、まずは鍵を作ります。

# mkdir domainkeys
# cd domainkeys
# openssl genrsa -out private.key 1024
# openssl rsa -in ./private.key -out public.key -pubout -outform PEM

秘密鍵をディレクトリに置いておきます。
秘密鍵のディレクトリは、/var/db/domainkeys で、秘密鍵のファイル名は、selector名.key.pem である必要があるため、beta.key.pem としています。

# mkdir /var/db/domainkeys
# cp private.key /var/db/domainkeys/beta.key.pem
# chmod 600 -R /var/db/domainkeys

次に DNS の設定です。
selector名._domainkey の TXT として、公開鍵を登録します。

beta._domainkey	IN	TXT	"g=; k=rsa; t=y; p=xxxx"

上記の xxx が公開鍵(public.key)です。

DNS を reload して、beta._domainkey.hoge.com の TXT が引ければ、OK です。

% nslookup -type=txt beta._domainkey.hoge.com
beta._domainkey.hoge.com text = "g=\; k=rsa\; t=y\; p=xxxx"
posted by おちエン at 21:28| Comment(0) | SPF/DomainKeys | このブログの読者になる | 更新情報をチェックする

2009年09月02日

Yahoo!メールSPAM対応 SPF編

メールを送信したにも関わらず、Yahoo!メールの利用者からメールが届いていないという連絡が来て、おそらく、SPAM扱いされているんだろうと思ったところ、やはりそうなっていました。
メールが「受信箱」に届かず、「迷惑メール」フォルダに行ってしまっていました。

一応、対応しておこうと思い、調べたところ、Yahoo! では

  • SPF
  • DomainKeys

の2つを使っているらしいです。
今回はとりあえず SPF だけ対応してみます。

SPF 自体は、DNS に登録するだけ。
zone ファイルを編集します。

;SPF
    IN  TXT "v=spf1 mx ~all"

と追加するだけ。
当然、serial も変更する必要があります。
以前、後輩からDNS更新しても全く反映されないんですが。。。と言われ調べたところ、serial が変わってないというような凡ミスがあったので、一応、書いておきます。

あとは、bind を reload するだけ。nslookup すると、

% nslookup -type=txt hoge.com
hoge.com  text = "v=spf1 mx ~all"

となっていれば、OK です。

数時間経って、Yahoo!メールに送信してみると、もともと

Received-SPF: none (hoge.com: domain of foo@hoge.com 
  does not designate permitted sender hosts)


となっていたのが、
Received-SPF: pass (hoge.com: domain of foo@hoge.com
 designates xxx.xxx.xxx.xxx as permitted sender)
 receiver=hoge.com; client-ip=xxx.xxx.xxx.xxx; 
 envelope-from=foo@hoge.com;


となっていました。
が、DomainKeys を設定していないため、SPAM 扱いのままでした。
posted by おちエン at 00:28| Comment(0) | SPF/DomainKeys | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。