- 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」が動作するときにすぐに反映されることが、今回の作業でわかったのですが。
まぁ、念のため、システム自体を再起動するか、最低でも、メールサーバのアプリケーションは、再起動しましょう。
|