我对 还很陌生iptables
。下图显示了根据我目前的理解对链进行评估的顺序。如果这种印象是错误的,请告诉我。
我的问题是,当我这样添加自定义链时,它在下图中的什么位置?
sudo iptables -N MYCHAIN
我知道该命令会在过滤表中创建一个新链,但我不确定这意味着什么。 的规则是在MYCHAIN
其他链的规则之前还是之后进行评估?
答案1
创建 CHAIN 后,您需要添加规则以将流量传递给它。例如
iptables -A INPUT -j MYCHAIN
现在,到达 INPUT 末尾的所有流量都将转到 MYCHAIN。然后,如果流量在 MYCHAIN 中不满足任何条件(或满足但带有 -j RETURN 操作),则继续从它到达 MYCHAIN 的点流动。因此,您的链可以位于图表上的任何位置。
答案2
当内置链中的规则跳转到用户定义链时,将遍历该链。当用户定义链结束时,您将跳回到遵循让您跳转到自定义规则的规则的规则。如果数据包与具有终止目标(例如接受)的用户定义链中的规则匹配,则处理结束。
不确定我的措辞是否足够清楚,但就是这样。