「広告」

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 Documentation
This module verifies ARC signatures and seals for scanned emails, which demonstrate the message's authenticity through a...

です。

上記、ページには、

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をコピーしました