![iptables,默认策略与规则](https://linux22.com/image/596660/iptables%EF%BC%8C%E9%BB%98%E8%AE%A4%E7%AD%96%E7%95%A5%E4%B8%8E%E8%A7%84%E5%88%99.png)
-j DROP
使用默认策略丢弃不匹配的数据包与最后丢弃不匹配的数据包有什么区别吗?
喜欢:
iptables -P INPUT DROP
iptables -A INPUT --dport 80 -j ACCEPT
对比
iptables -A INPUT --dport 80 -j ACCEPT
iptables -A INPUT -j DROP
我之所以关心是因为我无法创建带有日志的链并将其作为默认策略,所以我需要使用第二个示例。
答案1
从技术角度来看,答案是不行。无论如何,数据包都会被丢弃。
但是 Sirex 非常正确,如果在切换表默认规则时忘记了一些重要的东西,可能会有点痛苦。
在使用 IPTables 一段时间后,您可能会找到一种偏好,并在您的环境中围绕它构建系统。
答案2
是的。如果您使用 DROP 策略,然后通过 SSH 连接并刷新表 ( iptables -F
),您将被锁定,因为默认策略不会刷新。
我曾在远程系统上做过这件事。这很痛苦。
(另一个教训是,如果您想暂时摆脱防火墙,请使用service iptables stop
,而不是iptables
-F + service iptables reload
)
不过,默认策略可能更安全,也更易于管理。您不能忘记将其添加到末尾。
答案3
对于像我几个小时前一样需要这部分信息的人来说,这个话题可能还有另一件事。
后一种方式:
iptables -A INPUT --dport 80 -j ACCEPT
iptables -A INPUT -j DROP
不允许您稍后附加规则(因为附加的规则将出现在通用删除规则之后,因此不会产生任何效果),您必须在所需位置插入带有明确声明的规则:
iptables -I INPUT 1 --dport 8080 -j ACCEPT
代替
iptables -A INPUT --dport 80 -j ACCEPT
根据您的需要,它可能会通过要求您或稍后添加的规则真正遵循现有规则而不是像往常一样附加它来稍微提高安全性。
我昨天花了二十分钟检查为什么我新安装的服务没有响应,尽管一切正常运转,但我获得了这个知识。
答案4
默认策略非常有限,但可以作为良好的后盾,确保未处理的数据包得到适当的处理。
如果您需要(想要)记录这些数据包,则需要最终规则。这可以是记录并应用策略的链。您也可以只记录并让策略处理它。
考虑这些政策方法和最终的政策规则。
- 使用并接受策略,并用所需策略作为最终规则进行覆盖。当您在远程位置管理主机时,这可以保护您。如果您放弃规则,您只剩下第二道防线,例如 hosts.allow。如果您放弃最终规则,您最终将处于几乎开放或完全开放的配置中。
- 设置所需的策略并用最终策略规则对其进行支持。当您对主机具有物理或控制台访问权限时,这会更安全。如果您放弃规则,您将失去对所有服务的访问权限,除非策略为“接受”。如果您放弃最终规则,您仍然受到保护。