bindをソースからインストールして内部DNSサーバーを構築する
bindをCentOS6.3にソースインストールしたログ。
OS : CentOS6.3 x86_64
インストールタイプ : minimal
まずネットワークを有効化する。
# /etc/sysconfig/network-scripts/ifcfg-eth0
# /etc/init.d/network restart
必要となるパッケージをインストールする。
# yum -y install wget (bindをダウンロードするのに必要)
# yum -y install openssl-devel (bindのconfigureで必要)
# yum -y install gcc (configureするのに必要)
# yum -y install perl (configureの内部で必要)
# yum -y install make (configureとmake時に必要)
※ yum -y groupinstall "Development tools"でもいいかもね。
bindのソースをダウンロード、展開する。
# cd /usr/local/src
# wget ftp.isc.org/isc/bind9/9.9.2-P1/bind-9.9.2-P1.tar.gz
# tar zxvf bind9-9.9.2-P1.tar.gz
configure、make、make installを実行する。
# cd bind9-9.9.2-P1
# ./configure --prefix=/var/named/chroot --enable-threads
# make
# make install
※configureのオプションが知りたい場合は以下を実行。
# ./configure --help
bindの実行ユーザーを作成する。
# groupadd -g 25 named
# useradd -u 25 -g named -c Named -d /var/named -s /sbin/nologin named
デバイスファイルの作成。
# mkdir /var/named/chroot/dev
# mknod -m 666 /var/named/chroot/dev/null c 1 3
# mknod -m 666 /var/named/chroot/dev/random c 1 8
rndcキーの作成。
# /var/named/chroot/sbin/rndc-confgen -a
コマンドのスタティックリンクを作成。
# ln -s /var/named/chroot/sbin/rndc /usr/local/sbin/rndc
# ln -s /var/named/chroot/sbin/named-checkconf /usr/local/sbin/named-checkconf
# ln -s /var/named/chroot/sbin/named-checkzone /usr/local/sbin/named-checkzone
# ln -s /var/named/chroot/bin/dig /usr/local/bin/dig
ルートサーバーの情報を更新。
# mkdir /var/named/chroot/var/named
# dig @a.root-servers.net . ns > /var/named/chroot/var/named/named.ca
named.confを作成。
# vi /var/named/chroot/etc/named.conf
zoneファイルを作成。
# mkdir /var/named/chroot/var/named
# vi /var/named/chroot/var/named/example.local.db
# vi /var/named/chroot/var/named/0.168.192.in-addr.arpa.db
ディレクトリの所有者を変更。
# chown -R named:named /var/named
bindの起動。
# /var/named/chroot/sbin/named -u named -t /var/named/chroot -c /etc/named.conf
bindの起動を確認。
# tail /var/log/messages
Mar 15 14:56:27 test1 named[19711]: all zones loaded
Mar 15 14:56:27 test1 named[19711]: running
名前が引けるか確認。
# dig @localhost example.local.
...
;; ANSWER SECTION:
example.local. 86400 IN A 192.168.0.60
...
※サブネットからの問合せを受け付ける場合、以下に追加
# /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
(参考)
http://koshikake.blogto.jp/archives/6328895.html
http://www.geocities.jp/yasasikukaitou/bind_install.html