こんにちは。
DKIM(DomainKeys Identified Mail)を自分のドメインとメールサーバーにねじ込むという小さな経験を共有したいと思います。
私たちが持っています:
チャレンジ: - gmailが有効であると認識し、切望されているものを発行するように、DKIMメッセージ署名システムを理解します:dkim = pass。
最初から始めましょう。 一般的なDKIMとは何ですか。また、メールシステムがDKIMサポート付きでメールを送信するために必要なものは何ですか。
Wikiの
DKIMの説明から:
DomainKeys Identified Mail電子メール認証方法。
DomainKeys Identified Mail(DKIM)テクノロジーは、既存のフィッシング対策とスパム対策をいくつか組み合わせて、正当な電子メールの分類と識別を改善します。 従来のIPアドレスの代わりに、DKIMはメッセージの送信者を決定するために、組織のドメイン名に関連付けられたデジタル署名をメッセージに追加します。 署名は受信者側で自動的に検証されます。その後、送信者の評価を決定するために「ホワイトリスト」と「ブラックリスト」が適用されます。
DomainKeysテクノロジーは、ドメイン名を使用して送信者を認証します。 DomainKeysは、既存のドメインネームシステム(DNS)を使用して公開暗号化キーを送信します。
DKIMを使用するには、次のものが必要です。
- 送信メールに署名するためのメールサーバーによるDKIMサポート。
- 秘密鍵と公開鍵のペアを取得します。
- DNSドメインでのDKIMサポートの可用性に関する必要なレコードを入力します。
DKIMメールサーバーのサポートにより、すべてが明確になりました。 バージョン5.1以降、hMailServerはキーによる送信メールの署名をサポートしています。
ここで、秘密鍵と公開鍵のペアを生成する方法を見つける必要があります。 いくつかのオプションを並べ替えた後、port25.comサービスのWebユーティリティを決定しました。これは、必要なキーの生成に加えて、DNSレコードのヒントも生成します。
www.port25.com/support/support_dkwz.php
特定のフィールド「ドメインセレクタ」に関する簡単な説明。 このフィールドを使用すると、異なるニーズ(たとえば、異なるメールサーバー)の1つのドメインに複数のDKIMレコードをバインドできます。 私の場合、メールサーバーは1つしかなく、セレクタは不要なので、セレクタとして「メール」を選択しました。
受信した秘密キーは、メールサーバーがアクセスできるフォルダー内のサーバーに保存されます。 原則として、公開鍵はファイルとして保存できません。 DNSに必要なエントリを作成する場合にのみ役立ちます。 hMailServerのドメイン構成では、選択したセレクターを示すだけでなく、秘密キーファイルへのパスを指定する必要があります(「メール」をセレクターとして使用したことを思い出してください)。
DNSゾーンファイルでは、次の形式のレコードを指定する必要があります。
_domainkey.example.com。 TXT "t = s; o =〜;"
mail._domainkey.example.com。 TXT "K = RSA \; T = S \; P = MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQmO9AuWRbWPgl / jzDPQodrLfFLFqYYi6bCBnsTOCOJQrFbGgiR1C01j4zLw8XgG3rQ0WAaeg6Z / y39Ah7IONfs5gQuK6eGZMmYwIsZyz2dQoUDmDLCb1WygpkrqsCbyPw3SWGihM4iChOwo7Ovo2mTOWOf5ejeZcP2qqNb9nRMQIDAQAB"
2番目のエントリの_domainkeyの前の「メール」は選択したセレクタにすぎず、「p =」に続く同じエントリの長い文字セットは公開キーです。
すべてのようです。 GmailがDKIMをチェックすることは確かに知られているので、メールサーバーからGmailにメールを送信してみましょう。 Gmailで受け取った手紙を見て、大事な行を確認します。
認証結果:mx.google.com; spf = pass(google.com:example@example.comのドメインは123.123.123.123を許可された送信者として指定します)smtp.mail=example@example.com; dkim = pass header.i=@example.com
DKIMの成功した征服おめでとう)))、私もあなたに願っています。 がんばって。
UPD:外部サービスを使用せずにキーペアを取得するには、OpenSSLを使用できます。
openssl.exe genrsa -out tstpriv.pem 1024-秘密鍵を生成します(1024-鍵の長さ)。
openssl.exe rsa -pubout -in tstpriv.pem -out tstpub.pem-秘密から公開鍵を取得
追加してくれてありがとう
UPD 2: nshopikからの小さな追加:
ドメインでADSPレコード(
RFC5617 )を登録することもできます-これにより、受信サーバーは、手紙に署名する必要があるかどうかを理解できます。
レコードは次のようになります。
_adsp._domainkey.example.com。 TXT "dkim = all"
3つのdkim =値があります。
- all-すべての文字に署名する必要があります
- 破棄可能-署名されていない文字は受け入れられません
- 不明-不足しているエントリと同様
UPD 3: tolik89uからの情報を更新します。
RFC5617のADSPは、テクノロジーが「開始」されていないため、すでにHISTORICとラベル付けされています。 代わりに、現在広く配布されている
DMARCを使用しています:tools.ietf.org/html/rfc7489。