SSブログ

sendmail 8.13.1 + dk-milter 0.2.3 インストール [Linux]

sendmail 8.13.1 + dk-milter 0.2.3

dk-milter に関しては http://www.sendmail.net/dk-milter/ とかに

いろいろ情報が載ってますが、いかんせん英語だし、まだまだ量が少ないです。

というわけで dk-milter とかインストールする人へのお役に立てれば幸いです。

ちなみに sendmail のインストール設定は検索すれば腐るほどでてくるので省きます。

dk-milter に関しては検索しても出てこないのでここに書いちゃいます。

書きなぐりですけど、勘弁してください。 

 

それぞれの source は

sendmail  http://www.sendmail.org/8.13.1.html

dk-milter  http://sourceforge.net/projects/dk-milter/

 から取って来てくださいね。注意することは、sendmail は 8.13.1 か、それ以上の version にすることです。

dk-milter はなるべく最新のものを。今の最新は 0.2.3 です。

あと、openssl 入れといてください。

 

ソースを get してきたら展開しましょう。

# gzip -dc dk-milter-0.2.3.tar.gz  | tar xvf -

 

compile する為の site.config.m4 を書きます。

# cd dk-milter-0.2.3/devtools/Site

# cp -p site.config.m4.sample site.config.m4

# vi site.config.m4

自分のところの sendmail は TLS やってるので

APPENDDEF(`confENVDEF',`-DSTARTTLS')

と書いておきました。

あと、

APPENDDEF(`confENVDEF', `-UNIS')

-UNIS は NIS を使わない設定です。

また、ssl の library が必要です。 /usr/local/ssl とかに入ってる人は

APPENDDEF(`confLIBDIRS', `-L/usr/local/ssl/lib -R/usr/local/ssl/lib')

APPENDDEF(`confINCDIRS', `-I/usr/local/ssl/include')

APPENDDEF(`confLIBS', `-lssl -lcrypto')

としてください。

 

では compile しましょう。source を展開したところに Build というものがあるはずです。

こいつを sh で起動させましょう。

# sh Build

 

そうすると obj.ARCH というディレクトリが作成されます。

自分は gentoo Linux なので obj.Linux.2.6.9-gentoo-r1.i686 になりました。

この中に compile したものが入ってます。sendmail を compile した時と同じ感じですね。

普通ならこの後 install とかするんですけど、今回は実験なので install しないで

起動させてみます。

 

起動させる前に・・・sendmail.cf で milter として dk-milter を通す設定しないといけないです。

milter を UNIX-domain Socket 経由にするか inet 経由にするか決めないといけないんですけど、

今回は inet にしてみます。port は適当でいいんですけど、とりあえず 9010 とかにしておきます。

sendmail.mc に

INPUT_MAIL_FILTER(`dk-filter', `S=inet:9010@localhost')

を追加してcf 作り直してください。

 

さて、肝心の key なんですけど、ツールが用意されてます。

gentxt.csh です。引数に host 名をいれて起動させます。smtp という host ですと、

# cd /usr/local/src/dk-milter-0.2.3/dk-filter/

# ./gentxt.csh smtp

 とします。

gentxt.csh の中身は単なる openssl 叩いてるだけです。

key の byte 数を変えたい時とかは改造しちゃいましょう。

openssl genrsa -out ${selector}.private 512 >& /dev/null

openssl genrsa -out ${selector}.private 1024 >& /dev/null

改造したら再度 gentxt.csh を叩きます。

# gentxt.csh smtp

smtp._domainkey IN TXT "g=; k=rsa; t=y; p=.....key......"

DNS の TXT レコードとして登録するべきものがそのまま表示されます。

DNSに smtp._domainkey という host を登録して、TXT レコードのところに上記のやつをそのまま書きます。

smtp._domainkey という名前で TXT レコードを引けるようになればOKです。

さらに、 smtp.privatesmtp.public っていうファイルが出来ているはずです。

private を pem として適当なディレクトリに持っていきましょう。

どこでもいいんですけど、/var/db/domainkeys の下が一般的っぽいです。

# cp -p ./smtp.private /var/db/domainkeys/smtp.key.pem

 

/etc/mail/ilist というのを作成します。

この list に書かれている host を認証するらしいです。

最初、この ilist が無かったのでいつまでたっても認証してくれなかった・・・

# cd /etc/mail

# vi ilist

ilist の中身は host 名とか IP アドレスとか domain とか書いておきましょう。

smtp

127.0.0.1

smtp.makocchi.net

makocchi.net

こんなかんじでしょうかね。

 

では dk-milter を起動させましょう。

自分の場合は /usr/local/src に展開したので

/usr/local/src/dk-milter-0.2.3/obj.Linux.2.6.9-gentoo-r1.i686/dk-filter/dk-filter -D

-p inet:9010@localhost -d makocchi.net -s /var/db/domainkeys/smtp.key.pem

-l -S smtp -P /var/run/dk-filter.pid -A -h -i /etc/mail/ilist -c nofws

長いですけど、、、これで動くはずです。1行で書いてください。

各オプションの意味は README とか見といてください。

・・・と思ったら書いてない!(´ー`;)

-a peerlist     file containing list of hosts to ignore
-A              auto-restart
-c canon        canonicalization to use when signing
-C config       configuration info (see man page)
-d domlist      domains to sign
-D              also sign subdomains
-f              don't fork-and-exit
-h              append identifying header
-H              sign with explicit header lists
-i ilist        file containing list of internal (signing) hosts
-l              log activity to system log
-m mtalist      MTA daemon ports to sign
-P pidfile      file to which to write pid
-s keyfile      location of secret key file
-S selector     selector to use when signing
-u userid       change to specified userid
-V              print version number and terminate

こんなかんじです。

# netstat -na | grep 9010

できちんと起動されたか確認してくださいね。

 あと、sendmail も忘れず再起動しといてください。

メールを出して、DomainKey-Signature:っていうヘッダがつけばOKです。

 

テストがうまくいったら dk-milter を inittab で起動させてあげれば、

いちいち起動させなくて済む予感がします。

 

分からない時は sendmail.cf の中の LogLevel を 99 とかにして再起動させて、

ログを見ながらメールを出してみると解決策が見えるかもしれませんよ。


nice!(1)  コメント(2)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 1

コメント 2

masakiman

いま、sendmail.8.12.10 入れまくっています。

8.13.1ってまた12台と違いますか?
by masakiman (2004-12-03 13:00) 

まこっち

基本的に変わらないと思いますよ。
12 に比べて 13 はいろいろ高機能になってるはずですけど。
dk-milter や sid-milter を使わないのであれば 12 で充分です。
by まこっち (2004-12-03 13:05) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

液体七面鳥Apache::ClickPath で .. ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。