docs: add articles
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
# SPF(Sender Policy Framework)
|
||||
|
||||
SPF(Sender Policy Framework)は、送信ドメインがDNSのTXTレコードでメールの送信を許可するIPアドレスを公開し、受信側のSMTPサーバが送信元IPアドレスの正当性を検証する仕組み
|
||||
|
||||
## 検証の流れ
|
||||
1. **メールの送信** ... 送信側のSMTPサーバが、受信側のSMTPサーバにメールを送信
|
||||
2. **送信元ドメインの取得** ... 受信側のSMTPサーバが、エンベロープFrom(MAIL FROM)から送信元ドメインを取得
|
||||
3. **SPFレコードの取得** ... 送信元ドメインのDNSに問い合わせ、SPFレコード(TXTレコード)を取得
|
||||
4. **IPアドレスの照合** ... 実際に接続してきた送信側SMTPサーバのIPアドレスが、SPFレコードで許可されているかを確認
|
||||
5. **検証結果の判定** ... 照合結果に応じて、pass(認証成功)やfail(認証失敗)などの結果を返す
|
||||
|
||||
## SPFレコードの設定例
|
||||
|
||||
特定のIPv4アドレスのみ許可する:
|
||||
```
|
||||
v=spf1 ip4:192.0.2.1 -all
|
||||
```
|
||||
- IPアドレスで指定する場合、`ip4:`もしくは`ip6:`をプレフィックスに用いる
|
||||
|
||||
複数のIPv4アドレスを許可する:
|
||||
```
|
||||
v=spf1 ip4:192.0.2.1 ip4:192:.0.0.2 -all
|
||||
```
|
||||
|
||||
Aレコードに登録されたIPアドレスを許可する:
|
||||
```
|
||||
v=spf1 a -all
|
||||
|
||||
v=spf1 a:mail.example.com -all
|
||||
```
|
||||
|
||||
MXレコードが指すIPアドレスを許可する:
|
||||
```
|
||||
v=spf1 mx -all
|
||||
```
|
||||
|
||||
外部のメール送信サービスを利用する場合:
|
||||
```
|
||||
v=spf1 include:_spf.example.com -all
|
||||
```
|
||||
|
||||
## 補足:SPFレコードの識別
|
||||
|
||||
素朴な疑問:
|
||||
> SPFレコードってただのTXTレコードだから、複数のTXTレコードがあっても大丈夫なのだろうか
|
||||
|
||||
複数のTXTレコードが登録されている場合:
|
||||
```
|
||||
example.com. IN TXT "v=spf1 ip4:192.0.2.1 -all"
|
||||
example.com. IN TXT "google-site-verification=xxxxxxxx"
|
||||
example.com. IN TXT "example-verification=yyyyyyyy"
|
||||
```
|
||||
- `v=spf1`で始まるレコードがSPFレコードとして識別される
|
||||
- SPFレコードが複数存在する場合はNG
|
||||
Reference in New Issue
Block a user