如何设置 apparmor 来绑定 DNS?

如何设置 apparmor 来绑定 DNS?

我发现在我的服务器上,apparmor 阻止我在 chrooted 环境中运行 Bind。我创建了一个文件夹,其中/chroot/named包含 Bind 正常工作所需的所有目录和文件,因此,当我为 Bind(命名)禁用 apparmor 时,(chrooted)可以正常工作。

不过,我认为设置 apparmor 会很好,这样我就可以同时拥有这两种安全机制。

我尝试在/etc/apparmor.d/usr.sbin.named配置文件中添加以下几行并重新启动 apparmor 服务,但之后 Bind 无法启动:

/chroot/named/** lrwmk,
/chroot/named/ lrwmk,
/chroot/named/* lrwmk,

我不知道哪种变体是正确的,所以我把这三种都放进去了,因为当 Bind 没有 chrooted 时,我在同一个配置文件中看到了前两个没有 * 和有双 * 的其他路径,并且为了以防万一添加了第三个带有单个 * 的变体,但它没有用。

重新启动 Bind 后没有显示任何错误,但是当我使用systemctl status named.service或检查时systemctl status bind9.service它显示:

● named.service - BIND Domain Name Server
Loaded: loaded (/lib/systemd/system/named.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2021-02-18 17:26:48 CET; 14s ago
Docs: man:named(8)
Process: 17739 ExecStart=/usr/sbin/named -f $OPTIONS (code=exited, status=1/FAILURE)
Main PID: 17739 (code=exited, status=1/FAILURE)
Feb 18 17:26:48 ubuntu-s-1vcpu-2gb-fra1-01 systemd[1]: Started BIND Domain Name Server.
Feb 18 17:26:48 ubuntu-s-1vcpu-2gb-fra1-01 named[17739]: named: chroot(): Permission denied
Feb 18 17:26:48 ubuntu-s-1vcpu-2gb-fra1-01 systemd[1]: named.service: Main process exited, code=exited, status=1/FAILURE
Feb 18 17:26:48 ubuntu-s-1vcpu-2gb-fra1-01 systemd[1]: named.service: Failed with result 'exit-code'.

我需要对 apparmor 做什么才能使 chrooted Bind 正常工作?

相关内容