我对基于软件的防火墙有一般性问题。 具体来说,我想知道是否还有其他防火墙而不是iptables 它允许规则规则集内的跳转。
在iptables中,用户可以指定"跳跃"当规则在数据包上匹配时,通过定位特定链来设置规则内部。
例如,在以下规则集
中(1) iptables -A INPUT --src 1.2.3.4 -j ACCEPT
(2) iptables -A INPUT --src 1.2.3.5 -j ACCEPT
(3) iptables -A INPUT --src 1.2.3.6 -j ACCEPT
(4) iptables -A INPUT --src 8.8.8.8 -j NEXT_CHAIN
(5) iptables -A INPUT --src 2.2.2.2 -j ACCEPT
(6) iptables -A INPUT --src 2.2.2.3 -j ACCEPT
<NEXT_CHAIN starts here ...>
规则(4)将数据包处理重定向到名为&#34; NEXT_CHAIN&#34;的另一个规则集。 换句话说,跳过规则(5)和(6)(在某种意义上,如果NEXT_CHAIN中存在匹配)。 我认为这也可以在iptables&#39;前身ipchains。
您知道是否有其他防火墙提供类似的功能?
答案 0 :(得分:1)
iptables的另一个主要竞争对手是pf,它具有与iptables相似的功能。
答案 1 :(得分:1)
Linux 防火墙围绕 Netfilter 构建;内核的网络数据包处理框架,由几个执行特定任务的内核模块组成:
FILTER模块(默认情况下始终加载)主要允许我们根据特定匹配条件接受或删除IP数据包。
NAT模块集允许我们执行网络地址转换(SNAT,DNAT,MASQUERADE)。
MANGLE模块允许我们改变某些IP数据包字段(TOS,TTL)
用户使用 iptables 配置Netfilter框架(“内核模式”)以满足其防火墙需求,这是一个从命令行运行的“用户空间”应用程序。使用iptables,我们定义了一些规则,指示Linux内核在进入,通过或离开我们的Linux盒时如何处理IP数据包。
所有基于Linux的防火墙都基于Netfilter,大多数都使用iptables作为控制Netfilter的方法。
不同的技术使用类似的策略;即在BSD(OpenBSD)中,内核模块称为PF(包过滤器),用于控制 PF 的“用户空间”应用程序称为 pfctl
根据您使用的技术,您拥有一种或另一种;两个系统基本相同,当然它们都可以执行你提到的跳转。请记住,Linux或BSD中的防火墙只是由相应的用户空间应用程序加载的一组规则,用于设置相应的网络流量控制内核引擎的行为。
还要考虑当你跳进用户定义的链时,你也可以“返回”
答案 2 :(得分:0)
我对其他数据包过滤系统进行了一些研究,我发现了以下内容:
OpenBSD的pf可以使用条件锚实现某种控制:
示例:仅在fxp0 inet proto udp上锚定udp
这些功能中的每一个都允许在数据包分类期间修改控制流,并可用于实现JUMP语义。