CentOS5で,DKIM/SPF/Domainkeyなど使ってみる

| | コメント(0) | トラックバック(0)

最新のPostfixでは,Milterがサポートされ,DKIMとか簡単に設定できそうだ,と思い立ったのが,始まりなんだが,よくわからなくなってきた。実装例や運用例が異なっていたりするのは,まだ,標準的な運用が成立していないせいだからだろう。RedHatで標準のパッケージに含められるようになれば,設定ツールも揃ってくるだろうけど,まだ,発展途上なんだろう。

仕方なく,自分で試してみた。(参考サイト)

  1. CentOS5の添付のPostfixのバージョンが,2.2.3で,Milterをサポートしていないので,2.4.4のPostfixを作る。
    Milterを使わない方法もあるが,将来は,Milterが標準になるだろうという期待から,今から覚えておいてみたかったから。設定は,2.2のものをそのまま使えたので,別に苦労はしなかった。
    postfix-2.4.6-11.i386.rpm , postfix-debuginfo-2.4.6-11.i386.rpm , postfix-pflogsumm-2.4.6-11.i386.rpm , postfix-2.4.6-11.src.rpm
  2. まずは,DKIMをインストールをしようと,src.rpmを探す。(http://blackbean.org/review/dkim-milter-2.4.0-1.fc8.src.rpm
    )。最新のDKIMは,2.4.2と知り,SPECファイルをいじる。
    参考サイトの見ながら,直しているうちに,ソケットはUNIXドメインの方が性能的に良いし,セキュリティ上も安心だと思い始め,このSPECファイルに不満を持ち始める。で,直す。
    dkim-milter-2.4.2-2.i386.rpm  , dkim-milter-debuginfo-2.4.2-2.i386.rpm , dkim-milter-2.4.2-2.src.rpm
  3. DKIMだけで良いと思っていたが,ついでにDomainkeyのMilterも試したくなる。(dk-milter-0.6.0-1.src.rpm)
    ユーザ名が気に入らない,UNIXドメインが使いたいという気分がわき起こり,ついつい,SPECファイルまでいじり始める。
    dk-milter-0.6.0-2.i386.rpm , dk-milter-debuginfo-0.6.0-2.i386.rpm , dk-milter-0.6.0-2.src.rpm
  4. src.rpmを探している中で,SenderIDのsrc.rpmも見つける。(sid-milter-0.2.14-1.src.rpm)
    勢いに任せて,SPECファイルを弄り始める。
    sid-milter-0.2.14-2.i386.rpm ,  sid-milter-debuginfo-0.2.14-2.i386.rpm , sid-milter-0.2.14-2.src.rpm
  5. SPFとDKIMとDomainkeyの設定を行う
  6. check-auth@verifier.port25.com へのメールpass
    sa-test@sendmail.net へのメール pass
    http://senderid.espcoalition.org/ へのメール。SPFは,passだが,DomeinKey/DKIMは,NG。設定が悪いのかな。

一部,おかしいところがあるかもしれない。もっと良く調べないといけないな。

設定方法.

  1. DKIM
    # rpm -ivh dkim-milter-2.4.2-2.i386.rpm
    # cd /var/db/dkim-milter/
    # dkim-genkey -s selecter -d example.jp
       # selector.private と selector.txtが作成される
    # chmod 400 selector.private
    # chown dkim-melter.mail selector.private
    ### selector.txtの中身を example.jpのDNS設定ファイル(ゾーンファイル)に追加する
    # vi /var/db/dkim-milter/keylist
       # keylistにセレクタとドメインの設定を記述する
     | *:example.jp:selector
    ### postfixのmain.cfに,Milterの設定を追加する
    # vi /etc/postfix/main.cf
      | smtpd_milters = unix:/var/run/dkim-milter/dkim-milter.sock
      | non_smtpd_milters = unix:/var/run/dkim-milter/dkim-milter.sock
      | milter_default_action = accept
    ### デーモンの起動・再起動
    # /etc/init.d/dkim-melter start
    # /etc/init.d/postfix restart
  2. Domainkey
    # rpm -ivh dk-milter-0.6.0-2.i386.rpm
    # cd /var/db/dk-milter/
    # /usr/share/doc/dk-milter-0.6.0/gentxt.csh dkselector example.jp > dkselector.txt
       # dkselector.private とdkselector.txtが作成される。 dkselector.publicも作成されるが使われない
    # chmod 400 dkselector.private
    # chown dk-melter.mail dkselector.private
    ### dkselector.txtの中身を example.jpのDNS設定ファイル(ゾーンファイル)に追加する
    # vi /etc/sysconfig/dk-milter 
       # dk-milterにセレクタとドメインの設定等を追記する。
       # 複数のセレクタを登録するためには,パラメータの最後に数字を追加して,PORTを設定していかなければならない。
       # 1つだけなら,数字は不要。0から連番である必要,間違えるとややこしいことになる。
     | PORT0="local:/var/run/dk-milter/dk-milter0.sock"
      | SIGNING_DOMAIN0="exmple.jp"
      | SELECTOR_NAME0="dkselector"
      | KEYFILE0="/var/db/dk-milter/dkselector.private"
      | SIGNER0=yes
      | VERIFIER0=yes
    ### postfixのmain.cfに,Milterの設定を追加する
    # vi /etc/postfix/main.cf
      | smtpd_milters = unix:/var/run/dk-milter/dk-milter0.sock
      | non_smtpd_milters = unix:/var/run/dk-milter/dk-milter0.sock
      | milter_default_action = accept << これは,DKIMで追加したので,場合によっては不要
    ### デーモンの起動・再起動
    # /etc/init.d/dk-melter start
    # /etc/init.d/postfix restart
  3. SID
    ## DNS のゾーンファイルに設定
    # vi {ゾーンファイル}
      # メールサーバ(MX)で指定したサーバからしか,メールを送信しないなら,以下を追記
        | example.jp.   IN      TXT "v=spf1 mx ~all"
    ### postfixのmain.cfに,Milterの設定を追加する
    # vi /etc/postfix/main.cf
      | smtpd_milters = unix:/var/run/sid-milter/sid-milter.sock
      |  ( non_smtpd_miltersに設定すると動作ができなかった。原因は不明だけど,これば不要かな)
      | milter_default_action = accept << これは,DKIMで追加したので,場合によっては不要
    ### デーモンの起動・再起動
    # /etc/init.d/sid-melter start
    # /etc/init.d/postfix restart
  4. 1~3で追加したpostfix設定イメージ
    | smtpd_milters = unix:/var/run/dkim-milter/dkim-milter.sock
    |                 unix:/var/run/dk-milter/dk-milter0.sock
    |                unix:/var/run/sid-milter/sid-milter.sock
    | non_smtpd_milters = unix:/var/run/dkim-milter/dkim-milter.sock
    |                unix:/var/run/dk-milter/dk-milter.sock
    | milter_default_action = accept
  5. 1~3で追加したDNSのゾーンファイルで追加したイメージ (省略形が使用されているので, "selector._domainkey.example.jp."の記述しても問題ない。)
    | ; SPF
    | example.jp.                  IN      TXT "v=spf1 mx ~all"
    | mail.example.jp.           IN      TXT "v=spf1 mx ~all"   ; <- MXで指定したサーバも入れた方が良いかも
    | ; DKIM
    | selector._domainkey     IN TXT "v=DKIM1; g=*; k=rsa; t=s; p=M(略)B"; ----- DKIM selector for example.jp
    | ; Domainkey
    | dkselector._domainkey IN TXT "g=; k=rsa; t=y; p=M(略)=" ; ----- DomainKey dkselector for example.jp

 

dk-milter/sid-milterでは,/etc/sysconfig/{dk|dif}-milterをstart/stopで参照するので,コンフィグを弄るときは,停止しておく必要がある。UNIXドメインファイルがゴミとなって残る可能性がある。

また,起動は,milter→postfixで,停止は,postfix→milterの順でないと,困ることがあるかもしれない。

milterが起動エラーを起こす場合,/var/run/{dkim|dk|sid}-milter配下のUNIXドメインファイルを削除して,再起動すると解決できる場合もある。

トラックバック(0)

このブログ記事を参照しているブログ一覧: CentOS5で,DKIM/SPF/Domainkeyなど使ってみる

このブログ記事に対するトラックバックURL: http://www.aritia.org/mt/mt-tb.cgi/113

コメントする

2008年8月

          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

アーカイブ

ウェブページ

Powered by Movable Type 4.21-ja

Techonrati

Technorati search

» リンクしているブログ

このブログ記事について

このページは、Hizumiが2008年1月12日 18:00に書いたブログ記事です。

ひとつ前のブログ記事は「VMWare Workstation6.0.2で,Windows98SE」です。

次のブログ記事は「Perlについて書いてみた」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。