iptables 如何执行规则?

Dav*_*ild 2 firewall iptables csf

我最近在防火墙阻止两台服务器之间的流量方面遇到了一些麻烦,我想检查 iptables 如何处理应用于同一 IP 的多个规则。如果我运行,iptables -L -n | grep 1.2.3.4我会看到这个输出:

ACCEPT    all  --  1.2.3.4      0.0.0.0/0
DROP      all  --  1.2.3.4      0.0.0.0/0
ACCEPT    all  --  0.0.0.0/0            1.2.3.4
DROP      all  --  0.0.0.0/0            1.2.3.4
Run Code Online (Sandbox Code Playgroud)

iptables 将如何处理这些规则?来自 1.2.3.4 的所有流量都会被丢弃吗?

the*_*bit 6

runningiptables -L -n不会为您提供规则可能已定义为条件的接口名称。不同目标看起来相似的规则可能适用于不同的界面,除非它们是 a)匆忙 b)由心不在焉的管理员 c)作为某事的临时解决方法或 d)以上所有

使用iptables -L -v -n来代替。

回答您的问题:数据包命运由第一个匹配规则与终端目标决定(ACCEPT 和 DROP 是此类目标,但还有其他像 RETURN 这样的目标不是终端,因此处理继续)。如果没有这样的规则,则应用链默认策略ACCEPT,默认情况下,可以通过 更改iptables -P <ACCEPT, DROP>

有关详细信息,请参阅这个相当不错的工作流程文档