0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FreeBSD+sendmail環境でSPF, DMARCを設定

Last updated at Posted at 2024-08-18

はじめに

SendmailとFreeBSDを使用した環境でSPFとDMARCを設定してみました。
受信したメールのエンベロープFromとヘッダFromが異なる場合に受信拒否できることを確認します。

DMARCは、Googleのガイドラインにて対応が求められたこともあって、急速に普及が進んでいます。

DMARCについては、下記ブログにて分かりやすく説明されております。

ベアメール : DMARCとは? 仕組みやメリット、導入方法まで解説
(https://baremail.jp/blog/2022/05/09/2490/)

環境

FreeBSD : 14.1
sendmail : 8.18.1
bind : 9.18.27
opendmarc : 1.4.2

SPF, DMARCの設定

opendmarcの導入・設定

SPF, DMARCはどちらもopendmarcを使用して設定できます。

pkgを用いてopendmarcをインストールします。

# pkg install opendmarc

opendmarcをインストールすると、/usr/local/etc/mail内にopendmarc.conf.sampleというファイルができているはずです。

conf.sampleファイルを用いてconfファイルを作成します。

# cp /usr/local/etc/mail/opendmarc.conf.sample /usr/local/etc/mail/opendmarc.conf

confファイルを編集します。

opendmarc.conf
# DMARC検証で失敗した場合にメッセージの受信を拒否する
RejectFailures true

# opendmarcによってSPF検証を実施するために、ヘッダのSPF検証結果を無視する
SPFIgnoreResults true

# opendmarcがSPF検証を実施する
SPFSelfValidate true

confファイルの内容について、詳しくは下記ドキュメントをご参照ください。

opendmarc.conf(5)
https://manpages.debian.org/unstable/opendmarc/opendmarc.conf.5.en.html

設定を適用・反映するためにopendamrcを再起動します。

# service opendmarc restart

sendmailの設定

sendmail.mcにMilter設定を追記します。

sendmail.mc
INPUT_MAIL_FILTER(`opendmarc', `S=inet:8893@localhost')

設定を適用・反映します。

# cd /etc/mail
# make
# service sendmail restart

DNSの設定

ゾーンファイルに以下のSPFレコードとDMARCレコードを追記します。

hogehoge.local.zone
        IN      TXT     "v=spf1 ip4:送信元のIPアドレス -all"
_dmarc  IN      TXT	    "v=DMARC1; p=reject;"

設定を適用・反映します。

# service named reload
# service named restart

メール送信テスト

受信拒否確認

SPFレコードは登録済みなattack.localからahoaho.localへメールを送信します。
以下のsendmailコマンドでメール送信し、ヘッダFromはhogehoge.localとします。

attacker@attack.local
sendmail -t <<EOL
From: mail@hogehoge.local
To: mail@ahoaho.local
Subject: testmail
test 2024/8/18
EOL

すると、メールは受信されず、maillogファイルにエラーコードが表示されます。

sm-mta[47351]: 44L5i8ei047351: Milter: data, reject=550 5.7.1 rejected by DMARC policy for hogehoge.local

受信拒否を確認できました。

正常なメールの受信確認

hogehoge.localからahoaho.localにメールを送信し、ヘッダFromとエンベロープFromに差異がない場合は、以下のメールヘッダが追加されます。

Authentication-Results: ahoaho.local; dmarc=pass (p=reject dis=none) header.from=hogehoge.local
Authentication-Results: ahoaho.local; spf=pass smtp.mailfrom=hogehoge.local

おわりに

SPFとDMARCの組み合わせは理解しやすいフィッシングメール対策となっています。
今回はDKIMを導入しませんでしたが、ぜひDKIMも取り入れた設定にもチャレンジしてみてください!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?