DKIM / SPF / DMARCレコードの設定またはなりすましに対する防御

こんにちは、Habr! この記事では、DKIM / SPF / DMARCレコードの構成について説明します。 そして、ロシア語での文書の完全な欠如は、私にこの記事を書くように促しました。 私が見つけたこの主題に関するすべての記事は、非常に有益ではありませんでした。



1. DKIM



DKIM(DomainKeys Identified Mail)は、デジタル署名認証に基づく電子メール認証方法です。 公開鍵はTXTドメインレコードに保存されます。



DKIMの動作原理(ウィキペディアから引用)



なぜ必要なのですか?



メールサービスが送信者が信頼できるかどうかを確認できるように、DKIMが必要です。 つまり さまざまな不正な手紙(送信者のアドレスの代わりに送信される)から手紙の受信者を保護します。



DKIM署名とDNSレコードを構成する



このために、キーペアを作成する必要があります。



openssl genrsa -out private.pem 1024 //    1024
      
      





 openssl rsa -pubout -in private.pem -out public.pem //    
      
      





または、オンラインサービスを使用することもできます。これを強くお勧めします。



次に、メールサーバーの構成ファイルの秘密キー(このため、ドキュメントを読むことをお勧めします)とDNSの公開キーを使用してパスを指定する必要があります。



エントリの例は次のとおりです。

mail._domainkey.your.tld TXT "v=DKIM1; k=rsa; t=s; p=< >"







どこで

mail



はセレクターです。 異なるセレクターで複数のレコードを指定できます。各レコードには独自のキーがあります。 複数のサーバーが関係する場合に適用されます。 (各サーバーには独自のキーがあります)

v



-DKIMのバージョン。常に値v=DKIM1



ます。 (必須)

k



はキータイプで、常にk=rsa



です。 (少なくとも今のところ)

p



は、base64でエンコードされた公開キーです。 (必須)

t



フラグ:

t=y



テストモード。 このような区別は、符号なしとは異なり、結果を追跡するためにのみ必要です。

t=s



レコードが属するドメインにのみレコードが使用されることを意味します。サブドメインを使用する場合はお勧めしません。

可能な:

h



優先ハッシュアルゴリズム。値はh = sha1およびh = sha256になります。

s



-DKIMを使用したサービスのタイプ。 値はs=email



(email)およびs=*



(すべてのサービス)で、デフォルトでは「*」です。

;



-セパレータ。



また、手紙に署名する必要があるかどうかを理解できるADSPレコードを処方する価値があります。

_adsp._domainkey.example.com. TXT "dkim=all"







次の3つの値があります。

all



すべての文字に署名する必要があります

discardable



-署名のないメールは受け付けません

unknown



-不明(本質的に、レコードがないことに似ています)



2. SPF



SPF(Sender Policy Framework)-SMTP経由で電子メールを送信するためのプロトコルの拡張。 SPFはRFC 7208( Wiki )で定義されています。 簡単に言えば、SPFは送信者サーバーをチェックしてメッセージを認証するメカニズムです。 私にとっては、このテクノロジーは他のテクノロジー(DKIMおよびDMARC)と併用すると便利です。



SPFの動作原理(インターネットから取得)



SPFレコードを構成する



通常のSPFレコードの例はyour.tld. TXT "v=spf1 a mx ~all"



your.tld. TXT "v=spf1 a mx ~all"





ここに:

v=spf1



はバージョン、常にspf1

a-送信者のドメインのAおよび\またはAAAAレコードで指定されたアドレスからのレターの送信を許可します

mx



-mxドメインレコードで指定されたアドレスからレターを送信できます

(aおよびmxの場合、たとえばa:example.com



、別のドメインを指定できます。送信者のドメインではなく、 example.comを記録できます

また、 ip4:



およびip6:



を使用して個々のIPアドレスを追加することもできip6:



たとえば、 ip4:1.1.1.1



ip6: 2001:0DB8:AA10:0001:0000:0000:0000:00FB



include:



include:spf.example.com



)もありinclude:



これにより、別のドメインのspfレコードを追加で接続できます。 これはすべてスペースと組み合わせることができます。 別のドメインのエントリを補足せずに使用する必要がある場合は、 redirect:



を使用redirect:



が最善redirect:



redirect:spf.example.com





-all



ポリシーに準拠していない文字で何が起こるかを意味し-all



: "-"-拒否、 "+"-スキップ、 "〜"-追加チェック、 "?" -ニュートラル。



3.DMARC



ドメインベースのメッセージ認証、レポートおよび適合性、またはDMARCは、送信者の電子メールドメインの識別に基づいてスパムおよびフィッシング電子メールの数を減らすように設計された組織のグループによって作成された技術仕様です受信者のメールサーバー( Wiki )に設定されたルールと機能に基づきます。 つまり、メールサーバーはメッセージが良いか悪いかを判断し(たとえば、上記のポリシーに基づいて)、DMARCレコードに従って動作します。



DMARCの原則(インターネットから引用)



DMARCレコードの設定



典型的なエントリは次のようになります: _dmarc.your.tld TXT "v=DMARC1; p=none; rua=mailto:postmaster@your.tld"





レポートの準備と送信以外のアクションは実行しません。



タグの詳細:

v



バージョン、値を取るv=DMARC1



(必須パラメーター)

p



はドメインのルールです。 (必須) none



quarantine



reject



場合があります。ここで、

p=none



はレポートを準備するだけです

p=quarantine



はスパムメールを追加します

p=reject



は手紙p=reject



拒否します

sp



はサブドメインを担当し、 p



と同じ値を取ります

aspf



adkim



、レコードadkim



チェックadkim



許可し、 r



s



値を取ることができます。ここで、rは、sよりも緩やかな緩やかなチェックです。

pct



はフィルタリングされる文字の数に責任があり、パーセンテージで示されます。たとえば、 pct=20



は20%の文字をフィルタリングします。

rua



たとえば、 rua=mailto:postmaster@your.tld



、電子メールで日次レポートを送信できます。スペースを使用して複数の電子メールを指定することもできます( rua=mailto:postmaster@your.tld mailto:dmarc@your.tld





レポートの例
 <record> <row> <source_ip>1.1.1.1</source_ip> <count>1</count> <policy_evaluated> <disposition>none</disposition> </policy_evaluated> </row> <identities> <header_from>your.tld</header_from> </identities> <auth_results> <dkim> <domain>your.tld</domain> <result>pass</result> <human_result></human_result> </dkim> <spf> <domain>your.tld</domain> <result>pass</result> </spf> </auth_results> </record> <record> <row> <source_ip>1.1.1.1</source_ip> <count>1</count> <policy_evaluated> <disposition>none</disposition> <reason> <type>forwarded</type> <comment></comment> </reason> </policy_evaluated> </row> <identities> <header_from>your.tld</header_from> </identities> <auth_results> <dkim> <domain>your.tld</domain> <result>pass</result> <human_result></human_result> </dkim> <spf> <domain>your.tld</domain> <result>pass</result> </spf> </auth_results> </record>
      
      







ruf



-DMARC検証に合格しなかった手紙のレポート。 それ以外の場合、すべては上記と同じです。



エピローグ



DKIM / SPF / DMARCを設定し、なりすましに抵抗する方法を学びました。 残念ながら、これは、サーバーがハッキングされたり、これらのテクノロジーをサポートしていないサーバーにレターを送信した場合のセキュリティを保証するものではありません。 幸いなことに、人気のあるサービスはまだそれらをサポートしています(これらのポリシーのイニシエーターもあります)。



この記事は、一種のドキュメントである自己調整レコードの説明です。 各サーバーは一意であり、独自の構成が必要であるため、意図的な既製の例はありません。



私は建設的な批判と修正を喜んでいます。



All Articles