SPFを使ってメール送信者偽装を防ごうとしてみる
SPFってどういうことができるの?
Sender Policy Framework の略。
なりすましメール絶許マン。
- メールはSMTPという仕組みを使って配信される
- 配信元メールアドレス「from」は結構自由にSMTPに送れてしまう。偽り放題。
- 悪意のある人が、自分のフリをして、迷惑メールを他人に送っていたら困る
- 自分にクレームが来る…
- 自分のドメインの信用が下がる…
- 悪意のある人が、自分のフリをして、迷惑メールを他人に送っていたら困る
そこで
- 自分が持っているドメインのメールアドレスの配信元を宣言する仕組みがSPF
ざっくりすぎる図解
- メールを送信1
- 受信メールサーバが、メール情報にある「送信元」が指定されているドメインDNSが許可している送り元からの送信かを確認
- DNSのSPFの内容で正規送り元か判断がつく!2
- 送り先の人は偽装メールを受け取らずに済んでみんな幸せ
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
に続ける
- IP4形式のIPに対する指定は
- ~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チェックの仕組みと、不正であった場合の対応の決定・処理の設定を行いましょう。
- メールを受信したら
- 送信者のメールアドレスからドメイン(@以降)を取り出して
- ドメインのSPFレコードをDNSに問い合わせて
- 返ってきた結果と、メール送信元IPアドレスを照合し、
- メールを破棄、迷惑メール扱いにする、等の処理を行うようにしておく
オマケ
送信者偽装を防ぐ「送信側」のドメインが打てる手は、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
Author And Source
この問題について(SPFを使ってメール送信者偽装を防ごうとしてみる), 我々は、より多くの情報をここで見つけました https://qiita.com/yu_0v0_yu/items/6fc2c946311bbe36b49f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .