Unbound,知ってる? この先10年を見据えたDNS

第2回 Unboundの導入(新規導入編)

この記事を読むのに必要な時間:およそ 3 分

前回はUnboundの特徴を紹介しました。今回はUnboundの新規導入方法について紹介します。

インストール

UnboundではldnsというDNSライブラリを利用しています。Unboundの配布パッケージにも含まれています。しかし,ldnsを共有ライブラリとしてリンクし,さらにldnsを利用するdrillというツールの導入も行うために,別途インストールすることにします。

なお,本記事ではLinuxディストリビューションの1つであるCentOS 5.2での導入手順を紹介します。パッケージシステム用のRPMのSPECファイルも用意されていますが,今回は手動でビルドしてインストールを行ってみます。そのため,/usr/localディレクトリ以下にインストールすることにします。

ldnsのインストール

ldnsはNLnet Labsが開発しているDNSライブラリです。次のような機能もサポートしています。

  • IPv4/IPv6
  • TSIG
  • DNSSECの署名と検証

ldnsはNLnet Labsのサイトからダウンロードできます。

執筆時点での最新バージョンは1.3.0であり,ファイル名はldns-1.3.0.tar.gzです。Unboundでは1.3.0以降が必要です。ldnsをビルドするためにはOpenSSLとlibpcapのヘッダやライブラリが必要なので,あらかじめインストールしておいてください。

ldnsのtarballをダウンロードしたら,次のようにしてインストールします。

$ tar xvzf ldns-1.3.0.tar.gz
$ cd ldns-1.3.0/
$ ./configure --prefix=/usr/local
$ make
$ su
# make install

共有ライブラリlibldns.soが/usr/local/libにインストールされたので,/etc/ld.so.confにディレクトリ/usr/local/libが登録されていなければ,追加してください。

ldconfigコマンドを実行してライブラリキャッシュを更新します。

# /sbin/ldconfig

drillのインストール

ldnsのパッケージにはdrillというツールが含まれています。このdrillもインストールします。drillは,BINDにおけるdigと同じような機能を提供します。If you need to dig deeper「もっと深く掘りたければ(ドリルを使え)」という謳い文句が示すとおり,DNSSECをサポートし,digより多くの情報を得ることができます。digはBINDのライブラリに依存しているため,BINDのライブラリを使用していないdrillを使うことで,BINDから解放されます。

ldnsのtarballを展開したディレクトリにおいて次のようにしてインストールを行います。

$ cd drill/
$ autoreconf
$ ./configure --prefix=/usr/local --with-ldns=/usr/local
$ make
$ su
# make install

なお,ldnsのパッケージを展開したディレクトリにはexamplesというディレクトリがあります。ldnsを利用したサンプルプログラムが含まれています。drillと同じような手順でインストールできるため,興味があったらインストールしてみてください。

Unboundのインストール

Unboundは,Unboundの公式サイトからダウンロードできます。

執筆時点での最新バージョンは1.0.2であり,ファイル名はunbound-1.0.2.tar.gzです。

Unboundのtarballをダウンロードしたら,次のようにしてインストールを行います。デフォルトでは設定ファイルunbound.confがあるディレクトリにchrootするため,ここではディレクトリ/var/unboundに設定ファイルを置くことにします。

$ tar xvzf unbound-1.0.2.tar.gz
$ cd unbound-1.0.2/
$ ./configure \
    --prefix=/usr/local \
    --with-conf-file=/var/unbound/unbound.conf \
    --with-ldns=/usr/local
$ make
$ su
# make install

共有ライブラリlibunbound.soが追加されたため,共有ライブラリのキャッシュの更新を行ってください。

# /sbin/ldconfig

起動スクリプトのサンプルファイルがcontribディレクトリにあるので,それを/etc/init.dにコピーして登録します。unboundの絶対パスの調整も行ってください。

# cp contrib/unbound.init /etc/init.d/unbound
# sed -i 's_/usr/sbin/unbound_/usr/local/sbin/unbound_' /etc/init.d/unbound
# chmod 755 /etc/init.d/unbound
# /sbin/chkconfig --add unbound
# /sbin/chkconfig unbound on

設定ファイルを/var/unbound/unbound.confに配置したので,使いやすくするために/etc/にシンボリックリンクを作成すると良いでしょう。

# ln -s /var/unbound/unbound.conf /etc/

unboundを実行するユーザunboundとグループunboundを作成し,chrootするディレクトリを所有させます。

# /usr/sbin/groupadd -r unbound
# /usr/sbin/useradd -r -g unbound -d /var/unbound -s /sbin/nologin unbound
# chown unbound:unbound /var/unbound

chrootするディレクトリ/var/unboundに/etc/localtime,/etc/resolv.confをコピーし,さらにログソケット/dev/logと乱数デバイス/dev/randomを作成する必要があります。先ほどの起動スクリプトを使用する場合には,この処理が含まれています。

必要なファイルを作成したらchrootのディレクトリは次のようになるでしょう。

# find /var/unbound -print
/var/unbound
/var/unbound/unbound.conf
/var/unbound/etc
/var/unbound/etc/resolv.conf
/var/unbound/etc/localtime
/var/unbound/dev
/var/unbound/dev/random
/var/unbound/dev/log

以上でインストールは完了しました。

著者プロフィール

滝澤隆史(たきざわたかし)

株式会社サードウェアに所属。

OSSの活動としては,メールシステム全般に興味があり,TTYベースのメーラMuttの開発に参加したり,qmailのアドオンパッケージを開発したり,SpamAssassinの日本語対応パッチの開発をしてきた。メールだけではなく,DNSにも興味があり,先日,日本Unboundユーザ会を立ち上げた。

コメント

コメントの記入