如何扩展 SELinux 策略以允许 ntpd 使用 gps?

如何扩展 SELinux 策略以允许 ntpd 使用 gps?

主板上有一个附加设备,NTP服务尝试从中读取数据(附加设备链接位于/dev目录中)。使用 SELinux 时enforcing,服务状态错误表明它没有权限访问设备。将 SELinux 设置为disabled可以解决问题,但这不是标准方法。

我知道有人应该在这种情况下制定新的 SELinux 策略。假设NTP服务尝试读取/dev/gps0,有人可以举例说明如何为此编写 SELinux 规则吗?

答案1

一般来说,在处理 RHEL/CentOS 发行版中包含的 SELinux 和标准服务时,您应该首先阅读相应的<servicename>_selinux手册页。

在这种情况下,至少在 RHEL 7 上,ntpd 的 SELinux 策略包括 SELinux 文件类型标签,这表明该策略可能具有通过 与 GPS 设备通信的gpsd_tmpfs_t内置支持。设置然后在它之间进行通信可能是在使用 GPS 设备时保持最严格的 SELinux 策略的方法。ntpdgpsdgpsdntpdntpd

或者,您可以使用semanage permissive -a ntpd_t将 SELinux 切换到宽容模式为了 ntpd 仅过程。

当处于宽容模式时,您可以在审核日志中找到引用 /dev/gps0 或 /dev/ttyUSB0 的消息(请参阅 参考资料/var/log/audit)并将它们提供给该audit2allow工具。它应该告诉您允许 ntpd 直接访问 GPS 设备所需的确切 SELinux 策略更改。

相关内容