Exim + DKIMのFreeBSD 8.2の例

DKIMとは何ですか?



DKIMDomainKeys Identified Mailの略)-ドメインキーによって文字を識別する方法。

DKIMは、送信メールにデジタル署名するためにメールサーバーで構成されます。 送信されたメッセージのヘッダーにこのような署名が存在すると、指定されたドメインから実際に送信されたことが受信側サーバーに通知されます。

多くの場合、迷惑メールの[ 差出人]フィールドには、送信者とはまったく関係のない電子メールが送信されることが知られています。 この場合、DKIMは実際のスパムメールを識別するのに役立ちます。 レターにデジタル署名する他の方法とは異なり、DKIMは既存の形式およびプロトコルと互換性があり、既存のメール配信および受信システムにシームレスに統合できます。



メッセージは秘密鍵を使用してSMTPサーバーで署名され、署名は公開鍵を使用して受信者サーバーまたはクライアントプログラムで復号化されます。 興味深いことに、公開鍵はDNSに保存されているため、1石で2羽の鳥を殺すことができます。 まず、各文字に公開鍵を添付して解読する必要はありません。 次に、この場合、DKIMを使用すると、受信者サーバーに、デジタル署名はないが、おそらくあなたから送信された手紙をどうするかを伝えることができます。 このテクノロジーは、ADSP(Author Domain Signing Practices)と呼ばれます。 ADSPはSMTPサーバーのDNSにも保存され、誰でもどこからでもアクセスできます。



EximでDKIMを構成する



まず、秘密鍵と公開鍵のペアを作成する必要があります。

暗号化方式とキーの長さは、Wikipediaで入手できます。

DKIMは、確立された暗号化ツールを使用します。 現時点では、DKIMの作成者はデジタル署名用にRSA-SHA256とRSA-SHA1の2つのアルゴリズムを提供していますが、将来、他のアルゴリズムをサポートするために技術が拡張される可能性があります。 長いキーはUDP UDPパケットの最大サイズ(512バイト)に収まらないため、キーの長さは4096ビットに制限されています。 推奨されるキーの長さは1024〜2048ビットです。 長すぎると、各メッセージを処理するためにサーバーに計算負荷がかかり、PCまたはクラウドコンピューティングサービスを使用して現在の時間にバスティングすることにより、小さすぎる(384または512ビット)がクラックされます。


調査結果によると、1024ビットのキー長でRSAで暗号化されたデータを解読できるようになりました。 したがって、今日最適なのは、2048ビットの長さのRSAキーです。

キーペアを生成するには、オンラインサービスwww.port25.com/support/domainkeysdkim-wizardを使用するか、コンソールでopensslを使用できます。



opensslを介して秘密鍵を生成します


root@server# openssl genrsa -out /usr/local/etc/exim/example.com.key 2048
      
      





出力には、次の形式のキーがあります。

 -----BEGIN RSA PRIVATE KEY----- MIICXQIBAAKBgQDT1tSzyG2Zch4LTgGPbn/8H535Vd+friNn/gBsV7rFNVZdxapD dOUzeATUTbAG/3Ux7vJxYd6i982IajVz0b2dsmkdDzctC4EdJsLcpCpyf3x21nYZ oJO2GjaFW65MNj7dU7BXDerLTE+zTu/Q4vs4ZqCA39CtbmetjBS9l/NsMQIDAQAB AoGBAM2ZyVFAatkQSBaivLwlWknapSPgv4g7h5FSTXeI9i5frx+V1UnRDki+FTx nbH9CErRZh8jZQj4x1Pp+T0SyRtb62ydJooPYIpNlTt71cgZNwH174uFt4HevKmC MJIhzaufEZYhamS4NQOR+4FakdZX2T8yzuvwDwkplJP2tO/tAkEA7RDltCTOShdd sJYs0wjs1mDXUiSz0giFAYvMBvOelpyjJl9Pi1A0CNcD4WdvAl0Xo5aRMVrTXRzf .... -----END RSA PRIVATE KEY-----
      
      





秘密に基づいて公開鍵を生成します


 root@server# openssl rsa -in /usr/local/etc/exim/example.com.key -pubout
      
      





出力は次のようになります。

 -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA3GNADCBiQKBgQDT1tSzyG1Zch4LTgGPbn/8H535 Vd+friNn/gBsV7rFNVZdxapDd0UzeATUTbAG/3Ux7vJxYd6i982IajVz0b2dsmkd DzctC4EdJsLcpCpyf3x21nYZoJO2GjaFW65MNj7dU7BXDerLTE+zTu/Q4vs4ZqCA ... -----END PUBLIC KEY-----
      
      





DNSを修正します


DKIMセレクターを追加する


次の値を使用して、DNSにmail1._domainkey.example.com TXTレコードを作成します。

 k=rsa\; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDT1tSzyG1Zch4LTgGPbn/8H535Vd+friNn/gBsV7rFNVZdxapDdOUzeATUTb...
      
      





(この場合、これはBIND上のDNSサーバーの構文であり、他のDNSサーバーは「;」をエスケープするために「\」記号を必要としない場合があります。

mail1の代わりに、 dkimserverpublicなどの別のセレクターを使用できます。 DKIMには、いくつかの同様の公開キーエントリがあります。

DNSレコードが他のサーバーで更新されるまで待つ必要があります。 これには数時間かかる場合があります。

たとえば、 DNSWatchサービスを使用して、DKIMレコードを確認できます。



ADSPレコードを追加


dkim = unknownを使用してタイプTXTのDNSレコード_adsp._domainkey.example.comに作成します。

不明に加えて、dkimパラメーターにはさらに2つの値-allおよびdiscardableを指定できます。



Eximの設定を編集


ファイル/ usr / local / etc / exim / configureで 、先頭追加します

 ## DKIM: DKIM_DOMAIN = ${lc:${domain:$h_from:}} DKIM_FILE = /usr/local/etc/exim/${lc:${domain:$h_from:}}.key DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}
      
      





この設計により、ドメインごとに異なる秘密鍵を使用できます。

トランスポートremote_smtpを修正します。

  remote_smtp: driver = smtp dkim_domain = DKIM_DOMAIN dkim_selector = mail1 dkim_private_key = DKIM_PRIVATE_KEY
      
      





ここで、 mail1はセレクターです。



設定を保存して再読み込みします。

 root@server# service exim reload
      
      





DKIMチェック



DKIMを確認するには多くの方法があります。 それらのうち2つについて説明します。

1)GmailがメールのDKIMレコードをチェックすることが知られています。 Gmailメールボックスにメールを送信し、ヘッダーを確認します。

フォームの記録を見つける

 Authentication-Results: mx.google.com; spf=pass (google.com: domain of info@example.com designates 100.12.94.241 as permitted sender) smtp.mail=info@example.com; dkim=pass header.i=@example.com
      
      





dkim = passは、DKIMが構成され、成功したチェックに合格したこと意味します。

2)サービスwww.port25.comの DKIMチェッカーを使用します。

check-auth2@verifier.port25.comにテストレターを送信し、それからの検証結果を待ちます。



参照:

DKIM wiki en.wikipedia.org/wiki/DomainKeys_Identified_Mail

DKIM ADSP www.dkim.org/specs/draft-ietf-dkim-ssp-04.html

DKIMウィザードwww.port25.com/support/domainkeysdkim-wizard

HOWTO:EximおよびDKIM forum.lissyara.su/viewtopic.php?f=20&t=22162

男openssl

DNSWatch www.dnswatch.info



All Articles