bindからunboundへ

最近bindの脆弱性が多い。bindは機能豊富だし、慣れているというのもあるので個人では、ずっと使ってきたけれど、やはり現場の事考えたりすると運用しづらいところもあったりします。
仕事ではDJB dns,dnscacheを使ってcacheと分けたりして昔、お世話になっていましたが、今更感があります。(もうDNSのお仕事なんてしていませんが。。。)

今回は、nsdとunboundを使ってbindを置き換えることにしました。
freebsdなのでportsで手抜きインストールと思いましたが、nsd,unboundとともよく理解していないので、慣れるまでは、自分でcompile。。。

unboundではopensslは1.0以上を必要としているので、opensslからインストール。(面倒くさいね。。。)
通常はfreebsd標準のを使用したいので、opensslは単独で入れます。下記の場合は/usr/local/sslにインストールされます。

% tar zxvf openssl-1.0.1c.tar.gz
% cd openssl-1.0.1c
% ./config -fPIC shared
% make
% make test
# make install

unboundをcompileしようとしたらldnsがないとか怒られます。
http://www.nlnetlabs.nl/projects/ldns/
からダウンロードしてインストールします。

% tar zxvf ldns-1.6.13.tar.gz
% cd ldns-1.6.13
% ./configure --prefix=/usr/local/ldns
% make
# make install

いよいよ。Unboundのコンパイル。

% ./configure --prefix=/usr/local/unbound --with-ldns=/usr/local/ldns

/usr/local/etc/rc.d/unboundの起動shell scriptはpackageからぶっこ抜いて使用しています。^^)
パスやuserを変更しています。

unbound_enable="YES"

を追加。

unbound.confの設定で下記のところを主に変更。(chrootしてるのでdirectoryの変更は略)

interface: ...
access-control: ...
local-data: ...

bindでviewを使っていたのだけれど、local-dataで簡易的に記載できるので小規模サイトは便利ですね。。。

IPv6も問題なく動作しており、意外と簡単に乗り換えられました。