我input了:
netstat -atlpvn
并注意到像gedit和python这样的应用程序在networking外部有外部地址(networking是连接到互联网的单个计算机)。
有没有办法限制哪些应用程序允许传出? 例如,我只想要Firefox的传出连接?
谢谢
据我所知,按应用程序逐一限制互联网连接的唯一方法是通过SELinuxfunction,它涉及给应用程序提供必须具有Internet连接的附加权限。 我怀疑赋予Firefox额外的权限将有助于安全性,而试图访问Internet的应用程序可以通过Firefox或wget或其他“合法”应用程序来实现。 此外,对于脚本,我认为你必须把解释器的function(例如/usr/bin/python )不以任何有用的方式进行区分。
您可以在逐个用户的基础上限制Internet连接; 请参阅绑定软件到不同的networking接口和双networking连接的例子。 或者,您可以在轻量级虚拟环境(如LXC)中运行您不想授予Internet连接性的应用程序。
您可以在输出链匹配进程名称中使用iptables规则和–cmd-owner选项。 就像是:
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -m owner --cmd-owner "firefox-bin" -j ACCEPT iptables -A OUTPUT -m owner --cmd-owner "ssh" -j ACCEPT iptables -A OUTPUT -j DENY
由此你允许来自firefox-bin,SSH和build立连接的输出stream量。
您可能需要像LeopardFlower这样的应用程序,它允许每个应用程序防火墙。 除此之外,创build一个单独的帐户,并启动它下面的Firefox,并使用像ipatbles这样的规则-A OUTPUT -m owner –uid-owner 1005 -j DROP阻止该用户的所有stream量。