Столкнулся с такой проблемой при переносе BIND в chroot директорию. Всё сделал по всем известному мануалу который есть уже везде(даже в книжках по Debian)? и переведён на все языки мира. Ман вот тут:
http://www.howtoforge.com/howto_bind_chroot_debian. Так вот после проведения всех этих шаманских действий BIND таки заработал, но с одним условием - отключенным apparmor. И в логах пишется следующее:
Jun 26 15:32:30 ns1 named[1101]: built with '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--sysconfdir=/etc/bind' '--localstatedir=/var' '--enable-threads' '--enable-largefile' '--with-libtool' '--enable-shared' '--enable-static' '--with-openssl=/usr' '--with-gssapi=/usr' '--with-gnu-ld' '--with-dlz-postgres=no' '--with-dlz-mysql=no' '--with-dlz-bdb=yes' '--with-dlz-filesystem=yes' '--with-dlz-ldap=yes' '--with-dlz-stub=yes' '--with-geoip=/usr' '--enable-ipv6' 'CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2' 'LDFLAGS=-Wl,-Bsymbolic-functions' 'CPPFLAGS='
Jun 26 15:32:30 ns1 named[1101]: adjusted limit on open files from 1024 to 1048576
Jun 26 15:32:30 ns1 named[1101]: found 2 CPUs, using 2 worker threads
Jun 26 15:32:30 ns1 named[1101]: using up to 4096 sockets
Jun 26 15:32:30 ns1 named[1101]: loading configuration from '/etc/bind/named.conf'
Jun 26 15:32:30 ns1 named[1101]: reading built-in trusted keys from file '/etc/bind/bind.keys'
Jun 26 15:32:30 ns1 named[1101]: using default UDP/IPv4 port range: [1024, 65535]
Jun 26 15:32:30 ns1 named[1101]: using default UDP/IPv6 port range: [1024, 65535]
Jun 26 15:32:30 ns1 named[1101]: listening on IPv6 interfaces, port 53
Jun 26 15:32:30 ns1 named[1101]: listening on IPv4 interface lo, 127.0.0.1#53
Jun 26 15:32:30 ns1 named[1101]: listening on IPv4 interface eth0, 192.168.55.175#53
Jun 26 15:32:30 ns1 named[1101]: generating session key for dynamic DNS
Jun 26 15:32:30 ns1 named[1101]: automatic empty zone: 254.169.IN-ADDR.ARPA
Jun 26 15:32:30 ns1 named[1101]: automatic empty zone: 2.0.192.IN-ADDR.ARPA
Jun 26 15:32:30 ns1 named[1101]: automatic empty zone: 255.255.255.255.IN-ADDR.ARPA
Jun 26 15:32:30 ns1 named[1101]: automatic empty zone: 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA
Jun 26 15:32:30 ns1 named[1101]: automatic empty zone: 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA
Jun 26 15:32:30 ns1 named[1101]: automatic empty zone: D.F.IP6.ARPA
Jun 26 15:32:30 ns1 named[1101]: automatic empty zone: 8.E.F.IP6.ARPA
Jun 26 15:32:30 ns1 named[1101]: automatic empty zone: 9.E.F.IP6.ARPA
Jun 26 15:32:30 ns1 named[1101]: automatic empty zone: A.E.F.IP6.ARPA
Jun 26 15:32:30 ns1 named[1101]: automatic empty zone: B.E.F.IP6.ARPA
Jun 26 15:32:30 ns1 named[1101]: command channel listening on 127.0.0.1#953
Jun 26 15:32:30 ns1 named[1101]: command channel listening on ::1#953
Jun 26 15:32:30 ns1 named[1101]: zone 0.in-addr.arpa/IN: loaded serial 1
Jun 26 15:32:30 ns1 named[1101]: zone 127.in-addr.arpa/IN: loaded serial 1
Jun 26 15:32:30 ns1 named[1101]: zone 255.in-addr.arpa/IN: loaded serial 1
Jun 26 15:32:30 ns1 named[1101]: zone localhost/IN: loaded serial 2
Jun 26 15:32:30 ns1 named[1101]: running
А с включёным apparmor выходит так:
Jun 26 15:38:21 ns1 named[1165]: starting BIND 9.7.0-P1 -u bind -t /var/lib/named
Jun 26 15:38:21 ns1 named[1165]: built with '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--sysconfdir=/etc/bind' '--localstatedir=/var' '--enable-threads' '--enable-largefile' '--with-libtool' '--enable-shared' '--enable-static' '--with-openssl=/usr' '--with-gssapi=/usr' '--with-gnu-ld' '--with-dlz-postgres=no' '--with-dlz-mysql=no' '--with-dlz-bdb=yes' '--with-dlz-filesystem=yes' '--with-dlz-ldap=yes' '--with-dlz-stub=yes' '--with-geoip=/usr' '--enable-ipv6' 'CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2' 'LDFLAGS=-Wl,-Bsymbolic-functions' 'CPPFLAGS='
Jun 26 15:38:21 ns1 named[1165]: adjusted limit on open files from 1024 to 1048576
Jun 26 15:38:21 ns1 named[1165]: found 2 CPUs, using 2 worker threads
Jun 26 15:38:21 ns1 named[1165]: using up to 4096 sockets
Jun 26 15:38:21 ns1 named[1165]: loading configuration from '/etc/bind/named.conf'
Jun 26 15:38:21 ns1 named[1165]: none:0: open: /etc/bind/named.conf: permission denied
Jun 26 15:38:21 ns1 named[1165]: loading configuration: permission denied
Jun 26 15:38:21 ns1 named[1165]: exiting (due to fatal error)
Jun 26 15:38:21 ns1 kernel: [ 996.419542] type=1503 audit(1277545101.434:24): operation="open" pid=1167 parent=1164 profile="/usr/sbin/named" requested_mask="r::" denied_mask="r::" fsuid=104 ouid=104 name="/var/lib/named/etc/bind/named.conf"
То есть я так понимаю нет доступа пользователю named к файлу '/etc/bind/named.conf? Но при помещении в среду chroot права прописывались на пользователя bind (chown -R bind:bind /var/lib/named/var/* и chown -R bind:bind /var/lib/named/etc/bind) от которого и должен запускаться демон? Почему же он ломится в конфигурационный файл вне chroot директории от имени named? В логах видно что BIND запускается с флагом -t(starting BIND 9.7.0-P1 -u bind -t /var/lib/named)Что это значит? Поясните в чём проблема и достигается ли при этом основная цель - то бишь пущая безопасность DNS?