DNSリゾルバのニューフェイス「Unbound」
DNSキャッシュ汚染に対する防御力強化も
|
株式会社 サードウェア
岩崎 登
2008/10/17
DNSとは、そしてUnboundとは
UnboundはオランダのNLnet Labsが開発しているDNSキャッシュサーバ(DNSリゾルバ)である。2008年5月に正式版のバージョン1.0.0がリリースされ、BSDライセンスの下、オープンソースソフトウェアとして公開されている。
NLnet Lab.は、DNSコンテンツサーバ「NSD」の開発元としても知られており、開発元の信頼も高い。
関連リンク: | |
NLnet Labs. http://www.nlnetlabs.nl/ |
|
Unbound公式サイト http://unbound.net/ |
インターネットでは、IPアドレスによって、アクセスするサーバ(ホスト)を特定している。IPアドレスとは、いわゆる郵便番号のようなもので、インターネット上に公開されているサーバに割り当てられている。しかしIPアドレスは数字の羅列なので、人間には覚えにくい。そこでドメインネームという名前がIPアドレスにひも付けられている。いわば、郵便番号に住所が割り当てられたようなものだ。
このドメインネームとIPアドレスをひも付けているのがDNS(Domain Name System)と呼ばれる仕組みだ。DNSはドメイン名の問い合わせに対しIPアドレスを返す(正引き)だけでなく、IPアドレスの問い合わせに対してドメインネームを返す(逆引き)ことも行う。UnboundもこのDNSサーバの1つで、ドメインネームとIPアドレスの名前解決を行う。
Unbound導入がオススメできるわけ
DNSサーバというとまず最初に「BIND」を思い浮かべるユーザーが多いだろう。DNSサーバといえばBINDがあれば事足りる、という時代が長く続いた。だがBINDにおけるDNSキャッシュ汚染に対するBINDの脆弱(ぜいじゃく)性が2008年8月に報じられてから、BIND以外のDNSサーバに対する需要が高まっている。
Unboundは設定が複雑化したBINDに比べ、シンプルな設計を特徴としている。それでいて初期設定状態で動作させても、受信ポートがランダムに決められる設定になっており、悪意のあるパケット送信のような攻撃を受けにくいため、DNSキャッシュ汚染に強いセキュアな運用が可能となっている。
また、BINDに比べて機能は制限されるものの、リクエストに対する応答については、BINDに比べて3倍近くのパフォーマンスが出ることが発表されている。リクエスト数の多い環境での運用ではUnboundを選択する余地があるだろう。
関連記事: | |
DNSキャッシュポイズニングの影響と対策 前編 http://www.atmarkit.co.jp/fsecurity/special/130dnspoisoning1/dnspoisoning01.html |
|
DNSキャッシュポイズニングの影響と対策 後編 http://www.atmarkit.co.jp/fsecurity/special/131dnspoisoning2/dnspoisoning01.html |
|
DNSアタック、技術者がまずすべき3つの対策 http://www.atmarkit.co.jp/news/200809/19/infoblox.html |
どこから入手できる?
Unboundのパッケージは、Unbound公式サイトで公開されている。現状ではtar.gzで圧縮/アーカイブされたソースコードのみの公開となっており、RPMファイルのようなパッケージマネージャ用のパッケージは公開されていない。
>>> 今回インストールする環境
インストール環境 CentOS5.2Unboundバージョン 1.0.2(最新バージョン) |
■開発環境の準備
Unboundはソースコードで公開されており、導入にはコンパイルが必要なため、開発環境を準備する必要がある。もし開発環境をインストールしていない場合は、インストールDVDまたはCentOSリポジトリから「開発環境」をインストールする。
注:現在、各ディストリビューションのリポジトリにおいて、続々とUnboundのパッケージが準備されている。 |
Unboundの導入手順
1. ソースコードの解凍
ダウンロードしてきたアーカイブ「unbound-latest.tar.gz」を解凍する。解凍すると「unbound-1.0.2」ディレクトリにソースコード一式が解凍される。
# tar xzf unbound-latest.tar.gz |
2. Unboundのコンパイル・インストール
Unboundのコンパイルは、動作環境に合わせて設定を行う「configure」、configureの結果に基づいて「make」でコンパイルを行い、コンパイルされたバイナリファイルを「make install」コマンドでインストールする。
configureには各種オプションが用意されているが、今回は基本的な設定(デフォルト設定)で導入するため、オプションを付けずにconfigureを実行する。
# cd unbound-1.0.2 |
コラム■自宅にだってDNSキャッシュサーバ | ||||
DNSサーバというと企業向けで、個人には関係ないというイメージを持っているユーザーが多いのではないでしょうか。しかし、DNSキャッシュサーバを自宅に構築してみるとそのよさが分かります。 プロバイダが提供するDNSサーバを使用する場合との違いは、そのレスポンスにあります。誰もが一度は、ブラウザ下部のステータスバーに表示される「名前を解決しています」というようなメッセージを見たことがあるでしょう。多いときには数秒間その状態が続くこともあり、これはそのまま、サイトが表示されるまでの待ち時間を長引かせることになってしまいます。 自宅にDNSキャッシュサーバを構築すると、この名前を解決する時間がかなり短くなります。一度キャッシングされているドメイン名であれば「解決しています」のメッセージが見えないレベルになり、ブラウジングの体感速度がかなり向上します。 UnboundのプロセスはBINDに比べてメモリ消費量が少なく軽いものなので、クライアントとして使用しているPCにUnboundを入れて、サイトの巡回を高速化するためだけにUnboundを導入するという利用方法もあります。 しかしUnboundのインストールには、開発環境のインストールが必要なこと、起動スクリプトが用意されていないことなど、いくつかの課題点が浮かび上がってきます。 この課題を改善するため、筆者を含む有志数人は「日本Unboundユーザ会」を2008年9月に立ち上げ、マニュアルの翻訳、各種ディストリビューション向けパッケージの公開、日本語のユーザーフォーラムの提供を行っています。試しに使ってみたいという方は、日本Unboundユーザ会からパッケージマネージャ用のアーカイブをダウンロードして使用してみてください。
|
1/2 |
|
||||
|
Linux Square全記事インデックス |
Linux Squareフォーラム 仮想化技術関連記事 |
連載:実践! Xenで実現するサーバ統合 有力な仮想化技術として注目を集めるようになった「Xen」。このXenを活用してサーバ統合を実践していく手順を具体的に紹介します |
|
特集:サーバの仮想化技術とビジネス展開の可能性 jailからUML/VMwareまで 1台のマシンで複数のサーバを動かす「仮想化技術」。VMwareやUMLの登場により、WebサイトだけでなくOS自体を仮想化できるようになった |
|
特集:仮想化技術のアプローチと実装 VMwareから要注目技術Xenまで 1台のサーバで複数の仮想マシンを実行する仮想化技術は、空間コストを引き下げる可能性を持つ。最新の仮想化技術を概観してみよう |
|
特集:仮想OS「User Mode Linux」活用法 技術解説からカーネルカスタマイズまで Linux上で仮想的なLinuxを動かすUMLの仕組みからインストール/管理方法やIPv6などに対応させるカーネル構築までを徹底解説 |
|
特集:仮想化技術の大本命「Xen」を使ってみよう インストール & Debian環境構築編 高いパフォーマンスで本命の1つとなった仮想マシンモニタ「Xen」。日本語による情報が少ないXenを、実際に動かしてみよう |
|
特集:仮想化技術の大本命「Xen」を使ってみよう Xen対応カスタムカーネル構築編 Xen環境およびその上で動作する仮想マシン用カーネルを自分で構築しよう。これにより、自由にカスタマイズしたカーネルを利用できる |
|
特集:IPv6、UML、セキュリティ機能の統合 全貌を現したLinuxカーネル2.6[第4章] 今回は、これまでに紹介し切れなかった機能を一気に紹介する。これを読めば、カーネル2.6の正式リリースが楽しみになるだろう |
|
Linux Squareプロダクトレビュー VMware Workstation 4 PC/AT互換機エミュレータとして不動の地位を築いたVMware。その新バージョンがリリースされた。新機能を早速試してみよう |
|
古くて新しい「サーバ仮想化技術」の行方 サーバ仮想化を実現するための技術がソフトウェア、ハードウェアの両面で出そろってきた。ハイパーバイザーのさらなる高速化に向けた動きを紹介する |
|
Linux Squareフォーラム全記事インデックス |
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|