過去数年間、インターネットは、スパムを効果的に
防ぐためのツールとして
DMARCテクノロジーを積極的に導入してきました。
dmarc.orgや
Habrahabrの記事など、専門のリソースで見つけた方がよい技術的な詳細に入らない場合、
DMARCの本質は、まず、
SPFおよび
DKIMチェックの結果に基づいて、受信者サーバーにアクションを通知する可能性です検証中に問題が検出された場合に実行する必要があります。次に、このドメインのメッセージ送信元に関する統計と運用レポートを取得します。
上記に基づいて、特定のメールサーバーにDMARCサポートを実装するタスクは、送信ドメインポリシーがローカルに実装され、グローバルなスパム対策プロセスへの貢献として分析レポートを送信することです。
Exim SMTPサーバーがインストールされている
FreeBSDシステムのDMARCのセットアップを検討してください。
root@beta:~
1. OpenDMARCの構成
DMARCサポートと対応する設定オプションを有効にするには、
Experimental_DMARCオプション、およびDMARCが不可能な
DKIMと
Experimental_SPFのサポートを使用してEximをコンパイルする必要があります。
root@beta:~
同時に、機能を確実にインストールするために必要な
OpenDMARCパッケージが自動的にインストールされます。
root@beta:~
まず、OpenDMARCの基本設定を行う必要があります。 サンプル構成ファイルをドキュメントに使用する場合、これは非常に単純であり、深刻な修正を必要としません。
root@beta:~
システムでDMARCを確保するには、これらのオプションのうち4つで十分です。
- AuthservIDは、レポートを送信するサーバーの名前を決定します。DNSAレコードに表示されるメインホスト名を指定することをお勧めします。
- ForensicReportsには、送信者ドメインポリシーによって要求された場合に問題の即時レポートを送信することが含まれます。
- ForensicReportsSentByは、レポートの送信者のアドレスを設定します。この場合、誤って設定されたDMARCレコードの配信エラーメッセージを受信しないように、ローカルに存在しないアドレスです。
- HistoryFileは、レポートを生成するための統計を収集するための一時ファイルの場所を最終的に決定します。
上記の統計用ファイルをすぐに作成します。
root@beta:/usr/local/etc/mail
2. DMARCをサポートするためのEximの構成
次に、Exim構成に変更を加えます。
aclを開始する前の変数の初期値のセクションで、ブロックを追加します。
root@beta:/usr/local/etc/exim
最後の2つのオプションは、OpenDMARC構成ファイルと同じ役割を果たします。 最初の
dmarc_tld_fileは、Mozilla Foundationの
パブリックドメインサフィックスの現在のデータベースを定義します。 長い箱で問題を遅らせることなく、そのローカルコピーをダウンロードします。
root@beta:/usr/local/etc/exim
CRONで最新の状態に保つことをお勧めします。
root@beta:/usr/local/etc/exim
Eximの構成設定はサーバーのニーズと異なる場合があるため、DMARCの使用に関する一般的な推奨事項について説明します(
公式ドキュメントの「DMARCサポート」セクションも参照してください)。
まず、次のコマンドを使用して、対応するACLルールの
+ relayfromhostsリストから構成を確認し、信頼できるホストのDMARCチェックを無効にすることをお勧めします(そうしたサービスが特に必要な場合を除く)
control = dmarc_disable_verify
その他すべての場合、DMARCの機能をサポートし、さらに、ルールによる要求の運用レポートを有効にすることが賢明です。
warn control = dmarc_enable_forensic
認証されたユーザーと信頼できるホストからメールを受信した直後に、
acl_smtp_dataセクションの送信ドメインで指定され
た DMARCポリシーの
適用を開始
するのが妥当です。 最も単純なケースでは、指定された
拒否ポリシーの電子メールの受信を拒否し、
検疫ポリシーのスパム基準であるカウンターにポイントを追加します。 ただし、必要に応じて、オプションのDMARCレコードフィールド、たとえば
pctを使用して、より細かいサポートを実装できます。
accept authenticated = *
accept hosts = +relay_from_hosts
# --- check sender's DMARC policy
warn dmarc_status = *
add_header = $dmarc_ar_header
deny dmarc_status = reject
message = Rejected by sender's DMARC policy
warn dmarc_status = quarantine
set acl_c0 = ${eval:$acl_c0+40}
set acl_c1 = QDMARC(40) suspicious message according DMARC policy; $acl_c1
Eximのセットアップは終了し、行った設定を使用して再起動できます。
root@beta:/usr/local/etc/exim
サーバー上の送信ドメインのDMARCポリシーの実装のサポートが実装されています。 さらに、サーバーは、手紙の受け取りを拒否した場合、フォレンジックレポートを送信することにより、ドメイン所有者のレポートシステムに状況を即座に通知します。 以下は、そのような報告書の例です。
リターンパス:<>
Envelope-to:d@ruf.agari.com
納期:2016年5月18日(水)19:25:30 +0200
受信:my.serverによるmailnullからのローカル(Exim 4.87(FreeBSD))
id 1b35Du-0000Te-QK
d@ruf.agari.com; 2016年5月18日水曜日19:25:30 +0200
自動送信:自動返信
From:noreply@my.server
宛先:d@ruf.agari.com
件名:IP 190.223.42.106のmail.ruのDMARCフォレンジックレポート
メッセージID:<E1b35Du-0000Te-QK@my.server>
日付:2016年5月18日水曜日19:25:30 +0200
あなたからのメッセージは公開されたDMARCに失敗しました
ドメインのポリシー。
送信者ドメイン:mail.ru
送信者IPアドレス:190.223.42.106
受信日:2016年5月18日水曜日19:25:30 +0200
SPFアライメント:いいえ
DKIMアライメント:いいえ
DMARC結果:拒否
-これは、エラーの前に受信したヘッダーのコピーです
検出されました。
受信:[190.223.42.106]から
esmtpを使用したmy.server(Exim 4.87(FreeBSD))
(envelope-from <outletqn@mail.ru>)
id 1b35Du-0000TE-Eb
sales@my.server; 2016年5月18日水曜日19:25:30 +0200
受信:[163.116.8.100]から(アカウントfrontenace19@inbox.ru HELO exbtaaovmshlgq.peejojgxxotd.tv)
by(CommuniGate Pro SMTP 5.2.3)
sales@my.serverのESMTPA ID 745786287を使用。 2016年5月18日水曜日12:17:49 -0500
日付:2016年5月18日水曜日12:17:49 -0500
From:=?Koi8-r?B?48XO1NIg4dfUz83B1MnawcPJyQ ==?= <Outletqn@mail.ru>
X-Mailer:バット! (v2.12.00)教育
X-Priority:3(通常)
メッセージID:<2803497135.OXX007B0034066@xnfwvhhklng.fffnarj.va>
宛先:<sales@peek.ru>
件名:=?Koi8-r?B?8M8g0M / Xz8TVIMvPztTSz8zRIMvB3sXT1NfBINDSz8TVy8PJyQ ==?=
MIMEバージョン:1.0
コンテンツタイプ:テキスト/プレーン;
文字セット= koi8-r
コンテンツ転送エンコード:8ビット
Received-SPF:softfail(my.server:mail.ruの移行ドメインは、許可された送信者として190.223.42.106を指定しません)client-ip = 190.223.42.106; envelope-from=outletqn@mail.ru; helo = [190.223.42.106];
3. DMARCレポート配布のセットアップ
今こそ、DMARCレポートの定期的な配布を実装するときです。
このためには、まずレポートの送信者と受信者のデータベースを作成し、次にレポートの配布を実装する必要があります。
このシステムでは、メールサービスの操作のサポートなど、関連する多くのサービスで
MySQLデータベースサーバーが使用されるため、OpenDMARCデータベースの保存に使用します。
root@beta:/usr/local/etc/exim
次に、Eximによって収集された統計情報を使用して、一時ファイルからデータベースを更新するスクリプトを作成します。
root@beta:/usr/local/share/doc/opendmarc
OpenDMARCパッケージの3つのユーティリティを使用します。 最初の
opendmarc-importは一時的な統計ファイルからデータを
インポートし、2番目の
opendmarc-reportsは1つのドメインに対して24時間ごとに1回の間隔で
レポートを生成します。 インポート後、統計ファイルは消去されます。
6時間ごとに1回の頻度で、作成したスクリプトをCRONに追加します。
root@beta:/usr/local/etc/exim
実際、これで設定は完全に完了しました。また、スパムとの積極的な戦いでの良い側への移行が完了しました。