锁定 Linux 应用程序的网络访问

锁定 Linux 应用程序的网络访问

我想在 Linux VM 中运行一个不受信任的应用程序(主机是运行 VirtualBox 的 Windows 10)。它需要访问我 LAN 上的另一台服务器,但我想阻止除一个 IP 上的这个端口之外的任何其他网络访问。

AppArmor 似乎不允许这种细粒度的网络限制。

我宁愿不阻止整个客户操作系统的网络访问,因为我希望能够运行例如sudo apt-get update,但如果这是我能做的最好的,那么这是可以接受的。

最好的解决方案是什么?也许是在启动此程序之前设置临时系统范围防火墙规则的脚本?

答案1

由于你的虚拟机是 Linux,因此我将利用 Linux命名空间运行该应用程序沙盒化环境,例如使用火狱。对于你的情况,一个可能的方法是创建一个虚拟网络接口范围有限,只能到达 LAN 上的其他服务器。

然后使用 Firejail 启动您的应用程序,以便它只能“看到”一个网络接口 - 受限制的接口。

从命令行生成的命令将类似于以下内容:

firejail --net=veth0 yourapp

但您也可以创建自定义配置文件。

相关内容