VirtualHostの設定の確認方法

Posted by joeartsea on 2009-02-11

DNSは分散データベースなのでDNSの設定変更が世界中に行き渡るまで2~3日かかります。では、ApacheなどのWebサーバでVirtualHostの設定をした場合、その設定が正しいのかどうか2~3日待たないとわからないのでしょうか?そんなことはありません。要は確認するコンピュータが「example.comは***...***」だと名前解決してあげればいいだけです。

インターネットに接続しているコンピュータなら必ずデフォルトのDNSサーバがあります。Windowsで確認するにはコマンドプロンプトを開いてipconfig /allとしてDNS Serverと表示されるIPアドレスがお抱えのDNSサーバです。そのDNSサーバに確認したいドメインとホスティングしているサーバを結ぶ設定をすれば世界中がどうであろうと確認できます…って通常はそんな簡単に行かないですよね。

通常デフォルトのDNSサーバにはルータのアドレスが振られていることが多いですよね。しかしルータが名前解決してくれているわけではなくてルータはプロバイダのDNSサーバに答えを訊きにいきます。ですからデフォルトのDNSサーバの設定を変えることはプロバイダのDNSサーバの設定を変更することになりますが、当然ながらプロバイダはそんなことさせてくれません。

ではどうすればいいのか?Windowsであれば<_システムディレクト_リ>system32driversetchostsというファイルを変更すれば可能です。Windows XPをCドライブで動かしている場合はC:WINDOWSsystem32driversetchostsです。このファイルをテキストエディタで開いて

1
example.com     ***.***.***.***

と1行付け加えるだけです。ドメインとIPアドレスの間にスペースかTabを入れてください。

hostsファイルはDNSサーバより先にチェックされます。hostsファイルで名前が解決したらDNSサーバに訊きにいくことはありません。ですからhostsファイルを書き換えてしまえばどんなアクセスだって自分の思い通りです。試しにグーグルのドメインをヤフーのIPアドレスに向けてみてください。ブラウザでいつも通りグーグルにアクセスするとヤフーが表示されます。

ちなみにこれを悪用したのがフィッシング詐欺です。フィッシング詐欺のひとつの方法に過ぎませんが。