2016年5月26日木曜日

FreeBSD Bind9 (named) のインストール

- 注意 -
この記事において FreeBSD 9.3 のときにシステム内で使っていた /etc/namedb のディレクトリ内のデータをコピーして、新しく ports からインストールした named に使用する内容の記述をしました。このままの手順で行うと、以前の /etc/namedb のディレクトリ内のデータを参照するようになってしまいます。コピーして設定した場合には、/usr/local/etc/namedb/named.conf の中にある各ディレクトリの設定の見直しが必要です。

"/etc/namedb" --> "/usr/local/etc/namedb"


FreeBSD 10 系よりシステム内にあった DNS サーバの Bind9 (named) が ports へ移管されることになりました。今回、自宅サーバのシステムを FreeBSD 9.3 から FreeBSD 10.3 へアップグレードしたことにより、ports の Bind9 (named) をインストールしました。
FreeBSD 10.3 へアップグレード
http://near-unix.blogspot.jp/2016/05/freebsd-103.html

経緯

元々は FreeBSD 9.3 の段階でシステム内の Bind9 (named) から ports の Bind9 (named) へ移行しようと試みました。ビルドは成功して、インストールも行われたのですが、何故か起動スクリプト(/usr/local/etc/rc.d/named)がインストールされていないなど、問題を抱えている状態でした。

いろいろと操作して ports の Bind9 (named) を起動させることも不可能とは思われませんでしたが、当初より予定していた FreeBSD 10.3 へのアップグレード後に、新規に Bind9 をインストールすることとしました。

なおインストールした Bind9 (named) のバージョンは 9.9 のものです。ports 上には 9.10 と開発版の devel のものも存在していましたが、安定版志向ということで 9.9 を選択しました。

インストール

portmaster コマンドでインストールしました。依存関係のあるパッケージも一緒にインストールされました。
# portmaster dns/bind99
===>>> The following actions will be taken if you choose to proceed:
    Install dns/bind99
    Install dns/idnkit

===>>> Proceed? y/n [y]

設定ファイルの移動

FreeBSD 9.3 の時に使用していた設定ファイルをそのままコピーして使用しました。
# cp -Rp /etc/namedb  /usr/local/etc/namedb

起動スクリプト(/etc/rc.conf)

電源起動時の起動スクリプトは、FreeBSD 9.3 の時に使用していたものがそのまま使用することが出来ました。起動設定では、IPv4 のみの動作で、ユーザに bind を指定しています。
- /etc/rc.conf の named の起動部分 -
named_enable="YES"
named_flags="-4 -u bind"

起動

手動で起動させるときには次のコマンドです。(start:起動、stop:停止、restart:再起動)
# /usr/local/etc/rc.d/named start

名前の解決(/etc/resolv.conf)

DNS サーバの設定を行う /etc/resolv.conf を編集して、自分自身(127.0.0.1)の named を参照するように変更しました。
# vi /etc/resolv.conf

- /etc/resolv.conf の編集部分 -
nameserver    127.0.0.1

named : the working directory is not writable の警告

起動させると警告が出ていました。以前から発生していたものか?不明です。次のウェブサイトに詳しい解決方法が記述されていました。
BIND - name server error "the working directory is not writable"
http://scratching.psybermonkey.net/2009/09/bind-name-server-error-working.html

named が書き込みできないディレクトリは /var/name/etc でした。どおりで /usr/local/etc/namedb のディレクトリをいくら操作しても解決しなかったはずです(笑)。
# chown -R bind:wheel /var/name/etc

そして named の取り扱うファイルについての設定も変更しました。
# vi /etc/mtree/BIND.chroot.dist

- /etc/mtree/BIND.chroot.dist の変更部分 -
赤色部分が root から bind へ変更した部分
青色部分が追加した部分
/set type=dir uname=bind gname=wheel mode=0755
.
    dev             mode=0555
    ..
    etc
        namedb
            dynamic uname=bind
            ..
            master  uname=bind
            ..
            slave   uname=bind
            ..
            working uname=bind
            ..
        ..
    ..
/set type=dir uname=bind gname=wheel mode=0755
    var             uname=root
        dump
        ..
        log
        ..
        run
            named
            ..
        ..
        stats
        ..
    ..
..

0 件のコメント:

コメントを投稿