- 追加された行はこの色です。
- 削除された行はこの色です。
*BIND [#r36f935d]
[[BIND>+http://www.isc.org/downloads/bind/]]
Linux上にDNSサーバ(名前解決)を構築する為のミドルウェア。
~
*インストール [#n8ab718e]
&size(16){&font(b){0. アンインストール};};
インストール済みのBINDが残ったまま新しいBINDを入れると、
後に起動問題とかで面倒くさい事になるので、事前にアンインストールをしておく。
$ yum remove bind bind-libs bind-chroot bind-devel bind-devel
$ ldconfig
~
&size(16){&font(b){1. ビルド・インストール};};
事前に最新版のBINDをダウンロードしておく事。
今回は[[OpenSSL:+http://www.ns-lab.org/wiki/?Linux%2FSource%2FOpenSSL]]をソースからインストールしてある事と、
BINDをchroot環境で動作させる事とする。
また、./configureかける時に、普通はオプションとかを直接打ち込むのだが、
今回は長めのオプションを指定するので、オプションコマンドを別ファイルにしておく。
$ tar zxvf bind-9.10.1.tar.gz
$ echo "--prefix=/usr/local/bind-9.10.1 --with-openssl=/usr/local/openssl --enable-threads --enable-ipv6 --with-pic --disable-static --disable-openssl-version-check --disable-isc-spnego --enable-largefile --enable-chroot" > ./configure.option
$ cd bind-9.10.1
$ ./configure `cat ../configure.option`
$ make
$ make install
$ cd /usr/local
$ ln -s /usr/local/bind-9.10.1 ./bind
~
&size(16){&font(b){2. ユーザとディレクトリの作成};};
ソースからインストールした場合、ユーザやchrootディレクトリも自作する必要がある。
さらに言うと、initファイルやnamed.confも1から自作する必要がある。
※コンフィグのひな形は"FAQ"に書いてあるが、完成形コンフィグではない点に注意。
~
今回は以下の設定にて設定を行う。
また、ディレクトリはchroot化しなかった場合と同じ構成とする。
BIND(chroot)ディレクトリ:/var/named/chroot
BIND実行ユーザ:named
BIND実行グループ:named
BIND設定ファイル:/var/named/chroot/etc/named.conf
~
$ mkdir /var/named
$ groupadd named
$ useradd -g named -d /var/named -s /sbin/nologin named
$ rm -rf /var/named/* && rm -rf /named/.*
$ chmod 750 /var/named
$ chown root.named /var/named
$ cd /var/named
$ mkdir -p ./chroot/dev ./chroot/etc ./chroot/var
$ cd ./chroot/dev
$ mknod -m 644 ./null c 1 3
$ mknod -m 644 ./random c 1 8
$ cd ../var
$ mkdir -p ./cache/bind ./log ./named/data ./named/dynamic ./run/named
$ chown named.named ./log ./run/named
$ chown -R named.named ./named
~
&size(16){&font(b){3. 設定ファイル};};
基本的に1から作成する必要があるので注意。テンプレを内包してくれればいいのに...
基本的に1から作成する必要がある。BIND側でテンプレを入れてくれればいいのに...
$ /usr/local/bind/bin/dig . ns @202.12.27.33 +bufsize=1024 > /var/named/chroot/var/named/named.ca
$ vi /var/named/chroot/var/named/named.empty
$TTL 3H
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
$ vi /var/named/chroot/var/named/named.localhost
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
$ vi /var/named/chroot/var/named/named.loopback
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
PTR localhost.
$ vi /etc/init.d/named
#!/bin/sh
#
# named This shell script takes care of starting and stopping
# named (BIND DNS server).
#
# chkconfig: 345 55 45# description: named (BIND) is a Domain Name Server (DNS)
# that is used to resolve host names to IP addresses.
# probe: true
# BIND configuration
BIND_ROOT="/var/named/chroot"
BIND_CONFIG="/etc/named.conf"
BIND_USER="named"
BIND_OPTIONS="-u ${BIND_USER} -c ${BIND_CONFIG} -t ${BIND_ROOT}"
BIND_PIDFILE="${BIND_ROOT}/var/run/named/named.pid"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -f /usr/local/bind/sbin/named ] || exit 0
[ -f ${BIND_ROOT}${BIND_CONFIG} ] || exit 0
# See how we were called.
case "$1" in
start)
# Start BIND.
echo -n "Starting bind: "
if [ -e /var/lock/subsys/named ] ; then
echo "BIND running"
exit 0
else
daemon /usr/local/bind/sbin/named ${BIND_OPTIONS}
echo
touch /var/lock/subsys/named
fi
;;
stop)
# Stop daemons.
echo -n "Shutting down bind: "
killproc -p ${BIND_PIDFILE}
rm -f /var/lock/subsys/named
echo
;;
status)
status named
exit $?
;;
restart)
$0 stop
$0 start
exit $?
;;
*)
echo "Usage: named {start|stop|restart|status}"
exit 1
esac
exit 0
~
&size(16){&font(b){4. logローテート};};
書きかけ