iptables/pf 规则只允许 XY 应用程序/用户?

Lan*_*nes 9 firewall iptables pf

我认为没有 iptables/pf 解决方案只允许 XY 应用程序,例如:出站 tcp 端口 80、eth0。因此,如果我有一个用户 ID:“500”,那么我怎么能阻止任何其他通信,然后是在端口 80/outbound/tcp/eth0 上提到的?(例如:只是 privoxy 在 eth0 上使用端口 80)

额外:virtualbox 也使用端口 80?当来宾操作系统上的浏览器访问站点时..如何声明?- 设置普通用户会太坑

xen*_*ide 9

这是iptables允许uid通过某个端口进行某个操作的命令。

iptables -A OUTPUT -p tcp -m tcp --dport 80 -m owner --uid-owner username -j ACCEPT 
Run Code Online (Sandbox Code Playgroud)

从手册页

[!] --uid-owner userid[-userid] 如果数据包套接字的文件结构(如果有)由给定用户拥有,则匹配。您还可以指定数字 UID 或 UID 范围。

至于virtualbox..我相信它运行自己的内核......所以你可能想--uid-owner在主机操作系统上使用virtualbox,但--uid-owner在虚拟机上也有一个所有者规则。

注意到它--gid-owner也存在可能也很有用,您可以创建一个组browsersgid您的浏览器应用程序,以便它与一个有效的组一起运行,browser然后只将您想要浏览的用户放入该组中......这不是一个完美的解决方案......但大多数用户不会尝试作为该组运行任何其他应用程序,因此通常将出站限制为我相信的该应用程序。我没有试过这个,所以我不是 100% 会像我描述的那样工作。