由于 apparmor 导致 Samba4 和 Bind9 无法协同工作

由于 apparmor 导致 Samba4 和 Bind9 无法协同工作

因此,我一直在遵循 Samba4 HOWTO,效果还不错。我遇到的问题是,当 samba 配置包含在以下位置时,我无法让 BIND9 重新启动/etc/bind/named.conf.local

include "/var/lib/samba/private/named.conf";

但是当我尝试重新启动 Bind9 时,sudo /etc/init.d/bind9 restart我的日志中出现了错误:

Oct 18 20:25:00 xxxx kernel: [  251.397899] type=1400 audit(1350588300.188:16):    
apparmor="DENIED" operation="open" parent=1807 profile="/usr/sbin/named"    
name="/var/lib/samba/private/named.conf" pid=1810 comm="named" requested_mask="r"
denied_mask="r" fsuid=105 ouid=0

我已经制定了以下规则/etc/apparmor.d/usr.sbin.named(我认为有些过分,但我已经调试了好几个小时)

    /var/lib/samba/ rw,
    /var/lib/samba/* rw,
    /var/lib/samba/private/ rw,
    /var/lib/samba/private/* rw,
    /var/lib/samba/private/dns/ rw,
    /var/lib/samba/private/dns/* rw,

为了完整起见,有问题的文件的权限如下:

    -rw-r--r-- 1 root root  384 Oct 17 11:39 named.conf

我尝试将 apparmor 置于投诉模式,禁用命名配置文件,bind9 完美启动,Samba 运行正常。但是,我一重新启动机器,它又坏了,我更愿意了解发生了什么,然后删除服务器安全的一部分来让系统正常运行。

    ~ sudo aa-complain /usr/sbin/named
    Setting /usr/sbin/named to complain mode.
    ~ sudo /etc/init.d/bind9 restart
    * Stopping domain name service... bind9

    rndc: connect failed: 127.0.0.1#953: connection refused
    ...done.
     * Starting domain name service... bind9
       ...done.

任何帮助均感激不尽。

答案1

这是我所做的(经过反复尝试):

$ cat /etc/apparmor.d/local/usr.sbin.named
# Site-specific additions and overrides for usr.sbin.named.
# For more details, please see /etc/apparmor.d/local/README.
  /var/lib/samba/private/named.conf r,
  /var/lib/samba/private/dns.keytab kwr,
  /usr/lib/samba/** m,
  /var/lib/samba/private/dns/** krw,
  /var/tmp/** krw,
  /dev/urandom rw,

$ service apparmor reload

$ service bind9 start

那么它就可以正常工作了。

相关内容