djbdnsは、ダニエル・バーンスタインにより開発されたDNSサーバソフトウェア

概要 編集

DNSキャッシュサーバのdnscacheとDNSコンテンツサーバのtinydnsを2つの柱として構成されている。BINDとは違い非常にシンプルかつ堅牢な構造をしており、バーンスタインは djbdns のセキュリティホールの第一発見者へ1000ドルの懸賞金を与えることを発表していた[1]。2009年2月に Matthew Dempsky によりキャッシュ汚染攻撃が可能であることが発見され[2]、Dempsky は懸賞金を獲得した[3]。2009年3月現在、発見されたセキュリティホールはこの1個のみである。

2007年冬、パブリックドメインとなる[4]

特徴 編集

キャッシュサーバとコンテンツサーバの分離が djbdns の大きな特徴である。BIND では、このふたつのサーバ機能を単一の named と呼ばれるデーモンで管理していた。キャッシュサーバである dnscache の機能は、クライアントからのクエリを受付けて再帰検索を行い、名前解決を行い、得た情報をキャッシュすること、コンテンツサーバである tinydns の機能は、回答すべきゾーン情報を管理し、問い合わせに答えるという機能をもつ。コンテンツサーバはあくまでも自ゾーン情報を公開するためのもので、DNS情報のキャッシュや再帰検索は行わない。キャッシュサーバとコンテンツサーバの機能はまったく別であり、同一サーバでこのふたつのデーモンを稼働させることは推奨されていない。また、組織外に公開すべきではないキャッシュサーバをうっかり公開してしまうミスを防ぐこともできる。

djbdns は、デーモンだけでなく、各種のツールも単機能のプログラムが協調して動く設定になっている。また、可能な限り root 権限を使用せず、デーモンは、chroot して動作する。設定ファイルも簡素である。djbdns はその管理に、daemontools と呼ばれるミドルウェアを使用する。tinydns の DNSデータベースの格納には、cdbと呼ばれる高速なハッシュ化データベースが使用される。

djbdns では、CNAME の使用は可能だが推奨されてはいない。Aレコードを使用することが推奨されている。

コンポーネント 編集

  • dnscache - DNSキャッシュサーバ
  • tinydns - DNSコンテンツサーバ
  • axfrdns -ゾーン転送TCP版DNSコンテンツサーバ
  • walldns - ファイアウォールで使用するための、匿名の逆引き用DNSコンテンツサーバ
  • rbldns - リアルタイムブラックホールリストのためのデーモン
  • dnsライブラリ - libresolvに代わるDNSクエリのためのライブラリ

パッチによる保守 編集

djbdnsは2001年にバージョン1.0.5がリリースされて以来、公式の改良は行われていない。このため、DNSSECなどの新しい機能には対応していない。また、ダニエル・バーンスタインがIPv6の導入や普及に対して懐疑的な立場である[5]ことから、IPv6に対応していない。これに対して、有志によるパッチが提供されているが、以下の点が問題として考えられる。

  • 将来性 - DNSSECやIPv6に対応していないことなど、DNSサーバとしての機能の不足は否めない
  • 安全性 - 公式配布の状態では堅牢であるが、実用上パッチの適用が必要であり、パッチを当てた状態での堅牢性については誰も保証しない

関連項目 編集

脚注 編集

  1. ^ Daniel J. Bernstein (2001年). “The djbdns security guarantee”. 2009年3月11日閲覧。
  2. ^ Dempsky, Matthew (2009年). “Bugtraq: djbdns misformats some long response packets”. 2009年3月11日閲覧。
  3. ^ Daniel J. Bernstein (2009年). “djbdns<=1.05 lets AXFRed subdomains overwrite domains”. 2009年3月11日閲覧。
  4. ^ Daniel J. Bernstein (2007年). “Frequently asked questions from distributors”. 2008年4月26日閲覧。
  5. ^ Daniel J. Bernstein (2003年). “The IPv6 mess”. 2009年8月2日閲覧。

外部リンク 編集