IAjapanロゴ
有害情報対策ポータルサイト
−迷惑メール対策編−
■ トップ > メール管理者の皆様へ > 運用情報 > 実装の導入 > 実装の導入 sendmail編
サイト紹介 | 新着情報 | 一般利用者の皆様へ | メール管理者の皆様へ | 活動・関連情報
実装の導入 sendmail編
・インストール (前編)
・インストール (後編)
・設定
・まとめ
実装の導入 postfix編
SPFとsid-milterの導入
―― Solaris10での実例
DKIMとdkim-milterの導入
―― Solaris10での実例
Submissionポートの適切な設定について
■ 3. 設定       

3.1. sendmail

sendmailのm4マクロ定義INPUT_MAIL_FILTERを用いて、milterサーバと通信する方法を指定します。詳細はsendmail付属のcf/READMEに記述があります。

milterの動作不良、異常終了によるバウンスメールの発生を避けるため、問題発生時に一時的エラー(4xx)を返す設定を推奨します。 複数のmilterを使用する場合は、INPUT_MAIL_FILTERを複数記述します。

milterのアドレス指定の書式は以下のようになります。

  • TCPの場合
    inet:port@address
  • UNIXドメインソケットの場合
    unix:/socket_path
例) INPUT_MAIL_FILTER(`filter1', `S=inet:10000@127.0.0.1, F=T, T=R:1m')dnl

この例では以下の通りの設定になります

●表2 INPUT_MAIL_FILTER引数一覧

例の値 説明
filter1 フィルタ識別名称。任意の文字列が使用可能
S=inet:10000@127.0.0.1 milterサーバ指定。このアドレスに接続
F=T milter接続失敗時の動作。R(5xxエラー)、T(4xxエラー)が指定可能
T=R:1m milterの読み込みタイムアウト値。未指定時は10秒なため延長

 

3.2. sid-milter

このプログラムによって提供されるのは「Sender ID」「SPF」に基づいて送信者のメールアドレスを検証する部分のみです。インストールされたプログラム名は「sid-filter」となります。現状では、検証結果に基づいた受信拒否はトラブルの原因となる可能性があります。そのため、受信拒否はせずに結果をヘッダに追加する設定をお勧めします。

例) sid-filter -l -p inet:10000@127.0.0.1 -t -T 10 -A

●表3 sid-filterコマンドラインオプション一覧

例の値 説明
-p inet:10000@127.0.0.1 milterアドレスの指定。このアドレスで接続を受け付ける
-l syslog経由でログを記録
-t ヘッダに検証結果を追加するのみの動作となる
-T 10 SPFレコード検証の際に発生するDNS問い合わせの待ち時間を制限
-A milterプロセスが異常終了した場合自動起動

 

3.3. dk-milter

このプログラムは「DomainKeys」の署名と検証両方の機能を提供します。インストールされたプログラム名は「dk-filter」となります。今回の説明で使用するコマンドラインオプションは以下の通りです。

●表4 dk-filterコマンドラインオプション一覧

例の値 説明
-p inet:10001@127.0.0.1 milterアドレスの指定。このアドレスで接続を受け付ける
-l syslog経由でログを記録
-c nofws 署名時における本文の正規化方法を指定
-b s 署名のみの動作
-b v 検証のみの動作
-i /tmp/hostlist 署名対象とするクライアントのIPアドレスを指定(未指定時は127.0.0.1のみ)
-T 10 DNS問い合わせの待ち時間を制限
-s /tmp/keypath 署名時に使用する秘密鍵のファイルを指定
-d example.com 署名対象とするFromヘッダのドメインを指定
-S key1 署名時に使用するセレクタを指定
-H 署名対象としたヘッダの一覧を明示的に記述
-A milterプロセスが異常終了した場合自動起動

 

(a) 署名

dk-filterの設定の他にDNSのゾーンへ公開鍵を登録する作業が必要になります。署名対象となるのは以下の条件を共に満たす場合です。

  • Fromヘッダのメールアドレスが -d オプションで指定するドメイン
  • MTAに接続したアクセス元IPが -i オプションに指定されたファイルに記述されている

DNSに登録の必要があるものは以下の2つです。

  • _domainkey.ドメイン名         ドメイン全体のポリシーを記述
  • <key1>._domainkey.ドメイン名    検証に使用される公開鍵を記述

鍵は付属するツール gentxt.csh で生成することができます。 生成と同時にDNSのゾーンに記述するレコードも出力されます。

$ cd /tmp/dk-milter-0.3.0/dk-filter
$ ./gentxt.csh  <key1> example.com
<key1>._domainkey IN TXT "g=; k=rsa; t=y; p=MFwwDQYJKoZIhvcN..." ; ……
DomainKey <key1> for example.com

ゾーンに登録、レコードが参照可能であることを確認します。

$ dig <key1>._domainkey.example.com. txt
<key1>._domainkey.example.com 1H IN TXT "g=; k=rsa; t=y; pMFwwDQYJKoZIhvcN..."

_domainkey.example.com. のレコードを記述していない場合はこれも追加します。

$ dig _domainkey.example.com. txt
_domainkey.example.com.     1H IN TXT "t=y; o=~"

上記スクリプトの実行により同一ディレクトリに鍵が生成されます。 生成された秘密鍵 key1.private が -s オプションの引数で指定するファイルです。

$ ls <key1>.p*
<key1>.private   <key1>.public

例) dk-filter -l -p inet:10001@127.0.0.1 -c nofws -b s -s /path/key -i /path/hostlist -d example.com -S <key1> -H -A

署名は、以下のようなヘッダとして追加されます。

DomainKey-Signature: a=rsa-sha1; s=<key1>; d=example.com; c=nofws; q=dns; h=to:from:subject; b=SNJf5........==

(b) 検証

検証のみの場合はDNSレコードの登録、鍵の生成は必要ありません。 標準設定で検証結果によるバウンスメールは発生しません。

例) dk-filter -l -p inet:10002@127.0.0.1 -A -T 10 -b v

検証結果は以下の様なヘッダとして追加されます。

Authentication-Results: mx.example.com; domainkeys=pass

3.4. dkim-milter

このプログラムは「DKIM」の署名と検証両方の機能を提供します。 インストールされたプログラム名は「dkim-filter」となります。

大半のコマンドラインオプションはdk-filterと同じですが、以下の点が変更されています。

  • -c オプションで使用可能な値が変更された
  • -H オプションが標準で有効になった(DKIMの仕様)

(a) 署名

DomainKeys同様にDNSへのレコード登録、鍵の生成が必要です。 互換性があるためDomainKeys用に生成したレコード、鍵をそのまま使えます。

例) dkim-filter -l -p inet:10003@127.0.0.1 -c nowsp -b s -s /path/key -i /path/hostlist -d example.com -S key1 -A

署名結果は以下のようなヘッダとして追加されます。

DKIM-Signature: a=rsa-sha1; c=nowsp; d=example.com; s=key1; t=1123140900; h=To:From; b=YwFxKqMur......==

(b) 検証

検証のみの場合はDNSレコードの登録、鍵の生成は必要ありません。 標準設定で検証結果によるバウンスメールは発生しません。

例)dkim-filter -l -p inet:10004@127.0.0.1 -A -T 10 -b v

検証結果は以下のようなヘッダとして追加されます。

Authentication-Results: mx.example.com header.From=sender@example.com; dkim=pass

 

《PREV》  
《NEXT》
IAjapanについて | 連絡先 | リンク・転載・引用・ロゴ使用について | プライバシーポリシー
 (c) 2001-2009 Internet Association Japan