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が出れば成功です。
この投稿は 2023年5月11日 木曜日 17:22 に 未分類 カテゴリーに公開されました。 この投稿へのコメントは RSS 2.0 フィードで購読することができます。
このページの一番下でコメントを残すことができます。トラックバック / ピンバックは現在受け付けていません。