我一直在研究如何沙盒进程,我碰到了cgroups,看起来很有希望。 我并不是特别喜欢使用虚拟化或strace,因为我希望程序运行得尽可能快。 我也意识到SELinux / AppArmor,但我正在寻找一些不需要内核修补的东西,如果可能的话。
我知道cgroups可以用来限制cpu / mem的使用和文件系统的访问,但它可以用来防止打开套接字或绑定到端口的进程? 或者,有什么我可以用cgroups来限制networking访问? 能够分别限制每个将是真棒。
再次感谢!
您可以设置匹配UID / GID或UID / GID范围的iptables规则。 使用--uid-owner和--gid-owner选项来select要匹配的UID / GID,然后在其中一个用户帐户下运行您的进程。
这样的规则应该在OUTPUT或POSTROUTING链中。