逆引きができないサーバー拒絶についての補足
以下のお問い合わせが来ましたので解説します。
SPAM対策について拝見しました。
http://www.hart.co.jp/spam/rejiponly.html
上記のページに「逆引きできないホストからのメールを遮断」とあり、タイトルの内容について言及されています。
この件について、
・DNSの逆引きは必ずしも設定する必要がないこと
・DNSの逆引きの有無が必ずしも信用性と結びつかないこと
・DNSのトラフィックが増加するであろうこと
・DNSが停止している場合のあるべき動作
について、どうお考えかお聞かせ願えませんでしょうか?
浅学のため、上記のデメリットに対する有効な対策が思いつきません。
●DNSの逆引きは必ずしも設定する必要がないこと
その通りです。インターネットのとりきめが書いてある文書(RFC、Request For Comments)には逆引きを必ず設定しろとは書いてありません。
同じくRFCのメール配送を定義した文書にはFromはこのように書くということしか書いてありません。Fromに嘘を書くなとは書いてありません。
すなわちRFCとは最低限守らなくてはいけないことを文書化したものと考えていいと思います。
spammerは(最近はクレジットカードや銀行口座の番号やパスワードを聞き出したるするので詐欺師と読んでもいい場合がありますが)この緩い規則を悪用して差し出し人を詐称し、自分の身元を隠すことをしているわけです。
メール配送に関してであればインターネットの黎明期の善人ばかりがいる時代であればおかしな設定をしてあっても協力しあってなんとかメールは配送しましょうということになるでしょう。
それから幾数年してインターネットも成熟期に入り
古き良き時代に作られたメール配送のルールを悪用して送られるspamがメール全体の50%を越えてきている現状ではある程度性悪説も採用しなければならないのではないかと思います。
ということで我々およびいくつかのプロバイダのメールサーバーはRFCよりすこし厳しく運用してみようということです。最近話題になったメールの送信者認証(SenderID)やGrayListingも同じような考えだと思います。
●DNSの逆引きの有無が必ずしも信用性と結びつかないこと
その通りです。しかしながら逆引きが無いということは身元を明らかにしないということです。
極端な話、自身のメールサーバーの身の潔白をあえて証明しないのであれればメールを送れなくて当然という話にもなります。
日本の現状だけを考えれば正引きはドメインを買えば好き勝手できますが逆引きを登録できる者はネットワークの契約者またはそれに近い権利がなければできないためある程度の信用性とは結びつきます。
たぶん外国でも逆引きを登録できる立場の者は完全に匿名でできるわけではないでしょう。
もちろん偽のデータを登録することも可能ですが、詐称しているということで別の法律問題が発生するでしょう。
そのようなことをする輩が出てきた場合にはISPも強制退会とする理由がつけられることになります。
裁判となれば負けるのではないでしょうか。
実際に今までアメリカの有名なspammerの送信サーバーについて検証してきましたが1つも詐称しているものに出会っていません。
これは詐称すると裁判に訴えられ負け莫大な罰金あるいは損害賠償が課せられるとわかっているためやらないのだと思われます。
DNS Hijackの対策としてDNS逆引きと正引きの一致を調べる方法が提案されそれを実装した
TCPWrapperには逆引きをして出たホストを更に正引きしてアドレスが一致するかどうかで許可するという設定が可能です。
逆引きで得たドメイン名の正引きが元のIPアドレスと一致する場合にはドメインの所有者が元のIPアドレスを使用しているということが裏付けられます。そして逆引きの指すサイトは信用が増すことになります。
inetdから呼ばれるftpやtelnetあるいはpopなどのサービスあるいは内部的にそのメカニズムを持っているsshdなどは全部詐称から防御する機能がついています。
sendmailの設定も同様に逆引きして出てきたホストを更に正引きしてアドレスが異なると拒絶するという記述(RFORGEDオプション)があります。
これを使えば技術的には逆引きが詐称されたアドレスからの接続を拒絶可能です。
但し管理者のミスでそれが一致していない事例をいくつか見かけますので現時点では厳しすぎると判断し当社の(MXの値の一番小さい)
メインのサーバーだけには設定していません。
逆引きからサーバーの種類が推察されてしまいセキィリティ上問題があるという理由で設定しないという話をたまに耳にしますが
以下のようにすれば避けられます。(単にmxXXとかmailXXとかしないだけでもいいですが)
正引き
mx1 IN A 111.222.122.124
dialin-10 IN A 111.222.122.124
逆引き
124 IN PTR dialin-10.hart.co.jp.
(同じアドレスだからといって正引きをCNAMEで設定してはいけません、RFC1912より)
このようにするとMXに登録しているサーバー名をmx1.hart.co.jpとしてあっても逆引きすればdialin-10.hart.co.jpと出てきてメールサーバーとは類推されません。
これを正引きすればアドレスは同じとなるのでRFORGED
オプションが設定されていても問題なく配信されます。
これと同じ状況になるのがPPPoEの[アドレス1つ]サービスを使って自分のドメインのサーバーを立ち上げている場合です。
通常アドレスが1つの場合そのアドレスに対する正引きと逆引きはプロバイダが設定しますがDNSを自分で立ち上げてメールルサーバー名(MX)を
mail.my_domain.jp などと自分のドメインを使ったホスト名としても問題ありません。
そのサーバーに複数ドメインがあっても問題はありません。なぜならば送り出しているメールサーバー/sendmailは個別のドメインではなくそのサーバー自身のアドレスとホスト名を使って送信しているからです。
●DNSのトラフィックが増加するであろうこと
メールのヘッダにはメールがどこから来たかという記録がどんどん追加されていきます。
そこには繋いできたIPアドレスと、もし逆引きがあればホスト名が記録されます。
逆引きが登録されていなくても問い合わせには行くわけです。
問い合わせてみて初めて逆引きが無いとわかるわけですね。
ヘッダに記録するホスト名を得るために一回逆引きして拒絶のためにもう一度同じアドレスを逆引きするかについては
ソフトウエアがどう処理するか、DNSのネガティブキャッシュ(逆引きが無いということ自体もキャッシュ、RFC2308)が働くかなどで問い合わせの回数が違うはずですが後述する当社での記録によればトラフィックの総量は変わらないという結果が出ています。
最近のsendmail(sendmail.cf) ではデフォルトで送り主のドメインからMX(あるいはAレコード)
を調べるようになっています。
デタラメのドメインがFromにあるとエラーになることからもわかります。
(うちのプロバイダからはでたらめのドメインのメールが来るけどな、
という人がいると思います。
そうです、あなたのプロバイダは古いsendmailあるいはわざと設定を甘くして使っているのです。)
このためいずれにせよDNSにはアクセスが行くわけですからキャッシュされていることとあいまってトラフィックが極端に増えるということはありません。
たまに見かけるケースなのですがでSOAが定義されていないアドレスがあります。このようなアドレスについて逆引きをしてみると毎回問い合わせに行きしばらくしてタイムアウトになって戻ってきます。
このような場合にはメールヘッダーに記録するたびに毎回問い合わせに行くわけですからかえってトラフィックが増えるでしょう。
実際そこからにメールが来るのにSOAが無かったという事例がありました。RFC2308ではSOAレコードがないものはキャッシュしてはならないとなっているので毎回問い合わせに行くわけです。
上で書いたようにDNSはキャッシュされるのでトラフィックの量は実は思ったほど高くはありません。
当社は数百件のドメインについてDNSを立ち上げていますが平均トラフィックは高々5K-20Kbps程度です。ちなみにこのトラフィック量は逆引きがないサーバーからの接続を許していた時と逆引きによる拒絶をした時とで全く変わっていません。DNSの問い合わせの回数も変化はありませんでした(ということはネガティブキャッシュが働いているのでしょう)。
●DNSが停止している場合のあるべき動作
ドメインを登録した方はおわかりだと思いますがDNSを2つ(以上)指定しなくてはなりません。
一方RFC2182には『The Domain Name System requires that multiple servers exist for every delegated domain (zone)』とあまりわからない書き方で書いてあります。Must Have More Than 2 Domain Name Serversなんて書いてあればすっきりするのですが。
またインターネットに接続するソフトウエア群は複数のDNSを前提とした作りになっていて1つがダウンしていてつながらなくても別のDNSを探しにいくようになっていてしっかりダウン対策ができているわけです。
このこととドメイン登録のときに2つ以上を指定しなければ登録できないシステムになっていることからDNSは2つ以上必要であると考えていいと思います。事実ほとんどのところでは2つ以上のDNSを立ち上げています。これもRFCより厳しく運用している事例でしょう。
これを前提に考えるとしばらくはキャッシュに保持されているのでそれが消えるまでに立ち上げればいいと思います。
またDNSは2つ以上あるので1つダウンした程度では問題はありません。
メンテナンスのためDNSを全部停止するのであればメールサーバーも停止すべきでしょう。そもそもDNSが停止しているということは他のサービスにも大きな影響を及ぼすのでメールサーバー以外にもおかしな動作がおこらないほうが不思議と考えるべきです。
なおDNSというのはインターネットの基幹といってもいい重要なサービスですので当然システム管理者はDNSが動いているかどうか常に監視すべき最重要項目でしょう。
参考までに以下が逆引き拒絶擁護派と非擁護派のURLです。
・逆引きが無いと拒絶
http://help.yahoo.co.jp/help/jp/mail/in_trouble/in_trouble-21.html
http://www.psn.ne.jp/TROUBLE/nospam.html
http://www.chem.sci.osaka-u.ac.jp/networks/mail-policy.html
http://postmaster.aol.com/info/rdns.html
・逆引きが無いところからも受け付けるべし
http://ssss.jp/~trombik/email/wrong_restrictions_with_dns.html
http://neta.ywcafe.net/000395.html
こう書いてきてDNSにしろMXにしろ長いインターネットの歴史の中で実にうまく考えられているのに感心させられますね。
考えてみると一般的なインターネットのサービスのうちパスワードも無しにエロ画像、ウイルス、
詐欺文書など有害なものを何でもサイズもいくらでも(場合によってはディスクがパンクするまで)受け入れるサービスってメールしか無いですね。その分少しはきびしくしてもいいかなと思う今日この頃です。
Nikki Top