Сервер на Ubuntu 12.04.04.
Установлены sernet-samba-ad и все необходимые зависимости, в соответствии с рекомендациями wiki.samba.org.
server# samba -V
Version 4.1.5-SerNet-Ubuntu-7.precise
Samba с внутренним DNS-сервером работает нормально.
Установлен и нормально работает BIND.
server# named -V
BIND 9.8.1-P1 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-geoip=/usr' '--enable-ipv6' 'CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro' 'CPPFLAGS=-D_FORTIFY_SOURCE=2'
using OpenSSL version: OpenSSL 1.0.1 14 Mar 2012
using libxml2 version: 2.7.8
Непонятное начинается когда начинаешь дружить их вместе.
В логе при запуске BIND появляется следующее:
28-Feb-2014 14:19:29.306 dlz_dlopen failed to open library '/usr/lib/i386-linux-gnu/samba/bind9/dlz_bind9.so' - /usr/lib/i386-linux-gnu/samba/bind9/dlz_bind9.so: failed to map segment from shared object: Permission denied
Полный вывод:
server# /usr/sbin/named -u bind -f -g 2>&1 | tee named.log
28-Feb-2014 14:19:29.293 starting BIND 9.8.1-P1 -u bind -f -g
28-Feb-2014 14:19:29.293 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-geoip=/usr' '--enable-ipv6' 'CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro' 'CPPFLAGS=-D_FORTIFY_SOURCE=2'
28-Feb-2014 14:19:29.293 adjusted limit on open files from 4096 to 1048576
28-Feb-2014 14:19:29.293 found 2 CPUs, using 2 worker threads
28-Feb-2014 14:19:29.293 using up to 4096 sockets
28-Feb-2014 14:19:29.299 loading configuration from '/etc/bind/named.conf'
28-Feb-2014 14:19:29.300 reading built-in trusted keys from file '/etc/bind/bind.keys'
28-Feb-2014 14:19:29.300 using default UDP/IPv4 port range: [1024, 65535]
28-Feb-2014 14:19:29.301 using default UDP/IPv6 port range: [1024, 65535]
28-Feb-2014 14:19:29.302 listening on IPv6 interfaces, port 53
28-Feb-2014 14:19:29.303 listening on IPv4 interface lo, 127.0.0.1#53
28-Feb-2014 14:19:29.304 listening on IPv4 interface eth0, 192.168.10.10#53
28-Feb-2014 14:19:29.305 generating session key for dynamic DNS
28-Feb-2014 14:19:29.305 sizing zone task pool based on 5 zones
28-Feb-2014 14:19:29.306 Loading 'AD DNS Zone' using driver dlopen
28-Feb-2014 14:19:29.306 dlz_dlopen failed to open library '/usr/lib/i386-linux-gnu/samba/bind9/dlz_bind9.so' - /usr/lib/i386-linux-gnu/samba/bind9/dlz_bind9.so: failed to map segment from shared object: Permission denied
28-Feb-2014 14:19:29.306 dlz_dlopen of 'AD DNS Zone' failed
28-Feb-2014 14:19:29.306 SDLZ driver failed to load.
28-Feb-2014 14:19:29.306 DLZ driver failed to load.
28-Feb-2014 14:19:29.306 loading configuration: failure
28-Feb-2014 14:19:29.306 exiting (due to fatal error)
В /etc/apparmor.d/usr.sbin.named имеются записи:
...
/var/lib/samba/private/** rw,
/var/lib/samba/private/dns/** rw,
/usr/lib/x86_64-linux-gnu/samba/bind9/** rm,
/usr/lib/x86_64-linux-gnu/samba/gensec/** rm,
/usr/lib/x86_64-linux-gnu/ldb/modules/ldb/** rm,
/usr/lib/x86_64-linux-gnu/samba/ldb/** rm,
#include <local/usr.sbin.named>
}
Содержимое и права доступа /var/lib/samba/private/ и /usr/lib/i386-linux-gnu/samba/bind9/
server# ls -lah /var/lib/samba/private/
итого 11M
drwxr-x--- 7 root bind 4,0K февр. 28 14:25 .
drwxr-xr-x 10 root root 4,0K февр. 25 17:29 ..
drwxrwx--- 3 bind bind 4,0K февр. 25 17:26 dns
-rw-r--r-- 1 root root 2,3K февр. 25 17:29 dns_update_list
-rw------- 1 root root 1,3M февр. 25 17:29 hklm.ldb
-rw------- 1 root root 1,3M февр. 28 12:29 idmap.ldb
-rw-r--r-- 1 root root 92 февр. 25 17:29 krb5.conf
srwxrwxrwx 1 root root 0 февр. 28 12:29 ldapi
drwxr-x--- 2 root root 4,0K февр. 28 12:29 ldap_priv
-rw-r--r-- 1 root bind 576 февр. 28 13:52 named.conf
-r--r--r-- 1 root root 222 февр. 20 14:26 named.conf.update
-rw-r--r-- 1 root root 2,2K февр. 20 14:54 named.txt
-rw------- 1 root root 1,3M февр. 25 17:29 privilege.ldb
-rw------- 1 root root 696 февр. 20 14:26 randseed.tdb
-rw------- 1 root root 4,1M февр. 25 17:29 sam.ldb
drwx------ 2 root root 4,0K февр. 25 17:29 sam.ldb.d
-rw------- 1 root root 696 февр. 28 12:29 schannel_store.tdb
-rw------- 1 root root 1,1K февр. 25 17:29 secrets.keytab
-rw------- 1 root root 1,3M февр. 25 17:29 secrets.ldb
-rw------- 1 root root 420K февр. 28 12:29 secrets.tdb
-rw------- 1 root root 1,3M февр. 20 13:53 share.ldb
drwxr-xr-x 3 root root 4,0K февр. 20 14:26 smbd.tmp
-rw-r--r-- 1 root root 955 февр. 25 17:29 spn_update_list
drwx------ 2 root root 4,0K февр. 20 14:26 tls
server# ls -lha /usr/lib/i386-linux-gnu/samba/bind9/
итого 96K
drwxr-xr-x 2 root bind 4,0K февр. 25 17:26 .
drwxr-xr-x 11 root root 12K февр. 25 17:26 ..
-rw-r--r-- 1 root bind 38K февр. 21 16:58 dlz_bind9_9.so
-rw-r--r-- 1 root bind 38K февр. 21 16:58 dlz_bind9.so
Не понимаю почему BIND не может получить доступ к файлу.
Спасибо.
Пользователь решил продолжить мысль 28 Февраля 2014, 16:50:05:
В общем проблема решилась изменением файла /etc/apparmor.d/usr.sbin.named.
Пока выставил следующие разрешения:
/var/lib/samba/private/* r,
/var/lib/samba/private/dns/** rkw,
/usr/lib/i386-linux-gnu/samba/** rkm,
На некоторых сайтах в сети есть более подробные разграничения, поэтому в дальнейшем возможно придется внести дополнительные правки в этот файл.
Главное, теперь понятно куда копать.