せでぃのブログ

ブログ初心者おいどんのどうでもいい愚痴やどうでもいい愚痴やどうでもいいマメ知識などを披露するチラシの裏です。

BINDを9.10.0-P2にアップデート

DNS BIND ソースファイルからのインストール方法
 この辺を参考に、今度はBINDをソースファイルからmakeしつつ、上書きでアップデートしてみた。
configureはかなり大雑把な感じだが、'--prefix=/usr'これと '--sysconfdir=/etc'これと '--localstatedir=/var' これさえ抑えておけば大体いいんじゃないかなーと。localstatedirの設置をミスったので、もっかい入れ直した。

yumで入れた旧BIND

Jul 22 23:23:09 centos named[13698]: starting BIND 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 -u named -t /var/named/chroot


Jul 22 23:23:09 centos named[13698]: built with '--build=i386-redhat-linux-gnu' '--host=i386-redhat-linux-gnu' '--target=i686-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib' '--libexecdir=/usr/libexec' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--with-libtool' '--localstatedir=/var' '--enable-threads' '--enable-ipv6' '--with-pic' '--disable-static' '--disable-openssl-version-check' '--with-dlz-ldap=yes' '--with-dlz-postgres=yes' '--with-dlz-mysql=yes' '--with-dlz-filesystem=yes' '--with-gssapi=yes' '--disable-isc-spnego' '--with-docbook-xsl=/usr/share/sgml/docbook/xsl-stylesheets' '--enable-fixed-rrset' 'build_alias=i386-redhat-linux-gnu' 'host_alias=i386-redhat-linux-gnu' 'target_alias=i686-redhat-linux-gnu' 'CFLAGS= -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables' 'CPPFLAGS= -DDIG_SIGCHASE'


ソースからコンパイルした新BIND

Jul 23 02:48:49 centos named[16588]: starting BIND 9.10.0-P2 -u named -t /var/named/chroot


Jul 23 02:48:49 centos named[16588]: built with '--prefix=/usr' '--localstatedir=/var' '--sysconfdir=/etc' '--enable-openssl-version-check' '--with-openssl=/usr' '--enable-chroot' '--enable-rrl'


 以下、起動後からエラーっぽいログが出ていた。/dev/randomの方は、かなり本当にいろいろやった結果、
chmod -R 756 /var/named/chroot/dev
で解決。770でもダメ、chown namedでもダメ、set enforce 0でもダメだったのでほぼ諦めかけてた。どんだけ関係ないユーザでアクセスしてんだよ、と。

[root@centos chroot]# pwd
/var/named/chroot
[root@centos chroot]# ls -la
合計 24
drwxr-x---. 6 named named 4096 7月 23 01:54 2014 .
drwxr-x---. 7 root named 4096 7月 23 01:54 2014 ..
drwxr-xrw-. 2 named named 4096 7月 23 01:54 2014 dev
drwxr-x---. 5 named named 4096 7月 23 02:28 2014 etc
drwxr-x---. 3 named named 4096 7月 23 01:54 2014 usr
drwxr-x---. 6 named named 4096 7月 23 01:54 2014 var

 working directoryの方は、set enforce 0で直ったので間違いなくSELinux。var/named配下にはゾーンファイルがあるので、namedディレクトリのみキャッシュっぽい属性に変更。
chcon unconfined_u:object_r:named_cache_t:s0 named
で解決。BINDはほぼやりたいことやり尽くしました。

[root@centos var]# pwd
/var/named/chroot/var
[root@centos var]# ls -Z
drwxr-x---. named named unconfined_u:object_r:named_zone_t:s0 log
drwxr-x---. named named unconfined_u:object_r:named_cache_t:s0 named
drwxr-x---. named named unconfined_u:object_r:named_cache_t:s0 run
drwxr-x---. named named unconfined_u:object_r:named_zone_t:s0 tmp


新named起動直後に出たエラーログ。

Jul 23 02:38:53 centos named[16206]: could not open entropy source /dev/random: permission denied
Jul 23 02:38:53 centos named[16206]: using pre-chroot entropy source /dev/rando

Jul 23 00:07:46 centos named[16880]: the working directory is not writable


参考)
ほか、インストール作業中のエラー対応の参考にしたサイト。
dns - ktakahashi_works
初期インストール作業の流れ
内向けのDNSを立てたはいいがフォワーダに困っている - せでぃのブログ
自宅ルータがフォワーダとして機能しなかったのはdnssec-validationの罠でした - せでぃのブログ