我会寻找一种方法来运行应用程序,阻止它访问互联网,可能不需要安装特定程序来做到这一点。我找到的大多数答案都提到这帖子,所以我尝试了这个解决方案。简而言之,我创建了一个无网络组(与相关你命令)并使用此组启动应用程序。但这并不完全有效,可能是因为该帖子是 2009 年的,iptables 中的某些内容已更改(我使用的是 Ubuntu 14.04)。例如,如果我运行ni "ping google.com"
输出是ping: sendmsg: Operation not permitted
,则解决方案很有效。但使用其他程序,如 Firefox 或 wget(例如ni firefox
),互联网连接仍然有效。我该如何解决?
答案1
您可以使用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