重要なのに軽視されがちなサーバー、といえばDNSサーバではないでしょうか。
目次
DNSサーバーとは?
ひとことでDNSサーバーと言っても、
1)利用者のPCなどのデバイス側で動作する リゾルバー
2)リゾルバーに要求され指定されたドメイン名の情報を探し出す キャッシュDNSサーバー
3)管理しているドメインの情報を保有する 権威DNSサーバー
の3つに大別されます。
一般の利用者にとっては、PCの設定などで入力するキャッシュDNSサーバーが馴染み深いと思います。ただ、馴染み深いとはいえ、動作がいまひとつ複雑なのもDNSサーバーです。実際、DNSサーバーはどのように動作しているのでしょうか?
国内のドメインを管理するJPRS(株式会社日本レジストリサービス)では、DNSサーバーの仕組みを以下のように解説しています。
——–
① まず「それぞれの DNS サーバーに対し、問い合わせを行うコンピューター」(注:組織内のキャッシュDNSサーバーである場合が多い)を用意します。そのコンピュ ーターにはルートサーバーの IP アドレスが書かれ た表を、あらかじめ準備しておきます。
② www.example.jp に対する IP アドレスの情報が必要 になった場合、ユーザーは問い合わせを行うコンピ ューターに名前解決を依頼します。
③ 依頼を受けたコンピューターは、ルートサーバーに www.example.jp の IP アドレスを問い合わせます。
④ ルートサーバーはこの名前に対する IP アドレスの情 報を管理していません。しかし、jp を管理している DNS サーバーの情報は知っているので、問い合わ せ元に jp の DNS サーバーの情報を返します。
⑤ 応答を受け取ったコンピューターはその情報を元に jp の DNS サーバーに対し、③と同様の形で www.example.jp の IP アドレスを問い合わせます。
⑥ jpの DNS サーバーもルートサーバーと同様、自分 が知っている example.jp の DNS サーバーの情報を、 問い合わせ元に返します。
⑦ 応答を受け取ったコンピューターはその情報を元に example.jp の DNS サーバーに対し、③と同様の形 で www.example.jp の IP アドレスを問い合わせます。
⑧ example.jp の DNS サーバーは、自分が管理してい る対応表から www.example.jp の IP アドレス情報を、 問い合わせ元に返します。
⑨ 応答を受け取ったコンピューターは、入手した IP ア ドレスの情報をユーザーに返します。
以上の①から⑨までの手順によりユーザーは、 www.example.jp の IP アドレス情報を入手できます。
——
このようにDNSサーバーの仕組みでは、リゾルバ、キャッシュDNSサーバー、権威DNSサーバーが複合的に動作することで、目的にサーバーを「反復検索」と呼ばれる検索方法で見つける設計となっています。
キャッシュDNSサーバーが狙われる?
サーバー運用、ネットワーク運用の現場ではDNSサーバーは設定が意外と難しいサービスとして認識されていることが多いように思えます。設定ミスがあるDNSサーバー、脆弱性があるDNSサーバーはキャッシュポイズニング攻撃などを受ける恐れもありますので、基本を外さないように注意してDNSサーバーを構築運用したいものです。
・脆弱性
例えばキャッシュポイズニング攻撃に対して全く対策されていないソフトウェアを使ってしまうと、
時間をかければほぼ確実に攻撃が成功されてしまうと言われています。
・オープンリゾルバ
外部から利用されているDNSサーバーは意外と多いもの。
アクセス状況を監視して、不正な利用がないか確認しましょう。
・ゾーントランスファー
ゾーン転送に制限がかかっていないDNSサーバーも一定数存在します。
・不完全委譲(Lame Delegation)
設定が不完全なために起こる問題です。
チェックツールなども利用して、正しい設定か確認しましょう。