我一直在研究如何对进程进行沙盒处理,并且遇到了看起来很有希望的 cgroups。我对为此使用虚拟化或 strace 不太感兴趣,因为我希望程序尽可能快地运行。我也知道 SELinux/AppArmor,但我正在寻找尽可能不需要内核补丁的东西。
我知道 cgroups 可用于限制 cpu/mem 使用和文件系统访问,但它能否用于防止进程打开套接字或绑定到端口?或者,有什么东西可以与 cgroups 结合使用来限制网络访问吗?能够分别限制每个人会很棒。
再次感谢!
我一直在研究如何对进程进行沙盒处理,并且遇到了看起来很有希望的 cgroups。我对为此使用虚拟化或 strace 不太感兴趣,因为我希望程序尽可能快地运行。我也知道 SELinux/AppArmor,但我正在寻找尽可能不需要内核补丁的东西。
我知道 cgroups 可用于限制 cpu/mem 使用和文件系统访问,但它能否用于防止进程打开套接字或绑定到端口?或者,有什么东西可以与 cgroups 结合使用来限制网络访问吗?能够分别限制每个人会很棒。
再次感谢!
您可以设置
iptables
匹配 UID/GID 或一系列 UID/GID 的规则。使用--uid-owner
和--gid-owner
选项选择要匹配的 UID/GID,然后在其中一个用户帐户下运行您的进程。这样的规则应该在
OUTPUT
orPOSTROUTING
链中。