「広告」

rspamdで、arc認証を行うためのメモです。

「広告」
記事内に広告が含まれています。
「広告」
「広告」

gmailへの転送問題

1)外部からのメール

2)自サーバー(管理サーバー)に到着

3)gmailに転送

という場合、1)の「To:」(宛先)は、「自サーバーのドメイン」です。
2)で、「gmail.com」宛てに転送されます。

この転送がやっかいで、gmail.com側に到着すればいいのですが、「迷惑メール」扱いで、
エラーになる場合があります。この場合、エラーは、1)の、外部のメールに戻る。

外部の方は、「エラーになった」「もう一度送ってみる」「電話で聞いてみる」
など、混乱状態になります。
そして、2)の受信者は、「エラーになったことを知りません」

(なぜ、そんなに転送が好きなの?・・・(笑))

「広告」

gmailの転送エラーを回避する方法

A)転送をやめる
そして、gmail側で、2)のメールを受信するようにする。
B)DKIM、DMARC、ARC の設定をして、gmail側でエラーにならないようにする。

上記、B)ですが、「絶対にエラーにならない」という保証はないです・・・

今回、B)に関連した「arc認証」の設定についてのメモです。

「広告」

gmail側、arc認証がない場合

ARC-Authentication-Results: i=1; mx.google.com;
       dkim=pass header.i=(外部からのメールのFQDN) header.s=(外部からのメールのセレクタ) header.b=fIncgzmu;
       spf=softfail (google.com: domain of transitioning (外部からのメール) does not designate (送信元IP) as permitted sender) smtp.mailfrom=(外部からのメール);
       dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=(外部からのメールのFQDN)

↑「ARC-Authentication-Results」というブロックに注目します。

arc認証が有効でないと、上記のようになります。「dkim」「spf」「dmarc」の記述はありますが、「arc」の記述はありません。

「広告」

arc認証 rspamd設定

rspamdでは、arc認証が、標準で組み込まれていて、有効になっています。
設定ファイルを置いてあげれば、arc認証がなされます。

公式サイトは、

ARC module
Rspamd is an advanced spam filtering system and email processing framework that allows evaluation of messages by a numbe...

です。

上記、ページには、

The configuration of this module is similar to the dkim and dkim_signing modules.

と、書かれており、同じように設定をすることができます(設定を流用することができます)。

その1)dkimの「秘密鍵」「公開鍵」を利用

dkimの「秘密鍵」「公開鍵」が利用可能です。
DNSの変更もしなくてもいいです。

/etc/rspamd/local.d/
のフォルダに、「arc.conf」というファイルを作成して、

dkimで、設定した記述をそのまま書きます。「domain」セクションのみです。

domain {
    (ドメイン) {
        selector = "(セレクタ)";
        path = "/etc/opendkim/keys/(ドメイン)/(セレクタ).private";
    }
}

と、記述します。

その2)arc専用の「秘密鍵」「公開鍵」を作成

# mkdir /var/lib/rspamd/arc
# cd /var/lib/rspamd/arc
# rspamadm dkim_keygen -s '(セレクタ)' -b 2048 -d (ドメイン) -k (ドメイン).private > (ドメイン).txt
# chown -R _rspamd._rspamd /var/lib/rspamd/arc

↑上記のコマンドを実行します。
「セレクタ」は、dkimと同じように、YYYYMMDDの数字で設定しておりますが、我流です(笑)。

上記のコマンドで、

drwxr-xr-x 2 _rspamd _rspamd    52 XXX XX XX:XX .
drwxr-xr-x 3 _rspamd _rspamd 24576 XXX XX XX:XX ..
-rw-r----- 1 _rspamd _rspamd  1708 XXX XX XX:XX (ドメイン).private
-rw-r--r-- 1 _rspamd _rspamd   455 XXX XX XX:XX (ドメイン).txt

↑というファイルが作成されます。

/etc/rspamd/local.d/
のフォルダに、「arc.conf」というファイルを作成して、

dkimで、設定した記述をそのまま書きます。「domain」セクションのみです。

domain {
    (ドメイン) {
        selector = "(セレクタ)";
        path = "/var/lib/rspamd/arc/(ドメイン).private";
    }
}

と記述します。

「(ドメイン).txt」の内容をDNSに反映させます。

(セレクタ)._domainkey IN TXT ( "v=DKIM1; k=rsa; "
        "(英数字)"
        "(英数字)"
) ;

↑「(ドメイン).txt」は、上記のような内容になっています。

「広告」

rspamd デバック

rspamdの動作をチェックするため、一時的に、ログにデバック情報を出力します。

/etc/rspamd/local.d/logging.inc

というファイルを作成して、

level = "debug";

と記述します。

# systemctl restart rspamd

再起動します。

「広告」

メールのテスト

外部から、自社サーバー(今回、変更されたサーバー)にメールを送り、gmail.com側に自動転送をしてみます。

自社サーバーのログ

# grep arc /var/log/rspamd/rspamd.log|grep -v dmarc
2023-XX-XX XX:XX:XX #XXXXXX(normal) <XXXXXX>; arc; arc.lua:572: update signature with header: arc-message-signature:i=1; a=rsa-sha256; c=relaxed/relaxed; d=(ドメイン); s=(セレクタ);

というように、ログが記述されます。

gmail.com側のログ

受信したメールの「ソース」を見てみます。

Authentication-Results: mx.google.com;
       dkim=pass header.i=@(ドメイン) header.s=(セレクタ) header.b=XOdL7Lbi;
       arc=pass (i=1 spf=pass spfdomain=(ドメイン) dkim=pass dkdomain=(ドメイン) dmarc=pass fromdomain=(ドメイン));
       spf=softfail (google.com: domain of transitioning (メール) does not designate (送信元IP) as permitted sender)

↑「Authentication-Results」のブロックを見てみます。
「arc=pass」と表示されました。
これで、arcが、「認証成功」となります。

ARC-Seal: i=2; a=rsa-sha256; t=1697002528; cv=pass;

というところも、注目点で、「cv=pass」となっています。

上記、arcの認証が、「成功」となります。

タイトルとURLをコピーしました