Pi-Hole 的 SELinux 策略

Pi-Hole 的 SELinux 策略

我在 Raspberry 上运行 Fedora Server 28 for ARM,在安装 Pi-Hole 期间,我收到一条有关 SELinux 被设置为“强制”的警告消息,因此我无法使用 Pi-Hole 的管理页面。

事实确实如此,http://pi.hole/返回一个空白页,并且没有禁用 SELinux / 将其设置为 /etc/sysconfig/selinux 上的许可 Pi-Hole 根本不起作用。

问题是,如何创建一个策略,允许 Pi-Hole 在处于强制状态的情况下按预期工作?

编辑#1

我找到了这个问题:

从默认策略开始,以宽容的方式运行以查看需要修复的内容。然后修改您的策略以解决潜在的问题。然后重新开始严格执行。

grep hole /var/log/audit/audit.log输出许多 comm="php-cgi" 和 comm="dnsmasq" 拒绝。

这能解决我的问题吗?

$ grep hole /var/log/audit/audit.log | audit2allow -M mypolicy
******************** IMPORTANT ***********************
To make this policy package active, execute:

# /usr/sbin/semodule -i mypolicy.pp

答案1

来自 Pi-Hole 的 GitHub:

Pi-hole 是一个广告感知 DNS/Web 服务器,利用以下技术:

dnsmasq - 轻量级 DNS 和 DHCP 服务器

解决了我的问题:

SELINUX=permissive在 /etc/sysconfig/selinux 中

reboot

# grep dnsmasq_t /var/log/audit/audit.log | audit2allow -m dnscache > dnscache.te

# grep dnsmasq_t /var/log/audit/audit.log | audit2allow -M dnscache

semodule -i dnscache.pp

验证:

semodule -l | grep dns

然后:

SELINUX=enforcing在 /etc/sysconfig/selinux 中

reboot

相关内容