我正在尝试建立一个基于 AlmaLinux 9.2 的系统,以使用 SELinux 和 NetworkManager,以及只读 rootfs。由于各种原因,我想将我的“密钥文件”保存在单独的分区上。我添加了一个小配置文件/etc/NetworkManager/conf.d/20-system-connections.conf
,其中包含:
[keyfile]
path=/data/etc/NetworkManager/system-connections/
只要 SELinux 是“宽容的”,它就可以很好地工作。
但,一旦我有 SELinux“强制”,NetworkManager 就拒绝读取配置文件。看看journalctl -u NetworkManager | grep 'Read config'
我发现它没有读取配置文件:
SELinux 强制执行:
Feb 05 16:34:23 almatest NetworkManager[39809]: <info> [1707147263.6083] Read config: /etc/NetworkManager/NetworkManager.conf (run: 15-carrier-timeout.conf)
(注 - 否20-system-connections.conf
)
SELinux 许可:
Feb 05 16:40:59 almatest NetworkManager[43518]: <info> [1707147659.1304] Read config: /etc/NetworkManager/NetworkManager.conf (run: 15-carrier-timeout.conf) (etc: 20-system-connections.conf)
(注意 - 就在那里!)
我已经使用 - 设置了 SELinux 上下文semanage fcontext -a -e /etc/NetworkManager/NetworkManager.conf /etc/NetworkManager/conf.d/20-system-connections.conf
,它显示为带有semanage fcontext --list
, 和的“本地 fcontext 等效项”
# ls -lZ /etc/NetworkManager/conf.d/20-system-connections.conf /etc/NetworkManager/NetworkManager.conf
-rw-r--r--. 1 root root system_u:object_r:NetworkManager_etc_rw_t:s0 2291 Feb 5 16:34 /etc/NetworkManager/NetworkManager.conf
-rw-r--r--. 1 root root system_u:object_r:NetworkManager_etc_rw_t:s0 275 Feb 5 15:06 /etc/NetworkManager/conf.d/20-system-connections.conf
这全部基于 AlmaLinux 9.2,使用NetworkManager-1.42.2-1.el9.x86_64
.
我究竟做错了什么?
我尝试过添加
[logging]
domains=ALL:TRACE
在/etc/NetworkManager/NetworkManager.conf
- 但它没有添加任何有趣的东西。
答案1
部分答案:
某些 SELinux 策略可能被设置为dontaudit
- 这意味着它们将不是登录/var/log/audit/audit-log
。可以使用semodule --build --disable_dontaudit
(semodule -DB
简称)禁用此功能。
这在审计报告中提供了更多信息,其中一些与我的问题相关。