Думаю ничего замечательного в отключении системы защиты AppArmor нет, тем более что решение проблемы давно найдено
http://www.howtoforge.org/forums/showthread.php?p=116893.
Опробовано мной и работает с небольшими коррективами (в частности права доступа на файлы изменять не нужно, достаточно прописать в файле профиля Bind9 в AppArmor новые пути для файлов dns-сервера, которые были изменены при организации среды chroot. Редактируется файл профиля /etc/apparmor.d/usr.sbin.named. Важно: перед редактированием остановить оба сервиса:
/etc/init.d/bind9 stop – остановка bind
/etc/init.d/apparmor stop – остановка apparmor
nano /etc/apparmor.d/usr.sbin.named – открытие файла для редактирования
После внесения изменений оба демона стартуются в
обратном порядке - apparmor, bind. На всякий случай смотрятся логи.
Содержимое файла usr.sbin.named (русскоязычные комментарии в строках, естественно, писать не нужно):
# vim:syntax=apparmor
# Last Modified: Fri Jun 1 16:43:22 2008
#include
/usr/sbin/named {
#include
#include
capability net_bind_service,
capability setgid,
capability setuid,
capability sys_chroot,
# /etc/bind should be read-only for bind
# /var/lib/bind is for dynamically updated zone (and journal) files.
# /var/cache/bind is for slave/stub data, since we’re not the origin of it.
# See /usr/share/doc/bind9/README.Debian.gz
#/etc/bind/** r, старый путь, закомментировано мной
/var/lib/named/etc/bind/** r, новый путь, прописан мной
/var/lib/bind/** rw,
/var/lib/bind/ rw,
/var/cache/bind/** rw,
/var/cache/bind/ rw,
# dnscvsutil package
/var/lib/dnscvsutil/compiled/** rw,
/proc/net/if_inet6 r,
/usr/sbin/named mr,
#/var/run/bind/run/named.pid w, старый путь, закомментировано мной
/var/lib/named/var/run/bind/run/named.pid w, новый путь, прописан мной
# support for resolvconf
#/var/run/bind/named.options r, старый путь, закомментировано мной
/var/lib/named/var/run/bind/named.options r, новый путь, прописан мной
/var/lib/named/dev/null rw, прописан мной
/var/lib/named/dev/random rw, прописан мной
}