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

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

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

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

答案1

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

iptables -A OUTPUT -p tcp -m tcp --dport 80 -m owner --uid-owner username -j ACCEPT 

从手册页

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

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

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

相关内容