如何阻止应用程序的Internet访问

我正在寻找一种运行应用程序的方法来阻止它访问互联网,可能没有安装特定的程序来执行此操作。 我发现的大部分答案都是关于这篇文章,所以我尝试了这个解决方案。 简而言之,我创建了一个无网络组(使用相关的ni命令),然后使用该组启动应用程序。 但这并不完全有效,可能是因为这篇文章是从2009年开始的,而iptables中的一些内容也发生了变化(我使用的是Ubuntu 14.04)。 例如,如果我运行ni "ping google.com"则输出为ping: sendmsg: Operation not permitted ,因此解决方案效果很好。 但是对于其他程序,如Firefox或wget(例如ni firefox ),互联网连接仍然有效。 我怎么解决?

您可以使用apparmor拒绝某些应用程序的网络流量。 首先,您必须安装apparmorapparmor-utils ..

 sudo apt-get install apparmor* 

之后,您可以为您的应用程序生成配置文件…

 sudo aa-genprof /usr/bin/google-chrome 

下一步是将配置文件中的Networking部件更改为:

 sudo nano /etc/apparmor.d/usr.bin.chromium-browser audit deny network, audit deny network inet stream, deny network inet6 stream, deny @{PROC}/[0-9]*/net/if_inet6 r, deny @{PROC}/[0-9]*/net/ipv6_route r, deny capability net_raw, 

接下来,使用apparmor_parser检查配置并重新加载配置

 sudo apparmor_parser -r /etc/apparmor.d/usr.bin.chromium-browser 

complain改变模式到enforce此应用程序的apparmor

 sudo aa-complain /etc/apparmor.d/usr.bin.chromium-browser 

您可以在这里 , 这里和这里找到更多手册