防止安装在目标下

防止安装在目标下

我想阻止所有用户(包括 root)通过 SELinux 或任何其他 Linux 工具在特定目标(例如 /tmp)下安装任何内容,这可能吗?又该如何做呢?

关于拟议的副本: 如何拒绝安装权限?——这不是我想要的。

首先,在谈论 root 用户时,它完全忽略了 SELinux。其次,它谈到删除“安装权限”。这不是我想要实现的目标。实际上,我更多地谈论“拒绝文件夹权限”而不是安装权限。最接近我正在尝试的是神话还是现实:SELinux 可以限制 root 用户吗?它只是不讨论文件夹访问,特别是拒绝“安装”到该文件夹​​。

如果我选择一个可能的解决方案而不是一个问题,我会问:“是否有 SELinux 域来限制安装?”

答案1

在启用 SELinux 的系统上,每个对象(进程、文件等)都有一个安全标签。 SELinux 策略包含描述这些标签允许的操作的规则。默认策略相当复杂和广泛。配置策略可能已经足以防止安装在大多数位置(基于标签)。

该策略不对不受限制的用户施加限制。此外 allow_mount_anyfile布尔值控制mount命令是否可以使用(几乎)任何文件作为安装点。使用受限用户将对用户访问系统的方式设置许多限制。 SELinux基于角色的访问控制 (RBAC)将受限用户置于受限角色中。角色限制角色允许哪些域(进程安全标签)。此外,受限用户user_r无法切换到其他角色。

我们可以检查已安装的策略,以确定具有受限角色的用户是否可以使用标记的文件/目录作为安装点(直接或通过滥用另一个允许的域)。

首先,检查user_r可以使用以下命令转换到哪些域seinfo

seinfo -r user_t -x 

SELinux 策略语言有mounton允许域使用目标文件/目录作为安装点的权限。要查询已安装的策略以查找允许域使用目标对象作为挂载点:

sesearch --allow -t <target file/directory type> -p mounton

如果域中没有user_r允许的规则,则 中的用户user_r无法使用目标作为安装点(即使他们是 中的 root user_r)。此外,还应验证不存在可用于规避该策略的relabelfrom(重新标记)或权限。unlink

限制管理员(root 中的sysadm_r)并非易事。它需要具有新自定义类型的策略模块和/或自定义基本策略,可能sysadm_t具有前面提到的权限。自定义策略需要具有仅允许的域可访问的类型。此外,策略需要拒绝任何可能允许规避策略的行为,从而导致 root 用户比 root 用户更接近受限用户。

相关内容