SPFやDKIMをベースにした、DMARCをPostfixに組み込んでみます(SPFとDKIMが設定済の必要が有ります)。
前回 と同様に2台のサーバ構成です。
OpenDMARC
まずは2サーバにインストール。
dnf install opendmarc
/etc/opendmarc.conf
AuthservID virtual.localdomain
IgnoreHosts /etc/opendmarc/ignore.hosts
一応、設定しなくても動きますが・・・。 自ドメインをAuthserverIDに設定(もう一方のサーバならvirtual2.localdomainに)。 IgnoreHostsは自ドメインのチェックが入ると、二度手間になるのでやっておきます。
/etc/opendmarc/ignore.hosts
127.0.0.1
::1
ignore.hostsのオーナーをopendmarcに変更して起動。
chown opendmarc.opendmarc /etc/opendmarc/ignore.hosts
systemctl enable opendmarc --now
Dnsmasq
2サーバにDMARC用のTXTレコードと、SPFもTXTレコードを追加します。 DKIM用は前回記載しているので割愛。
/etc/dnsmasq.conf
# SPF
txt-record=virtual.localdomain,"v=spf1 ip4:127.0.0.1 ip4:192.168.10.79 ip6:::1 -all"
txt-record=virtual2.localdomain,"v=spf1 ip4:127.0.0.1 ip4:192.168.10.117 ip6:::1 -all"
# DMARC
txt-record=_dmarc.virtual.localdomain,"v=DMARC1; p=none; pct=100; adkim=r; aspf=r"
txt-record=_dmarc.virtual2.localdomain,"v=DMARC1; p=none; pct=100; adkim=r; aspf=r"
SPFのip4:192.168…については、例えば virtual.localdomain⇒別サーバ へのメールは、192.168.10.79から届くのでその分を追記します。
DMARCは _dmarc.[domain]で、レコードの中身は以下のような指定の仕方をします。 今回は、まず届かせたいのでp=noneを選択。
pはpolicyで、認証失敗時にnone(何もしない), quarantine(隔離する), reject(拒否する)を指示
pctはパーセントで、policy失敗したメールの何パーセントに適用するか
adkim, aspfはDKIMとSPFに、r=サブドメインは違ってもOK、s=FQDN一致かを指示
dnsmasqをリスタートしてTXTレコードを引けるか確認。これを両サーバで行います。 他にopendmarc-check [domain]コマンドでDMARCに関するレコード情報が出ます。
systemctl restart dnsmasq
dig TXT virtual.localdomain
dig TXT virtual2.localdomain
dig TXT _dmarc.virtual.localdomain
dig TXT _dmarc.virtual2.localdomain
Postfix
これも2サーバに設定。
/etc/postfix/main.cf
smtpd_milters = ... ,
unix:/run/opendmarc/opendmarc.sock
postfixにopendmarcグループを追加します。
usermod -G opendmarc -a postfix
グループを追加するのが駄目なら、opendmarc.confのSocketをinetに変更する事も出来ると思います。 そしてリロード。
systemctl reload postfix
メール
RoundCubeでサーバ間相互にメールを送ってみます。
ヘッダーにDMARC-FilterとAuthentication-Resultsが追加され、dmarc=passが出れば成功です。
This entry was posted on 木曜日, 5月 11th, 2023 at 17:22 and is filed under 未分類 . You can follow any responses to this entry through the RSS 2.0 feed.
You can skip to the end and leave a response. Pinging is currently not allowed.