djbdns
djbdnsは、ダニエル・バーンスタインにより開発されたDNSサーバ用ソフトウェア。
概要
[編集]DNSキャッシュサーバのdnscacheとDNSコンテンツサーバのtinydnsを2つの柱として構成されている。BINDとは違い非常にシンプルかつ堅牢な構造をしており、バーンスタインは djbdns のセキュリティホールの第一発見者へ1000ドルの懸賞金を与えることを発表していた[1]。2009年2月に Matthew Dempsky によりキャッシュ汚染攻撃が可能であることが発見され[2]、Dempsky は懸賞金を獲得した[3]。2009年3月現在、発見されたセキュリティホールはこの1個のみである。
特徴
[編集]キャッシュサーバとコンテンツサーバの分離が 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サーバとしての機能の不足は否めない
- 安全性 - 公式配布の状態では堅牢であるが、実用上パッチの適用が必要であり、パッチを当てた状態での堅牢性については誰も保証しない
関連項目
[編集]脚注
[編集]- ^ Daniel J. Bernstein (2001年). “The djbdns security guarantee”. 2009年3月11日閲覧。
- ^ Dempsky, Matthew (2009年). “Bugtraq: djbdns misformats some long response packets”. 2009年3月11日閲覧。
- ^ Daniel J. Bernstein (2009年). “djbdns<=1.05 lets AXFRed subdomains overwrite domains”. 2009年3月11日閲覧。
- ^ Daniel J. Bernstein (2007年). “Frequently asked questions from distributors”. 2008年4月26日閲覧。
- ^ Daniel J. Bernstein (2003年). “The IPv6 mess”. 2009年8月2日閲覧。
外部リンク
[編集]- djbdnsホームページ (英語)