Exim経由の大量メール送信またはスパムを回避する方法

私のサイトからのメールがほとんどすべての主要なメールサーバーによってスパムに積極的に送信されるようになるまで、人生は美しく、すべてがこの世界でうまくいきました。 このGmailでは特に熱心です。 多くの場合、彼らは私をYandexのスパマーと間違えましたが、mail.ruやランブラーではあまり頻繁ではありません。

画像

提示された要因の全体に基づいて、Eximメールサーバーの設定で何かを行う必要があることが明らかになりました。 これがhabracatの下でどのように行われたかをご覧ください





この話題についてインターネットで少し騒ぎ立てた後、Habré( Postal Kitchen#1:DNSSPFとは何ですか 、居心地の良いメーリングリストでスパマーにならない方法)に関する興味深い記事をいくつか見つけましたが、残念ながらメールサーバー設定の一部のみをカバーしています。 このギャップを埋めようとします。



そのため、debian lennyサーバーとデフォルトのExim 4.72がインストールされています。 Eximのインストールについて説明するのは意味がありません(ここでは複雑なことはありません-sudo apt-get install exim4)。 Eximの初期設定は次のコマンドで実行できることを思い出してください:



dpkg-reconfigure exim4-config







それだけです! サイトはメールを送信する準備ができています。 しかし、3つの「しかし」があります。 メールボックスはSPF、PTR、およびDKIMを非常に好み、実際にそれらが存在しないことを嫌います。 以下に、わずか数分で設定する方法を説明します。



Ptr





まず、PTRを構成します。 PTRは、いわゆる「ライトバック」です。 このファイルでは、メールの送信元ホストのIPアドレスが逆の順序で書き込まれます。 このエントリにより、メーラーはIPによってホスト名を認識します。 ここに少しの理論。



メールサーバーのIPアドレスが78.56.158.23であるとします。 NSサーバー(または、多くの場合、サーバーまたはホストプロバイダーの設定)を開き、次のDNSレコードを追加します(IPを「展開」します)。



23.158.56.78.in-addr.arpa IN PTR mail.mydomain.ru.







変更の確認-http://centralops.net/co/DomainDossier.aspx

FastVPSホストのそのようなエントリがWeb再起動パネルを介して設定されることをここに追加します。



SPF





SPFレコードでは、ドメインからメールを送信できるサーバーを示します。 最も単純な場合、このエントリは次のとおりです。



mydomain.ru. IN TXT "v=spf1 a mx ~all"





および/または(NSでSPFレコードを作成できる場合)

mydomain.ru. IN SPF "v=spf1 a mx ~all"







つまり セクション「a」のDNSレコードとセクション「mx」のメールサーバーを使用して、サーバーからメールを送信できます。

SPFの詳細については、SPFとはを参照してください。



このサービスは、独自のSPF記録オプション-openspf.orgの作成に役立ちます



繰り返しますが、 centralops.netサービスで結果を確認します。



DKIM





郵送を成功させるには、手紙の署名を作成する必要があります。



dkim-filterをインストールします。



apt-get install dkim-filter







次に、署名用のキーペア(公開キーと秘密キー)を生成します。



dkim-genkey -d mydomain.ru -s mail -r







-rは、キーがメールにのみ使用されることを意味します

-sはdkim-selectorという名前を設定します(ドメインの名前など、任意の名前を指定できます)



公開鍵を生成するときに何が起こったのかを見てみましょう。



tail mail.txt





そして私達は見る:

mail._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=MIGfMA0GCS..." ; ----- DKIM mail for mydomain.ru







キー自体は非常に長いため、切り取られました。



このファイルの内容をコピーし、サーバーのDNSレコードに貼り付けます。 すべて公開鍵で完了です。



秘密鍵mail.privateがまだあり、Eximにバインドする必要があります。

mail.privateの名前を変更して、Eximディレクトリにコピーします。



mv mail.private mydomain.ru.key

cp mydomain.ru.key /etc/exim4

chmod 755 /etc/exim4/mydomain.ru.key








または、Eximユーザーのファイルの所有者にchownコマンドを作成し、そのアクセス権を作成することをお勧めします。たとえば、600またはさらに厳しい400です。



chown exim:exim /etc/exim4/mydomain.ru.key

chmod 600 /etc/exim4/mydomain.ru.key








そして今、Exim自体を設定するために残っています:



nano /etc/exim4/exim4.conf.template







remote_smtpセクションを見つけて、その前に追加します。



DKIM_DOMAIN = ${lc:${domain:$h_from:}}

DKIM_FILE = /etc/exim4/${lc:${domain:$h_from:}}.key

DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}








そして、セクション自体をわずかに修正します。



remote_smtp:

driver = smtp

dkim_domain = DKIM_DOMAIN

dkim_selector = mail

dkim_private_key = DKIM_PRIVATE_KEY








dkim_selectorは、公開鍵の._domainkeyの前の最初の単語です



Eximを再起動した後:



/etc/init.d/exim4 restart







次に署名を確認します。 これを行うには、任意のGmailアドレスにメールを送信するだけです。 次に、レターの詳細を確認する必要があり、「署名済み」フィールドでドメインにする必要があります。 または、文字コードを調べて、メッセージヘッダーにDKIM-Signatureフィールドが存在する必要があります。 もしそうなら、おめでとうございます! 署名が機能します!



まとめ





これら3つの簡単な手順は、メールがスパムにならないようにするのに十分です(もちろん、スパマーである場合を除きます)。 たとえば、これらの変更が行われる前は、ほとんどの場合、サイトからのメールはスパムとしてGmailに送信されていました。 次に、迷惑メールとしてマークされるように、手紙に想像できないものを書く必要があります。 幸いなことに、私のすべてのニュースレターが宛先に届きました。



結論として、グレーリストはメールを効率的に配信する別の方法であると言えます。 この場合、最初のメッセージへのメールを受信するメールサーバーは一時的なエラーで応答し、サーバーを「 グレーリスト 」に入力します。このメッセージの繰り返しがサーバーから到着した場合にのみスキップされます。 原則として、スパムプログラムはリプレイを送信しません。



Eximはすべてのホストに対してデフォルトで自動再試行を行います。 構成ファイルのRETRY CONFIGURATIONセクションを見つけて、この指示に従って編集することにより、デフォルトのルールを改善できます。



このトピックのフレームワーク内では、メールサーバーへの手紙を受信するための説明された技術の適用は考慮されませんでした。 これは別の記事のトピックです。



参照:

バルクメーリングの推奨事項

Postal Kitchen#1:DNS

HOWTO:EximとDKIM



All Articles