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?

More than 3 years have passed since last update.

SPFを使ってメール送信者偽装を防ごうとしてみる

Last updated at Posted at 2020-09-25

SPFってどういうことができるの?

Sender Policy Framework の略。
なりすましメール絶許マン。

  • メールはSMTPという仕組みを使って配信される
  • 配信元メールアドレス「from」は結構自由にSMTPに送れてしまう。偽り放題。
    • 悪意のある人が、自分のフリをして、迷惑メールを他人に送っていたら困る
      • 自分にクレームが来る…
      • 自分のドメインの信用が下がる…

そこで

  • 自分が持っているドメインのメールアドレスの配信元を宣言する仕組みがSPF

ざっくりすぎる図解

SPF.PNG

  1. メールを送信1
  2. 受信メールサーバが、メール情報にある「送信元」が指定されているドメインDNSが許可している送り元からの送信かを確認
  3. DNSのSPFの内容で正規送り元か判断がつく!2
  4. 送り先の人は偽装メールを受け取らずに済んでみんな幸せ

SPFってどう指定するの?

許可したい送信元がどこなのかを把握

ドメインですか?IPですか?
例として今回はドメインwatashinomono.comとして、SMTPサーバのドメインkyokashitai.domain.comとIPXX.XX.XX.XXからのメール送信を許可(宣言)していきます。

SPFレコードをDNSに記載

SPFはDNSにあるものです。
DNSのゾーンファイルにあるものです。
ドメイン名をレコード名とするTXTレコードとして公開されるものです。

ゾーンファイルの記述は以下の通り。

watashinomono.com. IN TXT "v=spf1 +include:kyokashitai.domain.com +ip4:XX.XX.XX.XX ~all"
  • v=spf1
    • SPFのバージョンを指定
  • +include:kyokashitai.domain.com
    • ドメインに対する指定はincludeに続ける
  • +ip4:XX.XX.XX.XX
    • IP4形式のIPに対する指定はip4に続ける
  • ~all
    • 全てに対する指定

SPF記述は先頭(左側)にあればあるほど優先されるので「all」に対する宣言は末尾(右側)に書くようにしましょう。

クオリファイア

Q.ドメインやIPの前に「+」とか「~」が頭についてるけどなんですか?
A.クオリファイアアです。使用許可だけではなく使用禁止も宣言できます

記号 意味
+ 許可
~ 禁止
- 禁止(強い)

SPF落とし穴

SPFとして指定できるレコード数には限りがあるらしいので、TXTに記載したからと言って設定が通っているかは怪しいらしい…?
以下のようなサイト・ツールを使って設定した自DNSにSPF情報を取得しに行ってみましょう。

  • DOMAIN:watashinomono.com
  • IP:XX.XX.XX.XX

そもそもTXTに文字数制限があるのでIPを書き連ねるはあんまりよくなさそうですね…送信元が自分が持ってるSMTPサーバなら、そいつもきちんとDNS設定して1ドメインにまとめてあげたりしてください。

受信メールサーバ側

わかりやすさを優先して、ざっくり図解をDNSがYesNo返すみたいな書き方にしてしまったけど、DNSはSFPレコードを持っているだけなのでした。
Yes,Noの判断は受信メールサーバ側で行います。

SPFレコードは受信メールサーバ側の挙動あってこそのものです。
あなたがメールサーバの管理者であればSPFチェックの仕組みと、不正であった場合の対応の決定・処理の設定を行いましょう。

  1. メールを受信したら
  2. 送信者のメールアドレスからドメイン(@以降)を取り出して
  3. ドメインのSPFレコードをDNSに問い合わせて
  4. 返ってきた結果と、メール送信元IPアドレスを照合し、
  5. メールを破棄、迷惑メール扱いにする、等の処理を行うようにしておく

オマケ

送信者偽装を防ぐ「送信側」のドメインが打てる手は、SPF以外に
DomainKeys Identified Mail(DKIM)Sender IDもあります。

参考元

DNSのSPFレコードについてあらためて学習してみた
http://fanblogs.jp/nowlogging/archive/34/0

SPFレコードの設定・書式について理解する
https://monaski.hatenablog.com/entry/2016/02/27/150530

  1. 送信してから受信メールサーバへ届くまでに、SMTP使ったりとかしてるけど、今回の図では略

  2. 受信メールサーバ側で判断がつくだけなので、そのまま受信ユーザへメールが送信されることがあります。受信メールサーバ側で、SPF設定と異なる送信元である場合はユーザに送信しないとか迷惑メールの扱いにする等の挙動設定が必要。

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?