user icon

DMARCをテスト環境のPostfixに組み込む

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が出れば成功です。
Facebooktwitterlinkedintumblrmail
名前
E-mail
URL
コメント

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)