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