我一直在阅读,但似乎找不到创建每进程防火墙规则的方法。我知道,iptables --uid-owner
但这仅适用于传出流量。我考虑过编写脚本netstat
,iptables
但这似乎效率非常低,因为如果一个进程仅在很短的时间内处于活动状态,则脚本可能会错过它。基本上我想在进程上强制执行有关端口和目标的特定限制,同时使其他进程不受影响。有任何想法吗?
作为参考,selinux 可以做到这一点,而且效果相当好。不过,设置有点痛苦。
答案1
有--cmd-owner
iptables 的所有者模块,但由于无法正常工作而被删除。现在是第一个测试版豹花可用,这通过用户空间守护进程解决了问题。
一般来说,每个进程的防火墙不是很有用,除非你真正隔离和限制程序。为此,您应该考虑诸如 TOMOYO Linux、SELinux、AppArmor、grsecurity、SMACK 等安全解决方案。
答案2
很简单,在不同的用户下运行您的进程并使用“--uid-owner”:)
答案3
查看 man 8 iptables-extensions 和“cgroup”选项,它可能允许过滤与特定 cgroup2 层次结构关联的套接字。如果您可以使用唯一的 cgroup 来运行特定进程,则这可能适用于 OUTPUT 和 INPUT 链;然而,手册页给出了将其与 INPUT 链一起使用的警告,因此一定要根据进程/程序进行测试和 YMMV。