送信ドメイン認証(SPF/DKIM/DMARC)を行って、送信元メールアドレスを騙ったなりすましメール対策をします。
以下のページがなりすまし対策について詳しいですね。
とりあえずDMARCレポートを送信したりARCヘッダをつけるところまで、Rspamdを使って行いたいと思います。
ここで使ったRspamdのバージョンは3.8.4です。更新が速いので設定した書式など変わることもあります。
Rspamdのインストール
公式サイトに従って、Rspamdをインストールします。
Redisデータベースのインストール
クイックスタートでは、まず前提となるプログラムの設定など書かれています。
PostfixやDovecotは設定が済んでいますが、さらにRedisが必要なので、これをインストールします。
[root@ace ~]# dnf install redis
サブスクリプション管理リポジトリーを更新しています。
メタデータの期限切れの最終確認: 1:52:56 前の 2024年02月29日 11時27分12秒 に実施 しました。
依存関係が解決しました。
================================================================================
パッケージ
Arch バージョン リポジトリー サイズ
================================================================================
インストール:
redis x86_64 6.2.7-1.el9 rhel-9-for-x86_64-appstream-rpms 1.3 M
トランザクションの概要
================================================================================
インストール 1 パッケージ
ダウンロードサイズの合計: 1.3 M
インストール後のサイズ: 4.7 M
これでよろしいですか? [y/N]: y
:
省略
:
インストール済み:
redis-6.2.7-1.el9.x86_64
完了しました!
[root@ace ~]#
さらに以下の設定を行います。
[root@ace ~]# cp -p /etc/redis/redis.conf /etc/redis/redis.conf.orig
[root@ace ~]# vi /etc/redis/redis.conf
[root@ace ~]# diff /etc/redis/redis.conf /etc/redis/redis.conf.orig
63d62
< bind 127.0.0.1
996d994
< maxmemory 500mb
1026d1023
< maxmemory-policy volatile-ttl
[root@ace ~]#
bindでローカルホストのIPv4しか聞かないようにしておきます。あとは、クイックスタートに書かれている通りの設定です。
[root@ace ~]# systemctl enable redis
Created symlink /etc/systemd/system/multi-user.target.wants/redis.service → /usr/lib/systemd/system/redis.service.
[root@ace ~]# systemctl start redis
[root@ace ~]# systemctl status redis
● redis.service - Redis persistent key-value database
Loaded: loaded (/usr/lib/systemd/system/redis.service; enabled; preset: di>
Drop-In: /etc/systemd/system/redis.service.d
mqlimit.conf
Active: active (running) since Wed 2024-03-06 16:12:47 JST; 5min ago
Main PID: 84816 (redis-server)
Status: "Ready to accept connections"
Tasks: 5 (limit: 23114)
Memory: 6.6M
CPU: 275ms
CGroup: /system.slice/redis.service
mq84816 "/usr/bin/redis-server 127.0.0.1:6379"
3月 06 16:12:47 ace.zeke.ne.jp systemd[1]: Starting Redis persistent key-value>
3月 06 16:12:47 ace.zeke.ne.jp systemd[1]: Started Redis persistent key-value >
[root@ace ~]#
設定が終わったら、自動起動の有効化、起動をしておきます。
Rspamdのインストール
[root@ace ~]# source /etc/os-release
[root@ace ~]# export EL_VERSION=`echo -n $PLATFORM_ID | sed "s/.*el//"`
[root@ace ~]# curl https://rspamd.com/rpm-stable/centos-${EL_VERSION}/rspamd.repo > /etc/yum.repos.d/rspamd.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 169 100 169 0 0 73 0 0:00:02 0:00:02 --:--:-- 73
[root@ace ~]# yum install rspamd
サブスクリプション管理リポジトリーを更新しています。
Rspamd stable repository 233 B/s | 833 B 00:03
Rspamd stable repository 2.2 kB/s | 3.9 kB 00:01
GPG 鍵 0xBF21E25E をインポート中:
Userid : "Vsevolod Stakhov (Rspamd packages key) <vsevolod@rspamd.com>"
Fingerprint: 3FA3 47D5 E599 BE45 95CA 2576 FFA2 32ED BF21 E25E
From : http://rspamd.com/rpm/gpg.key
これでよろしいですか? [y/N]: y
Rspamd stable repository 2.9 kB/s | 16 kB 00:05
メタデータの期限切れの最終確認: 0:00:01 前の 2024年02月29日 13時57分57秒 に実施 しました。
依存関係が解決しました。
================================================================================
パッケージ Arch バージョン リポジトリー サイズ
================================================================================
インストール:
rspamd x86_64 3.8.4-1.el9 rspamd 4.5 M
依存関係のインストール:
hyperscan x86_64 5.4.1-2.el9 epel 2.3 M
jemalloc x86_64 5.2.1-2.el9 epel 203 k
libgfortran x86_64 11.4.1-2.1.el9 rhel-9-for-x86_64-baseos-rpms 807 k
libquadmath x86_64 11.4.1-2.1.el9 rhel-9-for-x86_64-baseos-rpms 200 k
libsodium x86_64 1.0.18-8.el9 epel 161 k
openblas x86_64 0.3.21-2.el9 rhel-9-for-x86_64-appstream-rpms 38 k
openblas-serial x86_64 0.3.21-2.el9 rhel-9-for-x86_64-appstream-rpms 4.6 M
トランザクションの概要
================================================================================
インストール 8 パッケージ
ダウンロードサイズの合計: 13 M
インストール後のサイズ: 67 M
これでよろしいですか? [y/N]: y
:
省略
:
インストール済み:
hyperscan-5.4.1-2.el9.x86_64 jemalloc-5.2.1-2.el9.x86_64
libgfortran-11.4.1-2.1.el9.x86_64 libquadmath-11.4.1-2.1.el9.x86_64
libsodium-1.0.18-8.el9.x86_64 openblas-0.3.21-2.el9.x86_64
openblas-serial-0.3.21-2.el9.x86_64 rspamd-3.8.4-1.el9.x86_64
完了しました!
[root@ace ~]#
途中でkeyを使うところで「これでよろしいですか?」と聞いてきますが、すべてYesで継続します。
ツールを使って設定を行います。ここでは
- Webインターフェース用のパスワード
- Redisサーバとのインターフェース
- DKIM用秘密鍵、公開鍵の作成
を行います。
[root@ace ~]# rspamadm configwizard
____ _
| _ \ ___ _ __ __ _ _ __ ___ __| |
| |_) |/ __|| '_ \ / _` || '_ ` _ \ / _` |
| _ < \__ \| |_) || (_| || | | | | || (_| |
|_| \_\|___/| .__/ \__,_||_| |_| |_| \__,_|
|_|
Welcome to the configuration tool
We use /etc/rspamd/rspamd.conf configuration file, writing results to /etc/rspamd
Modules enabled: mime_types, dkim, trie, force_actions, forged_recipients, chartable, whitelist, maillist, spf, emails, mid, dkim_signing, phishing, bayes_expiry, arc, fuzzy_check, milter_headers, elastic, once_received, dmarc, asn, multimap, settings, regexp, hfilter, metadata_exporter, rbl
Modules disabled (explicitly): bimi, http_headers, known_senders, mx_check, external_relay, aws_s3, dcc, p0f, rspamd_update, spamtrap
Modules disabled (unconfigured): dynamic_conf, ip_score, external_services, reputation, spamassassin, maps_stats, fuzzy_collect, antivirus, clickhouse, metric_exporter, clustering
Modules disabled (no Redis): history_redis, ratelimit, neural, greylist, url_redirector, replies
Modules disabled (experimental):
Modules disabled (failed):
Do you wish to continue?[Y/n]: y
Setup WebUI and controller worker:
Controller password is not set, do you want to set one?[Y/n]: y
Enter passphrase:
Set encrypted password to: $2$…秘密情報…
Redis servers are not set:
The following modules will be enabled if you add Redis servers:
* history_redis
* ratelimit
* neural
* greylist
* url_redirector
* replies
Do you wish to set Redis servers?[Y/n]: y
Input read only servers separated by `,` [default: localhost]: 127.0.0.1:6379
Input write only servers separated by `,` [default: 127.0.0.1:6379]:
Do you have any username set for your Redis (ACL SETUSER and Redis 6.0+)[y/N]: n
Do you have any password set for your Redis?[y/N]: n
Do you have any specific database for your Redis?[y/N]: n
Do you want to setup dkim signing feature?[y/N]: y
How would you like to set up DKIM signing?
1. Use domain from mime from header for sign
2. Use domain from SMTP envelope from for sign
3. Use domain from authenticated user for sign
4. Sign all mail from specific networks
Enter your choice (1, 2, 3, 4) [default: 1]: 1
Do you want to sign mail from authenticated users? [Y/n]: y
Allow data mismatch, e.g. if mime from domain is not equal to authenticated user domain? [Y/n]: y
Do you want to use effective domain (e.g. example.com instead of foo.example.com)? [Y/n]: n
Enter output directory for the keys [default: /var/lib/rspamd/dkim/]:
Enter domain to sign: mail.zeke.ne.jp
Enter selector [default: dkim]: default
Do you want to create privkey /var/lib/rspamd/dkim/mail.zeke.ne.jp.default.key[Y/n]: y
You need to chown private key file to rspamd user!!
To make dkim signing working, to place the following record in your DNS zone:
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtHV1bqjwLIFJTBde0dKb0R/kLxHTJ3LgIf2wSKwYwraH02ZxGQ+D0ZgtUYXe9EQzdQz21pn9NG+APreydGK0pHhr46KucZKkU4Nu12XWsD0ylTKI+2xbnmQ/o6iKWFohliXdlgoqMZpqE0UdfMD2V6Rv5n9Qh72rECoK9Od84OqtDRgcKSVjfILrrnu4fXVEBDRnCiKmk3kDX4GzUYJBwRtk+io2bArEQr9HDw0gX6bwupHmRgv7VqzlF823vq3/fk2OxruJiLx6xlRGxfgQ1qi3JJjDOrMbRkpefPmJpeKRaGjrwSnHDj2Ouw+o8sS5GlUCmyh7xMMDxs+vPvfznwIDAQAB
Do you wish to add another DKIM domain?[y/N]: y
Enter domain to sign: zeke.ne.jp
Enter selector [default: dkim]: default
Do you want to create privkey /var/lib/rspamd/dkim/zeke.ne.jp.default.key[Y/n]: y
You need to chown private key file to rspamd user!!
To make dkim signing working, to place the following record in your DNS zone:
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtKECPCGBjqZk10rwhk9awKdUZzkBTvs7IJ6vYYrM4I3pH4gRH1NHdkhu/csPy2djVLqpBnlE75Gdm+CxZSGxmmFxXGCPcs5DGl0WXrTjrtCYHgRGOX/0oo8KEUFIHvVfgzCTJfiSwCKeGiBtNjfzNVYT5IrDDgt1klU4AiF32bGHI5kSUfLp2ezg+OoFbe9qETq1OhlPrPvD6a+FJA/fylQlHyD+9gx4r3iLHJb2nT7RUG+sJIpjfS8RfQwDbD6OapnU53x+DP2ZEPp4jppdp6cDiEStickPH7jbeYeRffkVcmgYuwhHC9yWjIlrQk+ijtJqCmzsPMymVOV9TVKnZQIDAQAB
Do you wish to add another DKIM domain?[y/N]: n
File: /etc/rspamd/local.d/worker-controller.inc, changes list:
password => $2$…秘密情報…
File: /etc/rspamd/local.d/redis.conf, changes list:
read_servers => 127.0.0.1:6379
write_servers => 127.0.0.1:6379
File: /etc/rspamd/local.d/dkim_signing.conf, changes list:
use_domain => header
allow_hdrfrom_mismatch => true
allow_hdrfrom_mismatch_sign_networks => true
allow_username_mismatch => true
domain => {[zeke.ne.jp] = {[selector] = default, [path] = /var/lib/rspamd/dkim/zeke.ne.jp.default.key}, [mail.zeke.ne.jp] = {[selector] = default, [path] = /var/lib/rspamd/dkim/mail.zeke.ne.jp.default.key}}
sign_authenticated => true
use_esld => true
Apply changes?[Y/n]: y
Create file /etc/rspamd/local.d/worker-controller.inc
Create file /etc/rspamd/local.d/redis.conf
Create file /etc/rspamd/local.d/dkim_signing.conf
3 changes applied, the wizard is finished now
*** Please reload the Rspamd configuration ***
[root@ace ~]#
赤字が入力した部分です。設定ファイルは
[root@ace ~]# ls -al /etc/rspamd/local.d/
合計 16
drwxr-xr-x 2 root root 78 2月 29 14:33 .
drwxr-xr-x 7 root root 4096 2月 29 13:59 ..
-rw-r--r-- 1 root root 426 2月 29 14:33 dkim_signing.conf
-rw-r--r-- 1 root root 67 2月 29 14:33 redis.conf
-rw-r--r-- 1 root root 103 2月 29 14:33 worker-controller.inc
[root@ace ~]#
[root@ace ~]# cat /etc/rspamd/local.d/dkim_signing.conf
use_domain = "header";
allow_hdrfrom_mismatch = true;
allow_hdrfrom_mismatch_sign_networks = true;
allow_username_mismatch = true;
domain {
zeke.ne.jp {
selector = "default";
path = "/var/lib/rspamd/dkim/zeke.ne.jp.default.key";
}
mail.zeke.ne.jp {
selector = "default";
path = "/var/lib/rspamd/dkim/mail.zeke.ne.jp.default.key";
}
}
sign_authenticated = true;
use_esld = false;
[root@ace ~]# cat /etc/rspamd/local.d/redis.conf
read_servers = "127.0.0.1:6379";
write_servers = "127.0.0.1:6379";
[root@ace ~]# cat /etc/rspamd/local.d/worker-controller.inc
password = "$2$…秘密情報…";
[root@ace ~]#
こちらに作成されました。Rspamdのお作法として、設定ファイルの変更は元の設定ファイルと同じ名前で差分を/etc/rspamd/local.d/に格納することになっています。
送信ドメイン認証の設定
DKIMの残りの設定
[root@ace ~]# ls -al /var/lib/rspamd/dkim/
合計 8
drwxr-xr-x 2 root root 71 2月 29 14:32 .
drwxr-xr-x 3 _rspamd _rspamd 95 2月 29 14:31 ..
-rw------- 1 root root 1675 2月 29 14:32 mail.zeke.ne.jp.default.key
-rw------- 1 root root 1675 2月 29 14:32 zeke.ne.jp.default.key
[root@ace ~]#
DKIMの秘密鍵は/var/lib/rspamd/dkim/に作成されているので、ツールに言われた通り
[root@ace ~]# chown -R _rspamd:_rspamd /var/lib/rspamd/dkim
[root@ace ~]# ls -al /var/lib/rspamd/dkim/
合計 8
drwxr-xr-x 2 _rspamd _rspamd 71 2月 29 14:32 .
drwxr-xr-x 3 _rspamd _rspamd 95 2月 29 14:31 ..
-rw------- 1 _rspamd _rspamd 1675 2月 29 14:32 mail.zeke.ne.jp.default.key
-rw------- 1 _rspamd _rspamd 1675 2月 29 14:32 zeke.ne.jp.default.key
[root@ace ~]#
と、所有者を_rspamdに変更しておきます。また、内容を現行で使っているものに直しておきます。
DMARCの設定
[root@ace ~]# vi /etc/rspamd/local.d/dmarc.conf
[root@ace ~]# cat /etc/rspamd/local.d/dmarc.conf
reporting {
enabled = true;
email = "postmaster@mail.zeke.ne.jp";
domain = "zeke.ne.jp";
org_name = "zeke.ne.jp";
bcc_addrs = ["postmaster@mail.zeke.ne.jp"];
helo = 'localhost';
from_name = 'DMARC Aggregate Report';
msgid_from = 'mail.zeke.ne.jp';
}
[root@ace ~]#
DMARCによるチェック機能は有効になっているのですが、レポート機能はデフォルトで無効になっているので有効にします。その他、送信元メールアドレスやドメインなど設定します。
ちなみにDMARCのレポートは失敗レポート(なりすましメールが届いたら即時ドメイン管理者に詳細レポートを送る)と集計レポート(1日ごとに届いたメールを正常メール、なりすましメールともに集計してドメイン管理者に送る)がありますが、RspamdのDMARCレポート機能は集計レポートしか対応していないようです。
しかし、失敗レポートはなしすましが多いとその分だけメールを送ることになるし、受信者のメールアドレスも向こうのドメイン管理者にわかってしまいます。扱いが難しいので、レポート機能があったとしても使っていないでしょう。
集計レポートを出すコマンドはrspamadm dmarc_reportなのでこれをcronに入れます。
[root@ace ~]# vi /etc/cron.daily/rspamadm_dmarc_report
[root@ace ~]# cat /etc/cron.daily/rspamadm_dmarc_report
#!/bin/sh
/usr/bin/rspamadm dmarc_report > /dev/null 2>&1
[root@ace ~]#
[root@ace ~]# chmod ugo+x /etc/cron.daily/rspamadm_dmarc_report
[root@ace ~]# ls -l /etc/cron.daily/rspamadm_dmarc_report
-rwxr-xr-x 1 root root 59 2月 29 17:08 /etc/cron.daily/rspamadm_dmarc_report
[root@ace ~]#
ARCの設定
[root@ace ~]# vi /etc/rspamd/local.d/arc.conf
[root@ace ~]# cat /etc/rspamd/local.d/arc.conf
use_esld = false;
domain {
zeke.ne.jp {
path = "/var/lib/rspamd/dkim/zeke.ne.jp.default.key";
selector = "default";
}
mail.zeke.ne.jp {
path = "/var/lib/rspamd/dkim/mail.zeke.ne.jp.default.key";
selector = "default";
}
}
[root@ace ~]#
メールを転送したときに参照されるARCを設定します。
sign_local = trueでローカルのホストから転送されたときもARCで署名するようにします。
use_esld = falseでサブドメインでも署名できるようにします。(trueだとサブドメインの分もドメイン(zeke.ne.jp)で署名します。)DKIMの設定と同様です。
秘密鍵、公開鍵はDKIMと同じものを使用します。
DNSの設定
送信ドメイン認証(SPF/DKIM/DMARC)はメールサーバだけではなくDNSサーバの設定が必要になります。
MXレコードの設定
まずは「このドメインやホストのメールサーバはこれです!」と周知させるためのDNSのMXレコードが必要ですね。
[root@ace ~]# cat /var/named/external/zeke.ne.jp.zone
$TTL 3600
@ IN SOA ns.zeke.ne.jp. root.mail.zeke.ne.jp. (
2024022901 ; Serial
3600 ; Refresh after 1 hour
600 ; Retry after 10 minute
1209600 ; Expire after 2 weeks
3600 ) ; Minimum TTL of 1 hour
;
86400 IN NS ns.zeke.ne.jp.
86400 IN NS joeker.zeke.ne.jp.
;
IN A 203.152.220.46
IN AAAA 2001:2c0:cd03:ca00::ace
IN CAA 0 issue "letsencrypt.org"
IN CAA 0 iodef "mailto:zeke@mail.zeke.ne.jp"
IN MX 10 mail.zeke.ne.jp.
:
省略
:
mail IN A 203.152.220.46
IN MX 10 mail.zeke.ne.jp.
:
省略
:
[root@ace ~]#
ここでは、メールサーバをmail.zeke.ne.jpに集約しています。
ちなみにメールが送られてこないはずのホスト(サブドメイン)に対しては
IN MX 0 .
と、メールを受け取らないことを明記しています。
今回、DNSサーバでは外部用(external view)と内部用(internal view)に分けていますが、メールサーバ自身も参照するので、外部用(external view)と内部用(internal view)の両方同じ定義をしないといけません。(これはMXレコードも同じですけど、つい忘れてしまうので)
そうしないと、自分宛に自分のドメインのなりすましメールが来たとき、Rejectできないんですよね。
以下の説明ではexternal viewを例示しますが、internal viewにも同じ設定を入れてください。
SPFの設定
これは簡単ですね。DNSサーバにメールを送信するサーバを列挙するだけです。
DNSサーバのゾーンファイルを以下のように変えました。
[root@ace ~]# cat /var/named/external/zeke.ne.jp.zone
$TTL 3600
@ IN SOA ns.zeke.ne.jp. root.mail.zeke.ne.jp. (
2024022901 ; Serial
3600 ; Refresh after 1 hour
600 ; Retry after 10 minute
1209600 ; Expire after 2 weeks
3600 ) ; Minimum TTL of 1 hour
;
86400 IN NS ns.zeke.ne.jp.
86400 IN NS joeker.zeke.ne.jp.
;
IN A 203.152.220.46
IN AAAA 2001:2c0:cd03:ca00::ace
IN CAA 0 issue "letsencrypt.org"
IN CAA 0 iodef "mailto:zeke@mail.zeke.ne.jp"
IN MX 10 mail.zeke.ne.jp.
IN TXT "v=spf1 +mx -all"
:
省略
:
mail IN A 203.152.220.46
IN MX 10 mail.zeke.ne.jp.
IN TXT "v=spf1 +mx -all"
:
省略
:
[root@ace ~]#
「 IN TXT “v=spf1 +mx -all”」が追記したところです。MXレコードで指定したメールサーバ以外からメールを送信しない指定です。
DKIMの設定
こちらはちょっと複雑になりますね。DNSサーバのゾーンファイルに公開鍵を設定し、メールを秘密鍵で署名したものをメールのヘッダに書くようにします。
[root@ace ~]# cat /var/named/external/zeke.ne.jp.zone
$TTL 3600
@ IN SOA ns.zeke.ne.jp. root.mail.zeke.ne.jp. (
2024022901 ; Serial
3600 ; Refresh after 1 hour
600 ; Retry after 10 minute
1209600 ; Expire after 2 weeks
3600 ) ; Minimum TTL of 1 hour
;
86400 IN NS ns.zeke.ne.jp.
86400 IN NS joeker.zeke.ne.jp.
;
IN AAAA 2001:2c0:cd03:ca00::ace
IN A 203.152.220.46
IN CAA 0 issue "letsencrypt.org"
IN CAA 0 iodef "mailto:zeke@mail.zeke.ne.jp"
IN MX 10 mail.zeke.ne.jp.
IN TXT "v=spf1 +mx -all"
default._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCmy0a6tJ/PGRfVWlsnFzRhujKXQ9yPqT/YiRjue2tVrcUEwmTs4J0c7wy+WmmqUbrBLK/OgLECZYfaCGMI3nYNu2/VCTMVQMNdbPwSp9uSneXGiTL4c5rsL3njAqVuAL19PB6p/6VzUaVdJNO6AxbRmVFrf7sqHm5jf3l+zln+zQIDAQAB" )
:
省略
:
mail IN A 203.152.220.46
IN MX 10 mail.zeke.ne.jp.
IN TXT "v=spf1 +mx -all"
default._domainkey.mail IN TXT ( "v=DKIM1; k=rsa; "
"p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCtNVK5fzrqmijxlKKxP8XaeRvxVdqceWG+q5637XYip6ToguvNdG8o1qG8Df8yiQQojisaGgG10mgTPgrZ+432Fpsaa0IuCBCKbeUDSVV6XnTCavV1dPgi9FMkq+h4gspYwE8kGFmkF19NEDOnZVi40CNIgJNSFWmg/N5ux+oUvQIDAQAB" )
:
省略
:
[root@ace ~]#
DKIMの書式は「セレクタ名._domainkey.ドメイン名 IN TXT “v=DKIM1; k=鍵方式名; p=公開鍵”」になります。実際には公開鍵が長いので2行に分けています。
ちなみにDKIMのカギを切り替えるときには、以前出したメールが転送されDKIMが参照されることを考えて、古い公開鍵も残しておかなくてはなりません。
そのため、新しい鍵はセレクタ名を変えて、同じドメイン別セレクタで共存させる必要があります。
だからセレクタ名は作成日付とか連番とかをつけておいた方が良かったかなと後悔しています。
DMARCの設定
DMACのレコードも追加します。
[root@ace ~]# cat /var/named/external/zeke.ne.jp.zone
$TTL 3600
@ IN SOA ns.zeke.ne.jp. root.mail.zeke.ne.jp. (
2024030201 ; Serial
3600 ; Refresh after 1 hour
600 ; Retry after 10 minute
1209600 ; Expire after 2 weeks
3600 ) ; Minimum TTL of 1 hour
;
86400 IN NS ns.zeke.ne.jp.
86400 IN NS joeker.zeke.ne.jp.
;
IN AAAA 2001:2c0:cd03:ca00::ace
IN A 203.152.220.46
IN CAA 0 issue "letsencrypt.org"
IN CAA 0 iodef "mailto:zeke@mail.zeke.ne.jp"
IN MX 10 mail.zeke.ne.jp.
IN TXT "v=spf1 +mx -all"
default._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCmy0a6tJ/PGRfVWlsnFzRhujKXQ9yPqT/YiRjue2tVrcUEwmTs4J0c7wy+WmmqUbrBLK/OgLECZYfaCGMI3nYNu2/VCTMVQMNdbPwSp9uSneXGiTL4c5rsL3njAqVuAL19PB6p/6VzUaVdJNO6AxbRmVFrf7sqHm5jf3l+zln+zQIDAQAB" ; DKIM key default for zeke.ne.jp )
_dmarc IN TXT ( "v=DMARC1; p=reject;"
"rua=mailto:postmaster@mail.zeke.ne.jp,mailto:ipm3u6i@ar.glockapps.com,mailto:c0ynbw35@ag.jp.dmarcian.com;" )
:
省略
:
mail IN A 203.152.220.46
IN MX 10 mail.zeke.ne.jp.
IN TXT "v=spf1 +mx -all"
default._domainkey.mail IN TXT "v=DKIM1; k=rsa; "
"p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCtNVK5fzrqmijxlKKxP8XaeRvxVdqceWG+q5637XYip6ToguvNdG8o1qG8Df8yiQQojisaGgG10mgTPgrZ+432Fpsaa0IuCBCKbeUDSVV6XnTCavV1dPgi9FMkq+h4gspYwE8kGFmkF19NEDOnZVi40CNIgJNSFWmg/N5ux+oUvQIDAQAB" ; DKIM key default for mail.zeke.ne.jp
_dmarc.mail IN TXT ( "v=DMARC1; p=reject;"
"rua=mailto:postmaster@mail.zeke.ne.jp,mailto:ipm3u6i@ar.glockapps.com,mailto:c0ynbw35@ag.jp.dmarcian.com;" )
*._report._dmarc.mail IN TXT "v=DMARC1"
:
省略
:
[root@ace ~]#
書式は「_dmarc.ドメイン名 IN TXT “v=DMARC1; p=DMARCポリシー; rua=mailto:DMARCレポート送信先メールアドレス;”」となります。
DMARCポリシーは最初は「none」でドメイン名がなりすましされていても無視、でもDMARCレポートは送るの設定が良いと思います。その後、後述するDMARCレポートの分析を行って自分でなりすましメールを出していないことを確認できたらポリシーを「Reject」に変更するのが良いと思います。
DMARCレポートには、1日一回送られてくる集計レポートとDMARCが失敗するたびに送られてくる失敗レポートの2種類あります。
失敗レポートはメールの送信者と受信者のメールアドレスが入っていて詳細に調査できるようにはなっていますが、自分のところのメールアドレスを教えてしまうこと、失敗するたびに送るのでDDOSに加担する可能性があることから使われていないようです。
こちらも、集計レポートのあて先だけ書いています。
さらにmail.zeke.ne.jpには、「*._report._dmarc.mail IN TXT “v=DMARC1″」を追加しています。
これは、別ドメインからDMARCレポートを受け入れるとき必要になります。
例えば、zeke.ne.jpのDMARCレポートの宛先は「postmaster@mail.zeke.ne.jp」になっていますが、これを受け入れるためにmail.zeke.ne.jpのドメイン側に「zeke.ne.jp._report._dmarc.mail.zeke.ne.jp.」のレコードが必要になります。実際にはmail.zeke.ne.jpはzeke.ne.jpに含まれているから無条件でDMARCレポートを送ってくれるみたいですけどね。
ここでは先頭のドメイン名を*にして、「すべてのドメインのDMARCレポートをmail.zeke.ne.jpドメインで受け入れる」と設定しています。
ARCの設定
ARCについては、公開鍵をDKIMと共用しているので、DNSサーバの設定はありません。
もし、DKIMと共用しない場合は、公開鍵をセレクタ名を変えてDNSサーバに登録すればよいと思います。
メールを出さないドメインのDNS設定
送信ドメイン認証の設定とはちょっとずれますが、メールを出さないドメインがあったら以下のようにDNSで設定します。
IN A xxx.xxx.xxx.xxx
IN MX 0 .
IN TXT "v=spf1 -all"
_dmarc IN TXT "v=DMARC1; p=reject; rua=mailto:postmaster@mail.zeke.ne.jp;"
メールを送受信しないドメインですが、Webサーバ用などにAレコードがあるとします。
MXレコードは最高の優先順位でホスト名は存在しない意味の「.」と設定します。
SPFの設定では該当ドメインで送信するホストは存在しない設定にします。
DMARCのポリシーは「Reject」万が一なりすましメールを出されたときの集計レポートの提出先を設定しておきます。
Webインターフェースの設定
RspamdにはWebのGUIで状況を見たり設定を変更したりする機能があります。
[root@ace ~]# vi /etc/rspamd/local.d/worker-controller.inc
[root@ace ~]# cat /etc/rspamd/local.d/worker-controller.inc
bind_socket = "*:11334";
password = "…秘密情報…";
[root@ace ~]#
上記のファイルに「bind_socket = “*:11334”;」を追加すればLAN内のパソコンからつばげることができます。
Webサーバに組み込んでhttpsポートを使う設定が紹介されていますが、自分はLAN内からしか操作しないため、「http://IPアドレス:11334」でつなげて使っています。外部からアクセスできないポートを使えばセキュリティとか気にしなくてよいですからね!
Rspamdの起動
[root@ace ~]# systemctl enable rspamd
Created symlink /etc/systemd/system/multi-user.target.wants/rspamd.service → /usr/lib/systemd/system/rspamd.service.
[root@ace ~]# systemctl start rspamd
[root@ace ~]# systemctl status rspamd
● rspamd.service - rapid spam filtering system
Loaded: loaded (/usr/lib/systemd/system/rspamd.service; enabled; preset: e>
Active: active (running) since Wed 2024-03-06 16:26:35 JST; 9s ago
Docs: https://rspamd.com/doc/
Main PID: 85024 (rspamd)
Tasks: 5 (limit: 23114)
Memory: 63.3M
CPU: 578ms
CGroup: /system.slice/rspamd.service
tq85024 "rspamd: main process"
tq85025 "rspamd: rspamd_proxy process (localhost:11332)"
tq85026 "rspamd: controller process (*:11334)"
tq85027 "rspamd: normal process (localhost:11333)"
mq85028 "rspamd: hs_helper process"
3月 06 16:26:35 ace.zeke.ne.jp systemd[1]: Started rapid spam filtering system.
3月 06 16:26:35 ace.zeke.ne.jp rspamd[85024]: 2024-03-06 16:26:35 #85024(main)>
[root@ace ~]#
Rspamdの自動起動の有効化と起動を行います。
送信ドメイン認証の動作確認
送信ドメイン認証が正しく動作しているか、みんな大好きGoogle様のGmailを使って確認します!
動作確認は設定を全く同じにした現行のメールサーバで行います。
SPF,DKIM,DMARCの確認
[root@myhome zeke]# telnet localhost 25
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.zeke.ne.jp ESMTP Postfix
EHLO mail.zeke.ne.jp
250-mail.zeke.ne.jp
250-PIPELINING
250-SIZE 10485760
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
MAIL FROM: zeke@mail.zeke.ne.jp
250 2.1.0 Ok
RCPT TO: **ユーザ名**@gmail.com
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
From: zeke@mail.zeke.ne.jp
Subject: Test Mail
This is Test
.
250 2.0.0 Ok: queued as 5A932206EC4B
QUIT
221 2.0.0 Bye
Connection closed by foreign host.
[root@myhome zeke]#
赤字が入力した文字列です。メールアプリ使うと本名とか隠すのが面倒なので、telnetを使ってGmail宛に出してみました。
Delivered-To: **ユーザ名**@gmail.com
Received: by 2002:a2e:9c8e:0:b0:2d0:e331:629c with SMTP id x14csp1227195lji;
Fri, 1 Mar 2024 21:45:47 -0800 (PST)
X-Forwarded-Encrypted: i=2; AJvYcCWlsj5igDWnKRn2/OdCH6lVOsutShCC6yfHNcJMwZwUZbPmGtcxLtc7+bKRGIscINdtp1AYtHsR8/zfVWGYWpkynegX
X-Google-Smtp-Source: AGHT+IGWHrzYA0ug5Px3YD4v5WR11OX00bh0SUAGfYXA7YeB71Yf2dPGYw8zYuZSvyITjLs8V4b5
X-Received: by 2002:a05:6808:3a0c:b0:3c1:adf5:88d with SMTP id gr12-20020a0568083a0c00b003c1adf5088dmr5203275oib.43.1709358347150;
Fri, 01 Mar 2024 21:45:47 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1709358347; cv=none;
d=google.com; s=arc-20160816;
b=CJm8pB4oCG2jRipP5rsWjEQVYnwS9r9xW/KK94HrIa1G85ejJJmnM89uPj8ml3zK8q
7r/Ch114jWQQ+/O0YqNYELYtY3Hy01pASuAbqIEjHPkV+/04gYjBMOHAlmGae8WnVp1a
8WY7SmJmY7QB3ukappyLGuabfoHT1wyMMnO4d8+geEb0DodUHeSPTwvofzjqgHtSZQJf
qtoGmPgPcRfitSj3XneKptVsz8BOgpXxEBsSbulN0kuuRjYag7apOZg0f/qa2tvbnuZL
am7HE4PCLqQNoQhK9a3RPZF/wDhQhmkss00DETDKjwQJnzX8yP/lrnf1Rs6EwIGArbld
KDOQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
h=date:message-id:subject:from:dkim-signature;
bh=36NsGjc39RNsaut2J4L+3VuIC4XWmyB8Jmdw/DkVpwM=;
fh=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=;
b=ghAc6liR5Op9B8kacprGzAaVj1TRinDrwp50hnxAydJplxvBBhwMChXRygmmStWYn6
fX3+so2pBI46beFKALEHD1LIZSwwE2B8QOedhT6KXw0PmPVPlYNZr89ZVxxG0IiXr1iZ
Ru3yEhjYf11DgCSy3TtJyxlqopzbF0Rh6eMbqdbQpwute/dhCsgFHGofQx+u1UMmMSnA
yQ93J2/f4V3eSABsKhmr9/e9QBJmMLdKjICsrAduSYPQ769q0nFlc+DF04ApWLFvyjNR
h8Ctt1G4lFzfqOJBnsnoM7N4CVJf9uL3ypTdeWtKttyggS0sgB0IuUOIp2WIYInQqOST
KIkA==;
dara=google.com
ARC-Authentication-Results: i=1; mx.google.com;
dkim=pass header.i=@mail.zeke.ne.jp header.s=default header.b=ElHxH+Wp;
spf=pass (google.com: domain of zeke@mail.zeke.ne.jp designates 203.152.220.46 as permitted sender) smtp.mailfrom=zeke@mail.zeke.ne.jp;
dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=mail.zeke.ne.jp
Return-Path: <zeke@mail.zeke.ne.jp>
Received: from mail.zeke.ne.jp (myhome.zeke.ne.jp. [203.152.220.46])
by mx.google.com with ESMTPS id v3-20020a170902d68300b001dc84ab0941si4643988ply.436.2024.03.01.21.45.46
for <**ユーザ名**@gmail.com>
(version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
Fri, 01 Mar 2024 21:45:47 -0800 (PST)
Received-SPF: pass (google.com: domain of zeke@mail.zeke.ne.jp designates 203.152.220.46 as permitted sender) client-ip=203.152.220.46;
Authentication-Results: mx.google.com;
dkim=pass header.i=@mail.zeke.ne.jp header.s=default header.b=ElHxH+Wp;
spf=pass (google.com: domain of zeke@mail.zeke.ne.jp designates 203.152.220.46 as permitted sender) smtp.mailfrom=zeke@mail.zeke.ne.jp;
dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=mail.zeke.ne.jp
Received: from mail.zeke.ne.jp (unknown [127.0.0.1])
by mail.zeke.ne.jp (Postfix) with ESMTP id 5A932206EC4B
for <**ユーザ名**@gmail.com>; Sat, 2 Mar 2024 14:45:10 +0900 (JST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.zeke.ne.jp;
s=default; t=1709358345;
h=from:from:reply-to:subject:subject:date:date:message-id:message-id:to:
cc; bh=36NsGjc39RNsaut2J4L+3VuIC4XWmyB8Jmdw/DkVpwM=;
b=ElHxH+Wp76Uv+YV7q4akn9gWHd2+7RnA7BdghuOzmGapNbjNjt8lBcNrEfF2hbop80e5Jj
M0eLHN8OBLfp9qygH1zBeGX3sFK+5pTwVFtUr1P2yLKda26neMUDfntxcoRQK8nHjTJB9T
ebtfC6Cl85G0RSqrZcHXXtj6GQpO61s=
From: zeke@mail.zeke.ne.jp
Subject: Test Mail
Message-Id: <20240302054514.5A932206EC4B@mail.zeke.ne.jp>
Date: Sat, 2 Mar 2024 14:45:10 +0900 (JST)
This is Test
Gmailに到着したヘッダを含めたメールです。
チェックするのは「DKIM-Signature:」と「Authentication-Results:」のヘッダですね。
「DKIM-Signature:」ではmail.zeke.ne.jpのドメインとdefaultのセレクタで署名がされているのが確認できます。
また、「Authentication-Results:」ではGoogle様がspfとdkimのチェックに合格したとおっしゃっています。また、dmacも合格し、失敗したときの設定(p=Reject)も認識されています。
問題なさそうですね。
ARCの確認
ARCはメールの転送を行うときに関係するので、テストはちょっと難しいです。
- yahoo.co.jpからmail.zeke.ne.jpの転送用メールアドレス宛にメールを送信。
- 転送用メールアドレス宛に届いたmail.zeke.ne.jpはエンベローブFromをzeke@mail.zeke.ne.jpに書き換えてgmail.comに転送。
- 転送先Gmailアドレスの設定に従い、メールをzeke@mail.zeke.ne.jpに転送。
チェックポイントは②の転送でmail.zeke.ne.jpがARCヘッダを正しくつけることができるか、と③の転送でgmailのARCヘッダをmail.zeke.ne.jpが正しく解釈できるかになります。
Return-Path: <**ユーザ名**+caf_=zeke=mail.zeke.ne.jp@gmail.com>
X-Original-To: zeke@mail.zeke.ne.jp
Delivered-To: zeke@mail.zeke.ne.jp
Received: from mail-lj1-f179.google.com (unknown [209.85.208.179])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
(No client certificate requested)
by mail.zeke.ne.jp (Postfix) with ESMTPS id 16EEA206EC4B
for <zeke@mail.zeke.ne.jp>; Sat, 2 Mar 2024 15:09:16 +0900 (JST)
ARC-Message-Signature: i=4; a=rsa-sha256; c=relaxed/relaxed; d=mail.zeke.ne.jp;
s=default; t=1709359756;
h=from:from:reply-to:reply-to:subject:subject:date:date:
message-id:message-id:to:to:cc:mime-version:mime-version:
content-type:content-type:
content-transfer-encoding:content-transfer-encoding:
references:references:dkim-signature;
bh=36NsGjc39RNsaut2J4L+3VuIC4XWmyB8Jmdw/DkVpwM=;
b=f7qKlDhiY914EmyQGa2ahKIg/cERB/zcD/gVi9ksvUgY1aZA6iOQ9rOutwN+Gpwbs7b2TH
j7VzN6MKBK3xnctxlMsqjITKBRjuUUxzfrBAaCOfQFVMMM3zykrkLSS/fNRYA53C3F9DYx
1OVHJsQ7/RGzgH+IbI2fynnbhidHtLY=
ARC-Seal: i=4; s=default; d=mail.zeke.ne.jp; t=1709359756; a=rsa-sha256;
cv=pass;
b=eu5TFjlnr9zMEtPR+CSNORdWxvAolwHJvar6lPK4wdEQlzI0go5tdRAU6dYX/B2C94378r
/Yk1W41KCWFSG378o2kgNMUTGCTyFrTqbhWa/cCa39yDZqLiyx8jVkSfU2MQ8Nl4NPdXc2
7m5DFf5YTe/9+DgiGuYpCBDQVqv94bI=
ARC-Authentication-Results: i=4;
mail.zeke.ne.jp;
dkim=pass header.d=yahoo.co.jp header.s=yj20110701 header.b=E2kWGmeH;
arc=pass ("google.com:s=arc-20160816:i=3");
spf=pass (mail.zeke.ne.jp: domain of "**ユーザ名**+caf_=zeke=mail.zeke.ne.jp@gmail.com" designates 209.85.208.179 as permitted sender) smtp.mailfrom="**ユーザ名**+caf_=zeke=mail.zeke.ne.jp@gmail.com";
dmarc=pass (policy=quarantine) header.from=yahoo.co.jp
Received: by mail-lj1-f179.google.com with SMTP id 38308e7fff4ca-2d220e39907so38375931fa.1
for <zeke@mail.zeke.ne.jp>; Fri, 01 Mar 2024 22:09:15 -0800 (PST)
ARC-Seal: i=3; a=rsa-sha256; t=1709359754; cv=pass;
d=google.com; s=arc-20160816;
b=lWa2yAM8Lnj7iOFafJXDnVQvfJ5yBrRNxWBiPcawbX2cz/fK4467X5RVOt7GDwFWrv
Cp/6VjLdMgyESrYUQo8Gv1ncJz1AZMYN+tmmg5kzwt9c8n7d9D0jJM63cPai+24vIts2
206WAkZHKdmmGaqfEstktfw//UA90ZR47uZA39OIptk/Lz7MgWJZpVRRJ3MGCjtg4WZy
jrbrqIuYurkkLdSFTpt9RFor7YaaivLhC/v0PqxncXDI2a7bL0ZpQUS0d1e1vJcjBsT3
rxl/qNyV9nmRFtq+4ElYw3YR5Lxi0/JNe2AmNV5Bf95+Cis2ZfGtpO+KD4tCCEoataT7
sIhw==
ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
h=references:content-transfer-encoding:mime-version:subject
:message-id:to:reply-to:from:date:domainkey-signature:dkim-signature
:delivered-to:delivered-to;
bh=36NsGjc39RNsaut2J4L+3VuIC4XWmyB8Jmdw/DkVpwM=;
fh=uMRcTHcFooKlPeOTkA3T7Uta4bdfXHPHuUsWD+Even8=;
b=u/WxVplBeDlgdixSN560rgKgjVNtUJ/W3VhJH8Ui5EY8Jm7N+iPkXic62oiqfJIBQd
xRAp+WeDFx+pHGveefTv/LJWRsFJyOWYiPWOA6/AY0BS4FTzYzEoFTQVGUKMbFCgo7+7
cFBqkHSqFbKVt2FyK/YtdG0zU0rOdaGaeyL4JzD3iOUNwHCILPs1eqkb7F5mgvp4iItR
/pFCnGwW6uw6EaB7L5r4MvytA4O2zpuFFs3+DXkm4eopEeFhlfQjfQFS+1ea7GKiglMg
RJhLYNh5biZuomW+JX1H73pfFHoS01YmLS/HegRqmp6jBFS487vDQpOww1frMJ931wBM
cKOg==;
darn=mail.zeke.ne.jp
ARC-Authentication-Results: i=3; mx.google.com;
dkim=pass header.i=@yahoo.co.jp header.s=yj20110701 header.b=E2kWGmeH;
arc=pass (i=1 spf=pass spfdomain=yahoo.co.jp dkim=pass dkdomain=yahoo.co.jp dmarc=pass fromdomain=yahoo.co.jp);
spf=pass (google.com: domain of zeke@mail.zeke.ne.jp designates 203.152.220.46 as permitted sender) smtp.mailfrom=zeke@mail.zeke.ne.jp;
dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=yahoo.co.jp
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1709359753; x=1709964553;
h=references:content-transfer-encoding:mime-version:subject
:message-id:to:reply-to:from:date:domainkey-signature:dkim-signature
:delivered-to:delivered-to:x-forwarded-for:x-forwarded-to
:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
bh=36NsGjc39RNsaut2J4L+3VuIC4XWmyB8Jmdw/DkVpwM=;
b=jFxvidvTumO7phZFrww/HSUlksQZVHoh/Re0HTHpykrOvNLKwOidL2T8sf2gQONDcz
W4Oe9pCfMNGLBJq5jjh+OGKQ6+x1xNqjopXvmoY8JjzCTZ2ChPtK3vTxBH/FkNqspgXe
p6nl0efPe1R5y6Qk//28hfJRvpMADCzidRu/YXaPgkdme03MWzc3G1mHhDsFjfsR8Dir
91iM+j7fE3epI6+2pkYYMC3yosqoWynI/03LlwRupLQFxb7jbh9VdOyHLJ1K8q3Xkzq3
GKY+TuhEtZVa3ejRJhWgjJ3R8F/At59gZV1sh1H45ebbTlIejDlCyC0+K5YGGcLv7bYv
RWkw==
X-Forwarded-Encrypted: i=3; AJvYcCV2JXZjenbfYX6DJsbsTpLnaB0SpzSp3Os4kuPaOHky3JEmOYM6b1ac8+1Smp9e6AHNFf9lM30/CVfUGcuwGTTzUsQ75g==
X-Gm-Message-State: AOJu0YweRYF0Qr57lfAFAkIB87ZbhXbmQzEDvCuk1DdgF4JhqSvpyZpe
Wtxd5KDt1AXxCIHO/56ae2G3aSC41j85zed8eYsF+CgkO/tt81EtjUlIgeG+we1bf3LA6igr5yd
efxWjJgkSxI8CE0H1H2TnPqTX4+gh5s4GfkbzjNhyRtGOd4SGflVPN9551ybP
X-Received: by 2002:a2e:804a:0:b0:2d2:3c10:4b6c with SMTP id p10-20020a2e804a000000b002d23c104b6cmr2683341ljg.24.1709359753379;
Fri, 01 Mar 2024 22:09:13 -0800 (PST)
X-Forwarded-To: zeke@mail.zeke.ne.jp
X-Forwarded-For: **ユーザ名**@gmail.com zeke@mail.zeke.ne.jp
Delivered-To: **ユーザ名**@gmail.com
Received: by 2002:a2e:9c8e:0:b0:2d0:e331:629c with SMTP id x14csp1231881lji;
Fri, 1 Mar 2024 22:09:12 -0800 (PST)
X-Forwarded-Encrypted: i=3; AJvYcCUpc3D47Ukn4UZv5Xyqqq+17qaIXREepC8bO9W6SsJ6CO21php/tcwhqCFtr07pIOQ1HnnXIIk9Katj10++6b+FLysH
X-Google-Smtp-Source: AGHT+IGLTHAqdpEJKzFDQ7peuBbd5GRzSN5tqc0fs9mIFXuswo9kfq32JpLHZ3KqAECuxyGB2ddD
X-Received: by 2002:a05:6808:b04:b0:3c1:3a0c:c1c8 with SMTP id s4-20020a0568080b0400b003c13a0cc1c8mr3441689oij.51.1709359752132;
Fri, 01 Mar 2024 22:09:12 -0800 (PST)
ARC-Seal: i=2; a=rsa-sha256; t=1709359752; cv=pass;
d=google.com; s=arc-20160816;
b=PgA3MNApjEVHMtdDqfzgTsUrHPGIZBFwYX9aV1FdF3jqJ/+qQ5vOhgqNWpF9rYz/4V
9ntN/fc0TJgC+KVaYmCAuB2nrp+4iqiY/h9tliBVpxDPRtwh2g7yNP8NuC+7sP1RuuzA
Ct5K+1be0a6tVqh9Kyl3u0mr/M22LXJAZXBUNxLQ+v8AIpSah597QLpflpm5ETWTOrnf
rzHWqLkL0OrvXHk4UOkHquvobARfjy63F80psNn/gKoUpkkpSKHemuVv3mj1DtyNa6Na
AAQqR+PSQZ0h83SwIoGyMdqgvbHW7pxIPY/phbIw1sCjN7YeMSuU+dH1r5zHoVPfBPqt
3xjg==
ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
h=references:content-transfer-encoding:mime-version:subject
:message-id:to:reply-to:from:date:domainkey-signature:dkim-signature
:delivered-to;
bh=36NsGjc39RNsaut2J4L+3VuIC4XWmyB8Jmdw/DkVpwM=;
fh=LR3o12Ebw4og0CT99CNuynLvCEOgxQzK9kAuKRmJQW4=;
b=Svm9eZLjzaljpDX4coAHKaAtex9VA1rXMp1UwB9zP6i5kaVR2THKUjo39+6Tlo0MDG
lM5bblNxjI+XuT4np3LKZZkgSm52kgmp5MnmrumqbkRDf61qhSe6eXik/YmG35zfWpP7
zdE13t7KPZjtBATlRyvlYRK3EILjdyVPtLfSSVMGR3Tz26TrSYNoTxeVrSxUg3qXrFfA
D059HhOUJ9QbfkYlgyigpDZlcbmx0QChyoUFL5SwAl8+qUevDV9wWcFSp4P9JrtkbbZa
2dD/cnRLcdstNjJ6ij+dx2vv4djI7M/XlB77vQ4PnAmYx9orzggVepURrzzyv7pcUZow
0NFQ==;
dara=google.com
ARC-Authentication-Results: i=2; mx.google.com;
dkim=pass header.i=@yahoo.co.jp header.s=yj20110701 header.b=E2kWGmeH;
arc=pass (i=1 spf=pass spfdomain=yahoo.co.jp dkim=pass dkdomain=yahoo.co.jp dmarc=pass fromdomain=yahoo.co.jp);
spf=pass (google.com: domain of zeke@mail.zeke.ne.jp designates 203.152.220.46 as permitted sender) smtp.mailfrom=zeke@mail.zeke.ne.jp;
dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=yahoo.co.jp
Received: from mail.zeke.ne.jp (myhome.zeke.ne.jp. [203.152.220.46])
by mx.google.com with ESMTPS id w24-20020a631618000000b005dc7e8a6d6fsi5059704pgl.520.2024.03.01.22.09.11
for <**ユーザ名**@gmail.com>
(version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
Fri, 01 Mar 2024 22:09:11 -0800 (PST)
Received-SPF: pass (google.com: domain of zeke@mail.zeke.ne.jp designates 203.152.220.46 as permitted sender) client-ip=203.152.220.46;
Authentication-Results: mx.google.com;
dkim=pass header.i=@yahoo.co.jp header.s=yj20110701 header.b=E2kWGmeH;
arc=pass (i=1 spf=pass spfdomain=yahoo.co.jp dkim=pass dkdomain=yahoo.co.jp dmarc=pass fromdomain=yahoo.co.jp);
spf=pass (google.com: domain of zeke@mail.zeke.ne.jp designates 203.152.220.46 as permitted sender) smtp.mailfrom=zeke@mail.zeke.ne.jp;
dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=yahoo.co.jp
Received: by mail.zeke.ne.jp (Postfix, from userid 99)
id B6E1B206EC4E; Sat, 2 Mar 2024 15:09:10 +0900 (JST)
X-Original-To: **転送用**@mail.zeke.ne.jp
Delivered-To: **転送用**@mail.zeke.ne.jp
Received: from omggw0022.mail.otm.yahoo.co.jp (unknown [182.22.18.42])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
(No client certificate requested)
by mail.zeke.ne.jp (Postfix) with ESMTPS id 8B59D206EC4B
for <**転送用**@mail.zeke.ne.jp>; Sat, 2 Mar 2024 15:09:07 +0900 (JST)
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.zeke.ne.jp;
s=default; t=1709359748;
h=from:from:reply-to:reply-to:subject:subject:date:date:
message-id:message-id:to:to:cc:mime-version:mime-version:
content-type:content-type:
content-transfer-encoding:content-transfer-encoding:
references:references:dkim-signature;
bh=36NsGjc39RNsaut2J4L+3VuIC4XWmyB8Jmdw/DkVpwM=;
b=RqcgDlsi7nLuB0x/qMglg+gUnA9E/kkMVsNX5xIUbDyYQ97i6ddZlsBzMXnv+rHcAXm9Es
cjRq9hxY+N1qHkecRWvEmuLS7r2Y2nvgUV2N0EWxRFWrVBBieeBCqcjYAWeTvZvvhGTCsf
jXdADaUryJwEccqJQEPxFdq4ApA7YWQ=
ARC-Seal: i=1; s=default; d=mail.zeke.ne.jp; t=1709359748; a=rsa-sha256;
cv=none;
b=V5sv9ncwyJTB49BoruUC5jp3TMbm9EP2IB5BLWlb3OU+h6kx+hRVxbhF6qa4GCnw28Epny
s0AqRtBKayOdSCh5x/IbgM0mDMSoKqe0I+A4LArfH7K+C8FdFwPmrU/DNbm3+CJ83VOP2z
lgSdZ2qJ5NEQgm0ECCp1JpLcHfaUjJ0=
ARC-Authentication-Results: i=1;
mail.zeke.ne.jp;
dkim=pass header.d=yahoo.co.jp header.s=yj20110701 header.b=E2kWGmeH;
spf=pass (mail.zeke.ne.jp: domain of **ユーザ名**@yahoo.co.jp designates 182.22.18.42 as permitted sender) smtp.mailfrom=**ユーザ名**@yahoo.co.jp;
dmarc=pass (policy=quarantine) header.from=yahoo.co.jp
X-YMail-OSG: Shd.rHAVM1kX_3E9mpw6gEiGPolmm6oLn9UWpT6RGk3MXdvLIezMMfLkalZLjpq
LMekZcnE28sNXF0.XyURV1YSyDnrhJuHYlGoUWI8ViloASLT6iqdWQdDEQtUfNDvUTFo_KHdsmGK
eoMIShYn9FHXNZKAvdMZy2oef69kfH5zpYOW1HS7NzEF8E4HDaWz7Lx0N5bOOv.ibqp3YteiaxJX
Wh_iXUYDq8TzQ.fWuuWH99tjKhquB0Eq72dCyeT7f3FIGn0_Ppm3O8lDJcTThyim9wTr_zD7hgl2
yyCZBjtMED3NyxVSBfpYbXecuxrTRHWNbP.fsm_BizM3mKm0Nz8BEMcUZnFP8q1Xhw.YxzGMcXMB
ZFzQ9t.DkbvH6Pj1U0rQUPCKPdHOOVIZiKULjhJrB2tBsOXQ87FrRh.b1C3T7Wh8lS5lfLBjhqIL
MGWqg6M6A1zvU2mvVyC10du3XxU6PFNsx2Rf0zt75mSnyx5pATvzOpvXqGU.QUcI0Rle83hYMQwH
LlTBAfCWcnyzp3rggSZ_3x1R1gArt3MblUTclPXw8T5B1kmHlGvMof4pi_AzFjGF9foXAHgk608X
ysvViNRKix1gIelPhEE_xNPCnBJw.utVvJc2csA0qryb61Op966dPD1uQo9Owil86vhwQaeSVhvJ
iVbdmNU1oKwMM4DMoAqQ2BqoetxwX0mB0XMIsBJ6mEJoWf7M2cwRe7765XAlZt0luTNcjN5ChH3d
djeVHDTuJpf1vxFkn0J0b.zlEP0rWeAk5UU9cJBFDcz8vUnAsFmtrO_qq.yz0G8yF1v6fX1gWtdr
TIP8Dkjg5AD9GYvPWXZCrCzvTvT9fh3j1p40C14TZTvaKlkiV5FekNaIfiUGtBMK0QI6x8cRxh9E
1jkW.mI5mhQwfHdahOBGtCVCCPrrXHlmgvS74N1bkrmi_hcxxMQIk7Nn4HBtQhpaypZe3NHbnBvv
VIRh4PevkFDMWIYGffCLJJBZyKCFd10x3ZGz06xMizqMSQqtSxofm6FrTvISBHJLsQbbDWaijiQY
yQbftxXF.0AfV6W8eFZigyiyALSHEjMaRHpiTwmBPMjl7sa8LgGv6pVBhGCDNe22nDGeqhXFJ5Ee
AWtS._dfb4j5IyH3AKZEJ8NA9pfVq42aH5otrgiixFxxAisjcS6OcWvqFSLicMjStQ4PuuF5YIV1
KZABF5i._QBYMYfPX5cGRmg--
Received: from sonicgw.mail.yahoo.co.jp by sonicconh6001.mail.ssk.yahoo.co.jp with HTTP; Sat, 2 Mar 2024 06:09:07 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1709359746;
s=yj20110701; d=yahoo.co.jp;
h=References:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Message-ID:To:Reply-To:From:Date;
bh=36NsGjc39RNsaut2J4L+3VuIC4XWmyB8Jmdw/DkVpwM=;
b=E2kWGmeHtaJ7/YjGslHsJxO3Db8IXFV6g2fssRXaOYTlpaSVP2h0tV+Njdruwk7Z
kf3nE9NhD0qBZ9KAcyXxBLpVCY9JDMNM2sdcLFJU79q7Ds6jQEjtLhKWlQnWCK3s/yJ
pI7GaqJgd1ltcnDucXl23LQPQqeCzS1h69Ow2OxE=
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=yj20110701; d=yahoo.co.jp;
h=Date:From:Reply-To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:References;
b=AaCxm9aBs68dmIWcqSQN6LCQ0ridxtl0CJcy8jTSDyl/OQAyjhH6AoOeyYMWz6hr
onD4WKcyRtw8uBguyjiiR4KYYsf0205M1NL1M4KOf4SwZlB4Cb3XHkoJyzX2EZWYOlZ
NIJMEHUIIzPJ3OgeoPbpNGsn34ktK+M4utn8gA/Y=;
Date: Sat, 2 Mar 2024 15:09:06 +0900 (JST)
From: **ユーザ名**@yahoo.co.jp
Reply-To: **ユーザ名**@yahoo.co.jp
To: **転送用**@mail.zeke.ne.jp
Message-ID: <329079440.363666.1709359746102@mail.yahoo.co.jp>
Subject: Test Mail
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
References: <329079440.363666.1709359746102.ref@mail.yahoo.co.jp>
This is Test
ARCヘッダは「ARC-Seal:」「ARC-Message-Signature:」「ARC-Authentication-Results:」の3つありますが、一番重要な「ARC-Authentication-Results:」を確認します。
「ARC-Authentication-Results: i=1」と「ARC-Authentication-Results: i=4」がmail.zeke.ne.jpがつけたヘッダになります。
Gmailがつけた「ARC-Authentication-Results: i=2;」の内容を確認するとarc=pass (i=1 spf=pass…と書かれているのでi=1のARCヘッダは正しくついているようです。
また、mail.zeke.ne.jpがつけた「ARC-Authentication-Results: i=4」内容も確認するとarc=pass (“google.com:s=arc-20160816:i=3”);とi=3のARCヘッダをチェックして問題ないと書かれています。
発信したときも受信したときも問題なさそうですね。
ARC機能のエラーメッセージ
2024-03-06 04:16:27 #18674(normal) <26133a>; lua; arc.lua:744: cannot read key from /var/lib/rspamd/arc/gmail.com.arc.key: そのようなファイルやディレクトリはありません
メールを発信するときに/var/log/rspamd/rspamd.logログに上記のようなエラーが出ますが、これは問題ありません。
ARCモジュールは受信したメール受信者のドメイン(自ドメイン)に対して、ARCヘッダに秘密鍵を使って署名を付けます。その後転送されるたときにARCヘッダが使われます。
しかし、送信するメールと区別がつかないため、とりあえず送信するメールもメール受信者のドメイン(外部のドメイン)の秘密鍵を使って署名をつけようとします。当然鍵がないのでエラーは出ますがARCヘッダは必要ないので問題ありません。
次回はDMARCレポート分析ツールと何をポイントに分析するかを紹介したいと思います。
お勧めのKindle本です!
コメント