我在 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