跳转防火墙规则集

时间:2014-05-26 15:13:11

标签: firewall iptables

我对基于软件的防火墙有一般性问题。 具体来说,我想知道是否还有其他防火墙而不是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。

您知道是否有其他防火墙提供类似的功能?

3 个答案:

答案 0 :(得分:1)

iptables的另一个主要竞争对手是pf,它具有与iptables相似的功能。

答案 1 :(得分:1)

Linux 防火墙围绕 Netfilter 构建;内核的网络数据包处理框架,由几个执行特定任务的内核模块组成:

  1. FILTER模块(默认情况下始终加载)主要允许我们根据特定匹配条件接受或删除IP数据包。

  2. NAT模块集允许我们执行网络地址转换(SNAT,DNAT,MASQUERADE)。

  3. MANGLE模块允许我们改变某些IP数据包字段(TOS,TTL)

  4. 用户使用 iptables 配置Netfilter框架(“内核模式”)以满足其防火墙需求,这是一个从命令行运行的“用户空间”应用程序。使用iptables,我们定义了一些规则,指示Linux内核在进入,通过或离开我们的Linux盒时如何处理IP数据包。

    所有基于Linux的防火墙都基于Netfilter,大多数都使用iptables作为控制Netfilter的方法。

    不同的技术使用类似的策略;即在BSD(OpenBSD)中,内核模块称为PF(包过滤器),用于控制 PF 的“用户空间”应用程序称为 pfctl

    根据您使用的技术,您拥有一种或另一种;两个系统基本相同,当然它们都可以执行你提到的跳转。请记住,Linux或BSD中的防火墙只是由相应的用户空间应用程序加载的一组规则,用于设置相应的网络流量控制内核引擎的行为。

    还要考虑当你跳进用户定义的链时,你也可以“返回”

    enter image description here

答案 2 :(得分:0)

我对其他数据包过滤系统进行了一些研究,我发现了以下内容:

  • OpenBSD的pf可以使用条件锚实现某种控制:

    示例:仅在fxp0 inet proto udp上锚定udp

  • OpenFlow开关通过使用GOTO目标提供直接跳转
  • NetBSD的ipfw提供了skipto动作

这些功能中的每一个都允许在数据包分类期间修改控制流,并可用于实现JUMP语义。