nslookupコマンドでSPFレコードを調べる方法
スポンサーリンク
このドキュメントの内容は、以下の通りです。
- はじめに
- メールのセキュリティ技術
- SPFとは
- SPFの仕組み
- nslookupとは
- LinuxでSPFレコードを取得する方法
- WindowsでSPFレコードを取得する方法
- drillコマンドでSPFを確認する方法
はじめに
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
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: 148Googleの 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]
スポンサーリンク
スポンサーリンク
いつもシェア、ありがとうございます!
もっと情報を探しませんか?
関連記事
最近の記事
- パナソニック ジェットウォッシャードルツ EW-DJ61-Wのホースの修理
- LinuxセキュリティモジュールIntegrity Policy Enforcement
- アマゾンのEcho Show 5を買ったのでレビューします
- アマゾンのサイバーマンデーはAlexa Echo Show 5が安い
- Android スマートフォン OnePlus 7T と OnePlus 7の違い
- Android スマートフォン OnePlus 7 をAndroid10にアップデートしてみた
- クレジットカードのバーチャルカードの比較のまとめ
- 活動量計 Xiaomi Mi Band 4を買ってみたのでレビュー
- Android スマートフォン OnePlus 7 のレビュー
- AliExpressでスマートフォンを買い物してみた
- パソコンのホコリ対策 レンジフードフィルターと養生テープ
- 80PLUS GOLDのPC電源ユニットAntec NeoEco 750 Goldのレビュー
- イギリスの付加価値税 VAT は払い戻しを受けられる
- イギリスのロンドンでスーツケースなど荷物を預けられる場所は
- イギリスのロンドンで地下鉄やバスに乗るならオイスターカードを使おう
- イギリスのヒースロー空港からロンドン市内への行き方
- 航空便でほかの航空会社に乗り継ぎがある場合のオンラインチェックイン
- SFC会員がANA便ではなくベトナム航空のコードシェアを試して解ったこと
- ベトナムの入国審査でeチケットの掲示が必要だった話
- シアトルの交通ICカードはオルカカード(Orca)です
人気のページ
- Windows7 IME 辞書ツールで単語の登録に失敗しました
- C言語 popen()でコマンドを実行して出力を読み込む
- Windows7で休止状態にする方法
- CentOS MySQLの起動、停止、再起動
- loggerコマンドでsyslogにエラーを出力する方法
- パソコンパーツの買取をしてくれる店のまとめ
- Java Mapの使い方 get(),put(),remove(),size(),clear()
- 楽天のRポイントカードを作ってみた
- iPhone 5 から iPhone 6 に乗り換えたのでレビュー
- netstatコマンドのステータスの意味
スポンサーリンク
過去ログ
2020 : 01 02 03 04 05 06 07 08 09 10 11 122019 : 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