スポンサーリンク

このドキュメントの内容は、以下の通りです。

はじめに

facebookメッセンジャーやLINEなどのメッセンジャーアプリが強くなり、iOSのfacetimeやZoomなどのテレビ会議アプリ・サービスなども広く利用されていますが、コミュニケーションの手段の1つとして、今でも電子メールが広く利用されています。

メッセンジャーアプリも電子メールも共通の悩みを抱えています。それは、スパムです。電子メールは、以前より、スパムや迷惑メールの流通が活発でした。迷惑メールの方が、迷惑メール以外の量よりはるかに多いと言われてきました。そんなメールサービス泣かせな迷惑メール対策として、いろいろな技術が開発されてきました。インターネットで利用される電子メールのセキュリティで使われている技術の1つがSPFです。

前回は、 dig コマンドで SPF を調べる方法について書きましたが、今回は、nslookup コマンドで調べる方法について紹介します。

メールのセキュリティ技術


メールでは、送信ドメイン認証として、3つの仕組みがあります。
  • SPF (Sender Policy Framework)
  • DKIM (DomainKeys Identified Mail)
  • DMARC (Domain-based Message Authentication, Reporting and Conformance)

SPFとは

SPF(エスピーエフ)とは、 Sender Policy Frameworkの略です。読み方は、センダーポリシーフレームワークです。
SPFは、電子メールの送信元ドメインが詐称(さしょう)されていないかを検査するための仕組みです。

電子メールの問題点の1つとして、「差出人」のメールアドレス、つまり、 From アドレスが自由に設定できることです。From アドレスを悪用して、誰かや企業を装ったメールが送信できます。

SPFは、メールアドレスでの なりすましを防ぐための技術です。SPFは、DNSを利用します。

SPFの仕組み

SPFに対応したメール受信サーバに、メールを受信したときに、受診したメールの送信元のドメインに対して、DSNに問い合わせを行い、SPFレコードを取得します。

SPFレコードには、メールの送信元のサーバのアドレスが列挙されています。
FromのメールアドレスのドメインのDNSのSPFレコードに指定されている「メール送信サーバ」から送られてきたメールは、正しいということになります。

nslookupとは

nslookupコマンドとは、DNSサーバに問い合わせを行うためのツールです。DNSの情報を確認できます。

OSによって利用できるコマンドが異なりますが、SPFを調べるコマンド例を以下に列挙します。
  • nslookup
  • dig
  • drill
  • host
nslookupコマンドは、WindowsLinuxで利用できます。

FreeBSDにも以前は nslookupコマンドが付属していましたが、現在では、 drillコマンドに置き換えられています。FreeBSD にはデフォルトでは dig コマンドがありませんが、 bind-toolsをインストールすることで利用できます。

LinuxでSPFレコードを取得する方法

Linux の nslookup コマンドを利用した例を紹介します。

SPFレコードを調べるためには、nslookupの-typeでTXTを指定します。

コマンドラインは以下の通りです。
nslookup -type=TXT yahoo.co.jp

実行結果は以下の通りです。実行する時期によって、FQNDやIPアドレスなどが変化しますので、異なる結果になっても驚かないでください。
Server:         192.168.0.10
Address:        192.168.0.10#10

Non-authoritative answer:
yahoo.co.jp     text = "v=spf1 include:spf.yahoo.co.jp ~all"

Authoritative answers can be found from:
yahoo.co.jp     nameserver = ns04.ops.ogk.yahoo.co.jp.
yahoo.co.jp     nameserver = dnsg01.yahoo.co.jp.
dnsg01.yahoo.co.jp      internet address = 211.14.12.10

spf1 と書いてある行が、SPFです。SPFに include と書いてあります。 include が指定されている場合は、さらにそのアドレスを調べることで、送信元サーバがわかります。

以下のように、includeを調べてみます。
% nslookup -type=TXT spf.yahoo.co.jp
Server:         192.168.0.10
Address:        192.168.0.10#10

Non-authoritative answer:
spf.yahoo.co.jp text = "v=spf1
include:spf01.yahoo.co.jp
include:spf02.yahoo.co.jp
include:spf03.yahoo.co.jp
include:bulk-spf.yahoo.co.jp ~all"

Authoritative answers can be found from:
yahoo.co.jp     nameserver = ns04.ops.ogk.yahoo.co.jp.
yahoo.co.jp     nameserver = dnsg01.yahoo.co.jp.
dnsg01.yahoo.co.jp      internet address = 211.14.12.10

さらに include されているサーバの1つを調べてみます。

% nslookup -type=TXT spf01.yahoo.co.jp

Non-authoritative answer:
spf01.yahoo.co.jp       text = "v=spf1
ip4:124.83.147.0/24
ip4:124.83.153.0/24
ip4:124.83.165.0/24
ip4:124.83.168.0/24
ip4:124.83.170.0/24
ip4:124.83.178.0/23
ip4:124.83.181.0/24
ip4:124.83.195.0/24
ip4:124.83.200.0/24
ip4:124.83.212.0/24
ip4:124.83.218.0/24
ip4:202.93.80.0/24 "
"ip4:202.93.83.0/24
ip4:202.93.84.0/23
ip4:202.93.86.0/24
ip4:202.93.88.0/24
ip4:202.93.90.0/24
ip4:203.141.34.0/24
~all"

Authoritative answers can be found from:
yahoo.co.jp     nameserver = ns04.ops.ogk.yahoo.co.jp.
yahoo.co.jp     nameserver = dnsg01.yahoo.co.jp.
dnsg01.yahoo.co.jp      internet address = 211.14.12.10

このようにSPFのアドレスを調べることが可能です。

WindowsでSPFレコードを取得する方法

WindowsもLinuxもコマンド名は同じ nslookup ですが、コマンドラインオプションが異なるので、同じコマンドラインを実行しても、同じように調べることができないことに注意が必要です。

-q オプションを指定して、txt を指定します。以下の例では、GAFAMの1つである facebook.com を調べてみました。

C:\Users\kaoru>nslookup -q=txt facebook.com
サーバー:  dns.google
Address:  8.8.8.8

権限のない回答:
facebook.com    text =

	"v=spf1 redirect=_spf.facebook.com"
facebook.com    text =

	"google-site-verification=A2WZWCNQHrGV_TWwKh6KHY90tY0SHZo_RnyMJoDaG0s"
facebook.com    text =

"google-site-verification=wdH5DTJTc9AYNwVunSVFeK0hYDGUIEOGb-RReU6pJlY"

facebook.com の SPF には、 redirect が指定されていました。それでは、さらに調べてみましょう。
C:\Users\kaoru>nslookup -q=txt _spf.facebook.com
サーバー:  dns.google
Address:  8.8.8.8

権限のない回答:
_spf.facebook.com       text =

"v=spf1 ip4:66.220.144.128/25 ip4:66.220.155.0/24 ip4:66.220.157.0/25 ip4:69.63.178.128/25 ip4:69.63.181.0/24 ip4:69.63.184.0/25"
" ip4:69.171.232.0/24 ip4:69.171.244.0/23 -all"

drillコマンドでSPFを確認する方法

FreeBSDのdrillコマンドで確認する方法です。
% drill gmail.com txt
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 13950
;; flags: qr rd ra ; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 
;; QUESTION SECTION:
;; gmail.com.	IN	TXT

;; ANSWER SECTION:
gmail.com.	5	IN	TXT	"v=spf1 redirect=_spf.google.com"
gmail.com.	5	IN	TXT	"globalsign-smime-dv=CDYX+XFHUw2wml6/Gb8+59BsH31KzUr6c1l2BPvqKX8="

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 493 msec
;; SERVER: 172.16.75.2
;; WHEN: Sun May 31 18:49:10 2020
;; MSG SIZE  rcvd: 148
Googleの gmail の場合は、spfに redirect が指定されています。
_spf.google.com をさらに調べてみましょう。
% drill _spf.google.com txt
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 42473
;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 
;; QUESTION SECTION:
;; _spf.google.com.	IN	TXT

;; ANSWER SECTION:
_spf.google.com.	5	IN	TXT	"v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all"

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 63 msec
;; SERVER: 172.16.75.2
;; WHEN: Sun May 31 18:50:46 2020
;; MSG SIZE  rcvd: 149

_spf.google.com を調べると、さらに include が指定されています。
複数指定されていますが、そのうちの1つの _netblocks.google.com を調べてみます。今度は、送信サーバのネットワークアドレスが出てきました。
% drill _netblocks.google.com txt
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 30902
;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 
;; QUESTION SECTION:
;; _netblocks.google.com.	IN	TXT

;; ANSWER SECTION:
_netblocks.google.com.	5	IN	TXT	"v=spf1 ip4:35.190.247.0/24 ip4:64.233.160.0/19 ip4:66.102.0.0/20 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:74.125.0.0/16 ip4:108.177.8.0/21 ip4:173.194.0.0/16 ip4:209.85.128.0/17 ip4:216.58.192.0/19 ip4:216.239.32.0/19 ~all"

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 480 msec
;; SERVER: 172.16.75.2
;; WHEN: Sun May 31 18:51:35 2020
;; MSG SIZE  rcvd: 275
参照しているページ (サイト内): [2009-11-14-1] [2009-11-09-1] [2009-11-06-1]

スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

スポンサーリンク
 

過去ログ

2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー