我想阻止所有传出流量到任何域或子域使用IPTables。看来,-d
选项允许引用域。我通过Google搜索发现了以下内容,表明它可以这样引用:只允许HTTP流量到达特定的域(S)
同样,我们也可以使用上述方法过滤其他端口和协议,例如在tcp端口80上运行的标准web流量。
iptables -I FORWARD 1 -p tcp -d dd-wrt.com --dport 80 -j ACCEPT
iptables -I FORWARD 2 -p tcp --dport 80 -j DROP
它将接受dd-wrt.com的所有http流量,同时阻止发送到其他任何地方的http流量。如果希望允许多个站点,请在删除之前插入其他规则(确保对它们进行正确的排序和编号)。
然而,我想要做的是引用*.domain.com (例如,阻止所有传出流量到*.youtube.com或类似的)。
是否有人知道这是否可能,如果可能,-d
选项在IPTables中支持通配符子域的语法是什么?
发布于 2013-03-08 19:12:23
IPtables中的DNS解析有点滑稽。在运行时,防火墙只对IP地址起作用,而不对域名起作用。为了清楚起见,让我们一步一步地进行这个过程。
iptables -I FORWARD 1 -p tcp -d dd-wrt.com --dport 80 -j ACCEPT
添加规则83.141.4.210
-p tcp -d 83.141.4.210 --dport 80 -j ACCEPT
如果域名返回多个地址(如www.google.com ),则为返回的每个IP地址插入该规则的副本。当然,除非使用--replace
选项,否则多个返回的地址将导致失败。
只有在添加规则时才会进行此查找。因此,如果dd-wrt.com被移动到一个新的主机上,那么您的规则将不再正确工作。您必须删除并重新添加或重新启动防火墙,以使新地址生效。
因此,您可以简单的暗示,意味着您不能使用它来阻止基于域名的一切。您只会阻止IP地址,您可能只是简单地使用一个域名来偶尔检索地址。同样的,外牌也不起作用。主机名*.dd-wrt.com
没有A记录,因此不能转换为IP地址。
完全基于IP地址阻止或拒绝通常最符合您的利益。这样,对于你或你的工作人员来说,在什么应该被阻止(或者允许的)和什么是实际的事情上没有混淆。
https://serverfault.com/questions/486087
复制相似问题