認証サイトの設計と対応ソフトの実際企業責任としてのフィッシング対策(3/4 ページ)

» 2006年03月27日 11時00分 公開
[末政延浩,ITmedia]

sid-milter/dk-milterとsendmailの接続

 sid-milterとdk-milterは、UNIXドメインかINETのソケット通信によってsendmailに接続する。今回は、同じサーバ上で動作するので、UNIXドメインソケットを使う。sid-milter、dk-milterともに、「-p」オプションによりソケットを指定する。

 一方のsendmail側でも、sid-milterやdk-milterとの接続を指定する必要がある。そこで、M4ファイルに次のように各Milterとの接続を定義する。

INPUT_MAIL_FILTER(`sid-milter',`S=local:/var/run/sid-milter.sock,F=T')dnl

INPUT_MAIL_FILTER(`dk-milter',`S=local:/var/run/dk-milter.sock,F=T')dnl

 587番ポートはメールのサブミッションしか許さないので、このポートではsid-milterとdk-milterを動作させない。先述のように、SMTP AUTHで認証したホストしかメールを送信できないように「F=Ea」フラグを追加しておく。

FEATURE(`no_default_msa')dnl

DAEMON_OPTIONS(`Port=587,Name=MSA InputMailFilters=,F=Ea')dnl

各Milterの起動

 sid-milterを次のように起動する。バイナリの名前はsid-milterではなく、「sid-filter」なので気をつけること。

 この際、「-h」でsid-milterが処理したことを示すヘッダをメールに追加し、「r」は“0”に設定して即座に受信拒否しないようにする。また、試験運用であるため、「-t」をつけて起動する。

# sid-filter -p /var/run/sid-milter.sock -h -l -P /var/run/sid-milter.pid -a /etc/mail/sid-ignore-domains -r 0 -t

 dk-milterは、たとえば次のように起動する。

# dk-filter -p /var/run/dk-milter.sock -c nofws -h -l -d example.com -P /var/run/dk-milter.pid -s /etc/mail/dkeys.priv -S june -i /etc/mail/dk-sign-domains

 「sid-ignore-domains」ファイルにはSender IDでのチェックを実施しないドメイン名やホスト名、IPアドレスなどを登録する。自ドメイン名がexample.comで、ゲートウェイMTAから見たイントラネットのネットワークアドレスが「192.168.0.0/24」だとすると、ファイルの内容は次のようになる。

example.com
192.168.0.0/24

 次に、dk-milterによって電子署名する対象となるメールを送信してくるドメイン、ホスト、IPアドレスなどを「dk-sign-domains」ファイルに入れておく。今回の場合、内容はsid-ignore-domainsと同じになる。

 該当のメールサーバを使ってMUAからメールをサブミットする場合は、dk-milterでの処理のあとに「message-id」ヘッダなどがつけられ署名が破壊されてしまうことがあるので、「-H」をつける。そうすると、dk-milterは署名の対象になったヘッダをDomainKey-Signature:ヘッダの「h=」パラメータに自動的に設定してくれる。受信側は、h=パラメータに指定されているヘッダを対象にして署名の検証を行う。

 また「/etc/mail/dkeys.priv」には、最初に作成した鍵のファイルを指定する。PEMのラッピングを削除する必要はない。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ