限制对 Linux 上特定目录的访问

信息安全 linux selinux 服装
2021-08-26 11:30:28

我想将对硬盘上的单个目录(日志文件)的访问限制为几个进程(例如,单个进程的日志文件)。所有进程都在同一用户下运行,因此文件系统访问限制不是一个选项。

我有哪些选择?应用装甲?SELinux?

我不想限制单个进程,我想限制所有进程访问目录,除了少数选定的进程。似乎 AppArmor 无法做到这一点。

3个回答

好处——是的,你可以用 SELinux 做到这一点。缺点——你必须了解 SELinux。:)

您可以在不同的 SELinux 域中执行这些进程。例如,让我们称两个进程为“privapp”和“unprivapp”——privapp 能够访问 /var/lib/app/log,而 unprivapp 不能访问 /var/lib/app/log,尽管以同一用户身份运行。

因此,您创建了两个域privapp_t并将unprivapp_t可执行文件标记为privapp_exec_tunprivapp_exec_t然后将 /var/lib/app/log 标记为var_lib_privapp_rw_t并指示只有运行 as 的进程privapp_t才能访问它。

这是容易的部分——困难的部分是用政策语言表达上述内容,众所周知,这种语言会让成年男女流泪。:)

我认为您无法仅使用一个用户来完成此操作。我能想到的最接近你所说的是Android的方式,这只是每个进程在它自己的用户下运行,因此它只能访问它自己的文件和那些允许它的进程的文件使用权。在我所知道的任何系统中,进程本身都不是强身份。

我建议查看远程系统日志。这样您就可以确保日志不会被删除或篡改。