メールサーバ - DKIM - 設定

 クラウディア
1. 概要
2. DNS
3. qmail

1. 概要

 では、ここから、キーを「DNS」へ登録して、権威付けして、「qmail」の設定で、キーをメールヘッダへ付けるようにします。

2. DNS

 「DNS」コンテンツサーバの方へ、キーを登録します。  わたしは、「nsd」を使用しています。  正引きファイルへ、下記の行を追加します。

default._domainkey      IN      TXT     "k=rsa; p=...略..."
_adsp._domainkey        IN      TXT     "dkim=unknown"
 1行目は、前ページで作成した例でいうと

/usr/local/etc/domainkeys/ドメイン名/default.pub
 というファイル名で作成された、パブリックキー(公開鍵)ファイルの中身をまんま、コピーします。  2行目は、参考サイトによれば、下記の意味を持つそうです。
 値     意味     備考 
all このドメインから送信されるメールは、すべてメール作成者署名が与えられる
unknown このドメインから送信されるメールのいくつか、またはすべてに、メール作成者署名が得られる
discardable このドメインから送信されるメールは、すべてメール作成者署名が与えられる。そして、もしメール作成者署名が得られない場合は、受信者はそのメールを破棄することが望まれる

 上記の表、参考サイトまんま書いていますが、わたしは「作成者署名」のことをキーと解釈していますが、間違ってないよね?

 書き換えが終ったら、わたしの場合「nsd-control」を有効にしているので、「Serial」も書き換えておいて。


nsd-control reload
 で、ゾーンをリロードします。

3. qmail

 「qmail」で、「tcpserver」を使って中継拒否やら、その他の設定を行っている場合

/etc/tcp/tcp.smtp
 を作成しているはずです。  これを書き換えます。  およそ

127.:allow,RELAYCLIENT=""
自分のネットワーク.:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/simscan"
転送可ネットワーク.:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/simscan"
:allow,QMAILQUEUE="/var/qmail/bin/simscan"
 てなことになっておるはず。  ここで、「QMAILQUEUE」の内容を書きかえる、参考サイトもありますが、それしちゃうとわたしの設定では、ウィルススキャナが機能しなくなるのだ。  ずばり、各行の末尾に

,DKSIGN="/usr/local/etc/domainkeys/%/default",DKVERIFY="DEGIJKfh"
 を追加します。  1行目のみ例示するならば

127.:allow,RELAYCLIENT="",DKSIGN="/usr/local/etc/domainkeys/%/default",DKVERIFY="DEGIJKfh"
 だな。

DKSIGN="/usr/local/etc/domainkeys/%/default"
 は、キーファイルのありかを示しておって。  「%」は、まんま、くっきり「%」と書きます。  参考サイトによれば、
 DKSIGN。メッセージの署名に使用される秘密鍵へのパス名に対する環境変数。環境変数に%文字がある場合、それは削除され、From:ヘッダーのドメイン名に置き換えられます。%を置き換えた後、そのファイルが存在しない場合、メッセージは署名されません。
 ということなのだ。

,DKVERIFY="DEGIJKfh"
 の方は(翻訳アプリで翻訳してあるので、日本語がかなりむちゃくちゃですが)
DEGIJKfh。. BADSIG、NOKEY、BADKEY、SYNTAX、ARGS、REVOKED、およびINTERNALエラーを永久に拒否し、一時的にCANTVRFYおよびNORESOURCEを拒否します。追加する。検証されない署名があるメッセージを拒否したい場合(おそらくメッセージが偽造であるか、輸送中に破損しているためです)。. 注意してください。 qmail-dk 常に挿入します。 DomainKey-Status。 ヘッダー。メッセージは配信時またはメールリーダーで拒否できます。
 もうひとつの参考サイト「Domainkeys - Qmailtoaster」には、表付きで、詳しく書いてあるのですが、訳すのも書き写すのも面倒なので、意識高い方は、訳して、教えてください。  まぁ、これらのサイトで、「DEGIJKfh」をデフォルトにして、推奨しているようなので、そのままにします。  以上書き換えたら、実際のファイルを更新します。

tcprules /etc/tcp/tcp.smtp.cdb /etc/tcp/tcp.smtp.tmp < /etc/tcp/tcp.smtp
 チェックしてみると

$ tcprulescheck /etc/tcp/tcp.smtp.cdb
rule :
set environment variable QMAILQUEUE=/var/qmail/bin/simscan
set environment variable DKSIGN=/usr/local/etc/domainkeys/%/default
set environment variable DKVERIFY=DEGIJKfh
allow connection
 てなことになります。  実は、このファイル、更新したら、次の「qmailq」が動作するときにすぐに反映されることが、今回の作業でわかったのですが。  まぁ、念のため、システム自体を再起動するか、最低でも、メールサーバのアプリケーションは、再起動しましょう。
ハイスピードプランネットオークションの相場、統計、価格比較といえばオークファン