如何限制 Ubuntu 中的程序访问互联网。不是通过端口,而是通过应用程序。
答案1
您可以使用火狱。它在沙箱中运行应用程序,您可以在其中控制应用程序是否可以看到网络或文件系统。示例:
firejail --net=none firefox
这将在没有互联网访问的情况下执行 Firefox 浏览器。请注意,Ubuntu repo 中的 firejail 发行版是过时的- 最好从 firejail 主页下载其最新的 LTS 版本。
有关 firejail 使用的其他信息 -这里。
答案2
我认为您正在寻找的是“基于应用程序的防火墙”。用 Google 搜索找不到任何当前对 Ubuntu(或一般 Linux)有用的东西。曾经有一个名为 TuxGuardian 的东西,但它似乎在 2006 年就被废弃了(不要尝试使用它)。
但是,可以使用 AppArmor 并为要阻止的应用程序创建配置文件来阻止应用程序访问网络。请注意,我不知道有任何“用户友好”的 GUI 可用于在 Ubuntu 上配置 AppArmor - 它严格来说是一个文本编辑器和命令行操作,因此如果您是 Linux 新手,您可能希望避免这种情况。
这里是 AppArmor 的 Ubuntu 社区页面,可帮助您入门。
这里是您想要在个人资料中使用的规则。
答案3
你可以使用网络命名空间来实现这一点。例如:
sudo ip netns add empty
sudo ip netns exec empty sudo -u "$USER" firefox
…将以当前用户身份启动 Firefox,但没有任何网络访问权限。这是因为所有命名空间都是空的,这意味着默认情况下没有为其分配网络接口。
这实际上就是 Firejail 为您做的事情。