djbdns

BIND は度々セキュリティホールが見つかるため、不安は拭いきれません。
今回は djbdns で BIND を置き換えます。

daemontools のインストール

djbdns は daemontools を使ってサービス停止や起動を制御するので daemontools のインストールからです。

% sudo portinstall sysutils/daemontools

daemontools のサービスディレクトリの作成

daemontools はサービスディレクトリ以下にあるファイルを見て daemontools が制御すべきサービスを判断します。

% sudo mkdir /var/service

サービスディレクトリを変えたい場合は下記のように svscan_servicedir を設定する事で変える事が出来ます。
通常なら /var/service 以下で問題ないでしょう。

# svscan_servicedir     The directory containing the various service.
#                       directories to be monitored.  Professor Daniel J.
#                       Bernstein recomments "/service", but the FreeBSD
#                       port has a default of "/var/service" instead, which
#                       is consistent with the FreeBSD filesystem hierarchy
#                       guidelines as described in the hier(7) manual page.

daemontools の自動起動

daemontools の自動起動の設定です。

% sudo vi /etc/rc.conf

svscan_enable="YES"

daemontools の起動

daemontools の起動を起動します。

% sudo /usr/local/etc/rc.d/svscan.sh start

djbdns 用のユーザ及びグループの作成

まずは djbdns 用のユーザ作成を行います。
UID GID が重複しない様、気をつけましょう。

% sudo pw groupadd -n dns
% sudo pw useradd -n dnscache -c "djbdns dnscache" -d /nonexistent -g dns -h - -s /sbin/nologin
% sudo pw useradd -n tinydns -c "djbdns tinydns" -d /nonexistent -g dns -h - -s /sbin/nologin
% sudo pw useradd -n dnslog -c "djbdns dnslog" -d /nonexistent -g dns -h - -s /sbin/nologin

djbdns のインストール

djbdns のインストールを行います。

% sudo portinstall dns/djbdns

djbdns が使用するディレクトリの作成

通常は /var/dnscache などに作成するようですが、ここでは /usr/local/etc/namedb 以下にディレクトリを作成します。
理由としては FreeBSD の BIND の使用しているディレクトリが /etc/namedb ( シンボリックリンク ) のため、作業中の混乱を防止する意味合いでもあります。

% sudo mkdir -p /usr/local/etc/namedb

外向き DNS サーバと内向き DNS サーバの設定

BIND で設定した際に、外向きと内向きで設定が違うと言及しました。
これは再帰検索と反復検索の違いを暗に意味しており、 BIND のように設定次第で再帰検索と反復検索が同時に実現出来てしまうのは初心者にとって非常に危険です。
DNS の仕組みについては @IT - アットマーク・アイティDNSの仕組みの基本を理解しよう で非常に分かり易く説明されているので、一度は目を通しておいたほうが良いでしょう。