限制 Linux 上进程的网络访问?

限制 Linux 上进程的网络访问?

我一直在研究如何对进程进行沙盒处理,并发现了 cgroups,它看起来很有前途。我不太想为此使用虚拟化或 strace,因为我希望程序运行得尽可能快。我也知道 SELinux/AppArmor,但我正在寻找一种不需要内核修补的东西(如果可能的话)。

我知道 cgroups 可用于限制 CPU/内存使用率和文件系统访问,但它可用于阻止进程打开套接字或绑定到端口吗?或者,我是否可以结合使用某些东西与 cgroups 来限制网络访问?能够分别限制每个功能将非常棒。

再次感谢!

答案1

您可以设置iptables匹配 UID/GID 或 UID/GID 范围的规则。使用--uid-owner--gid-owner选项选择要匹配的 UID/GID,然后在其中一个用户帐户下运行您的进程。

此类规则应在OUTPUTPOSTROUTING链中。

相关内容