防火墙访问策略规则集,第1部分

防火墙访问策略规则集,第1部分

作者:vadim@fwbuilder.org
http://www.fwbuilder.org

本文将继续关于Firewall Builder的一系列文章,这是一个图形化的防火墙配置和管理工具,它支持许多开源防火墙平台以及Cisco IOS访问列表和Cisco ASA(PIX)。 防火墙生成器早期在此站点上引入, 使用 防火墙生成器入门,在防火墙生成器使用内置版本控制,在防火墙生成器使用内置策略安装程序在防火墙生成器使用防火墙对象

本文介绍了Firewall Builder中策略或访问控制规则集的关键原则 。 我计划在本系列的下一篇文章中演示策略规则的示例以及它们如何转换为iptables,pf和Cisco IOS和PIX配置

有关Firewall Builder,预构建的二进制包和源代码的更多信息,请参见项目网站http://www.fwbuilder.org/上的文档 。 “ Firewall Builder用户指南”中提供了许多iptables,pf和其他规则的示例 。 关注Firewall Builder项目博客 ,了解有关使用Firewall Builder的所有方面的公告和文章。

防火墙构建器所基于的基本原则之一是它不旨在支持一个特定的防火墙平台。 目标是能够从GUI中的相同表示形式生成许多不同防火墙的配置。 为此,Firewall Builder可以使用一个防火墙的抽象高级模型,其中包含了所有目标防火墙中的功能。 换句话说,防火墙生成器不是另一个iptables GUI或PF GUI或PIX GUI。 防火墙构建器与防火墙工作,既不是其中之一,而是同时它们都是组合的。 它在所有目标平台中都有有用的功能。 如果某些目标防火墙不支持其实现的功能,则会尝试将其模拟(如果可能),使其看起来像目标实际上支持它。

目标防火墙有时在操作的基本原则上有所不同。 这可以使多厂商环境中的管理策略具有挑战性,因为管理员必须在从一个平台切换到另一个平台的同时将其习惯打破。 这不可避免地导致他们写的配置中的人为错误,从而导致网络中断。 例如,由fwbuilder进程规则自上而下支持的大多数平台,第一个匹配规则做出决定和停止处理。 但是,默认情况下PF是相反的,每个匹配规则不会停止处理,最后一个做出最终决定。 没有“正确”的做法,两种方法都会做正确的事情,只要配置了解防火墙是如何工作的。 但是,如果管理员使用某种方法,则在管理不同的防火墙时很难来回切换。 类似差异的另一个例子是访问控制和nat规则对数据包工作的顺序。 fwbuilder支持的大多数防火墙首先做nat,使得访问控制规则“查看”数据包中的翻译地址。 另一方面,PIX以相反的顺序执行,访问控制规则在nat之前对数据包进行处理。 这意味着PIX上的访问列表应该以与用于Linux的iptables规则或OpenBSD防火墙的pf规则不同的方式编写。

由于防火墙构建器与抽象防火墙配合使用,所有这些差异消失,管理员始终看到一致的模型,无论选定的目标防火墙平台如何。 对于PIX,程序可以使其看起来像访问控制规则之后完成NAT(但这是可选的)。 对于PF,程序始终使用PF选项将其切换到非默认的“第一匹配”行为。 最后,该程序负责将其呈现给用户的防火墙模型转换为实际目标防火墙的配置。

也就是说,本文中描述的策略规则对于曾与Firewall-1,PIX,iptables,PF等进行过工作的任何人都将非常熟悉。 这些规则只是在所有这些防火墙中发现的想法和功能的泛化。 GUI帮助管理员创建和管理规则集和策略编译器,然后将其转换为所选目标防火墙平台的配置语言。

防火墙访问策略主要由一组规则组成。 通过将其参数与策略中的规则进行比较,分别从上到下分析数据包。 与数据包匹配的第一条规则将其应用于数据包的操作

每个规则包括用于与数据包进行比较的一组标准参数或规则元素 。 规则元素包括“源”,“目的地”,“服务”,“接口”,“方向”和“时间”。 例如,如果进入防火墙的数据包的源地址与规则的字段中的对象相匹配,则其目标地址与目标中的对象匹配,其协议和端口号与服务中通过的接口的对象相匹配匹配Interface字段,其方向与Direction中指定的方向匹配,并且与Time匹配,则防火墙将采取相应规则的Action字段中指定的操作 。 当然,一个带有“Any”或“All”的字段将匹配该字段的所有数据包。

例如,在上面的屏幕截图中,规则#0是“反欺骗”,它拒绝所有来自外部接口的数据包,源地址声称是防火墙本身或保护的内部网络。 该规则除了源地址外,还使用接口和方向匹配。 规则#2表示允许使用ssh从内部网络(对象网络192.168.1.0 )到防火墙本身(对象防火墙 )的连接(操作接受 )。 “全部捕获”规则#6会拒绝所有未匹配的数据包。 屏幕截图中的访问策略被构建为仅允许特定的服务并拒绝所有其他内容,这是一个很好的做法。

访问策略规则表示访问控制,因为它们定义哪些数据包将被允许,哪些将被拒绝。 访问策略规则对数据包的源和目标地址和协议参数进行操作。 除非特定的接口或方向或接口集合被分配给规则,否则这些规则无论数据包的接口和方向如何都工作。

来源和目的地

目标字段允许您根据源和目标IP地址将数据包与规则进行匹配。

任一字段都可以设置为“any”,这意味着该数据包将匹配该字段。 或者,您可以将字段设置为特定的IPv4地址(地址对象),IPv6地址(地址IPv6对象),与主机(主机对象)的所有接口相关联的IP地址或地址,IP地址范围(地址范围对象),特定子网(网络对象)中的所有地址,配置为给定主机名(DNS名称对象)的DNS“A”记录的地址或上述任何一个的一组。 您也可以在两个字段中放置多个对象。 这些对象类型已经在本站发布的文章中介绍, 这里这里这里这里这里 。 您可以在“ Firewall Builder用户指南”中的策略和NAT规则中找到所有对象类型及其用法的详细描述,您可以从我们的网站http://www.fwbuilder.org下载。 我们拥有PDFHTML版本。

此外,您可以通过将对象拖动到一个字段来“否定”对象,然后从右键单击菜单中选择“否定”。 在以下截图中,RFC 1918地址范围对象已被否定,因此该规则匹配属于私有地址空间的任何目标地址。

目的地匹配任何不是 RFC 1918地址的IP

服务

服务字段也用于将数据包与规则进行匹配。 使用服务对象来指定哪些服务应该匹配。 服务对象类型已经在该站点的一系列文章中讨论: IP服务TCP或UDP服务ICMP或ICMP6服务定制服务

与源和目标字段一样,您可以通过将对象拖动到一个字段,然后从右键单击菜单中选择“否定”来“否定”对象。

接口

默认情况下,无论目标平台如何,Firewall Builder中创建的所有规则都会影响所有防火墙接口。 但是,有时您只想将规则分配给特定接口或一组接口。 要填充此字段,请从规则集所属的防火墙对象中拖动一个接口对象。

如果您还想为规则分配“方向”,请使用下一个字段。

此字段仅适用于防火墙接口,而不适用于主机接口。

方向

规则的“方向”是针对防火墙机器定义的,而不是其后面的网络。 例如,通过防火墙离开内部网络的数据包在防火墙的内部接口被认为是“入站”,在其外部接口上被认为是“出站”。 同样,来自互联网的数据包在防火墙的外部接口上“入站”,其内部接口“出站”。 下图说明了进入或退出防火墙界面的数据包的方向:

行动

Action是对源,目标,服务,接口,方向和时间字段匹配的规则执行的操作。

策略规则操作可以是以下列出的选项之一。 并非所有防火墙都支持所有选项,但GUI只允许对指定的防火墙目标有效的选项。 此外,相同的操作可能在不同的平台上具有不同的名称。

一些操作可以有参数。 要设置操作的参数,首先选择该操作,然后双击该图标。 (您也可以右键单击并选择参数 。)出现参数对话框:

  • 接受:

    允许数据包通过防火墙。 没有后续规则被应用。 此操作没有参数。

  • 拒绝:

    静默地丢包。 没有后续规则被应用。 此操作没有参数。

  • 拒绝:

    数据包被丢弃,并将适当的消息发送回发送方。 没有后续规则被应用。 此操作具有一个参数,可让您指定防火墙对数据包的反应。 参数选项包括TCP RST和多个ICMP消息。

  • 会计/计数:

    对与规则匹配的数据包进行计数,但不对数据包做出任何决定。 即使数据包匹配,检查过程继续下面的其他规则。 此操作具有用于指定计费的规则名称的参数。

  • 队列/管道:

    将数据包传递给用户空间进程进行检查。 它被翻译成为QUEUE为iptables和“转移”ipfw。 此操作仅由iptables和ipfw的编译器支持。 此操作没有参数。

  • 标签/标记:

    将标签与数据包相关联。 可以使用服务对象TagService检查标签。 此操作将使用相应的--set-mark参数转换为MARK目标,并可选地使用带有用于iptables的CONNMARK -save-mark目标的规则。 如果使用激活CONNMARK目标的选项,编译器还会在策略的最上部添加一条规则来恢复该标记。 规则被放置在“mangle”表的INPUT,OUTPUT和FORWARD链中,这确保DNAT在mangle表中的规则看到数据包之前发生。 mangle表中的PREROUTING链在NAT表中的PREROUTING链之前执行,因此将标记规则放在PREROUTING链中会使它们在DNAT之前被触发。 mangle表的POSTROUTING链以及其FORWARD和OUTPUT链在NAT表的相应链之前工作。 在所有情况下,目标是确保DNAT规则处理该数据包,然后SNAT规则处理它,过滤和标记规则。

    对于PF,这个动作被翻译成标签。 仅由iptables和PF的编译器支持。 此操作的参数允许您指定要应用于匹配数据包的TagService服务对象。

  • 分类:

    允许防火墙为与规则匹配的数据包定义QoS类。 它被转换为iptables的CLASSIFY,参数--set-class。 对于PF,它被翻译成“队列”。 ipfw的编译器可以使用“管道”,“队列”或“转移”,具体取决于GUI中如何配置操作。 此操作仅由iptables,PF和ipfw的编译器支持。 此操作具有一个参数,可以指定一个Classify字符串。

  • 自定义:

    允许您指定要用于替代操作的任意代码。 由iptables,ipf和ipfw的编译器支持。 一个参数可以指定字符串。

  • 分支/链/锚:

    用于分支到不同的规则集。 它适用于提供合适语法的目标平台,如果分支不能对数据包做出最终决定,则允许控制返回到较高级别的规则集。 对于iptables,此操作将转换为用户定义的链。 链的名称是由管理员选择的分支的名称。 对于PF,此操作将转换为与分支规则集名称相同的锚点。 此操作仅由iptables和PF的编译器支持。 一个参数可以指定要分支的其他规则集。

  • 路由:

    使防火墙路由通过指定的接口或网关与数据包相匹配。 此操作将转换为RTETE目标,为iptables和路由选项PF和ipfilter。 PF和ipfilter的编译器支持“fastroute”,“route-to”,“reply-to”和“dup-to”选项。 参数允许您更改入站和出站接口,并通过指定的网关路由数据包。 您还可以告诉防火墙在匹配后继续检查数据包,并且可以让防火墙对数据包的副本进行更改,同时允许原始数据包正常进行。

  • 继续:

    基本上是一个空的动作。 当您想要为匹配分配一个选项(例如日志记录)时可以使用,但在该规则中不采取其他操作。 此操作没有参数。

时间

时间”字段允许您将匹配限制到特定的时间间隔。 目前只有iptables目标的防火墙平台支持时间限制作为策略规则的一部分。

选项

选项字段允许您指定与规则匹配的数据包的某些选项。 几乎所有的平台都有与日志记录有关的选项,一些平台有更广泛的选择。 单击选项”对话框中的“ 帮助 ”以获取平台特定的帮助。

如果特定规则的选项已从其默认值更改为图标 出现在该规则的选项字段中。 请记住,并不是所有的规则都有相同的默认选项。 例如,默认情况下, 拒绝规则是无状态的,因为没有理由在不允许的连接上保持状态,并且不会有回复或其他数据包匹配状态。 因此,如果您打开拒绝规则的状态,您将看到图标。

接受规则具有相反的行为。 默认情况下,状态保留为接受规则,因此状态为on时不会显示图标。 如果您关闭状态,换句话说,如果您更改该规则的行为以使其与默认值不同,则会显示该图标。

使用多个策略规则集

Firewall Builder中创建的每个防火墙对象都有一个策略规则设置为开始。 对于许多防火墙,这是您需要的。 但是,使用防火墙生成器,您可以创建多个访问策略规则集,如果平台支持它,则在它们之间进行分支。 这可以帮助您模块化您的策略。

在这里,我们有三个策略规则集(Policy,Policy_2和mgmt)的防火墙对象“fw”

要创建其他规则集,请右键单击树中的防火墙对象,然后选择添加策略规则集

所有策略规则集都具有可配置参数。 要查看策略规则集的参数,请在树中双击它,以在编辑器中打开它。

此对话框具有名称IPv4 / IPv6设置顶部规则集复选框。 对于iptables防火墙 ,还有一对单选按钮,指示该策略是否应该影响到filter + mangle表或只是mangle表。

IPv4 / IPv6下拉菜单可让您选择是否仅为IPv4 (忽略任何与IPv6相关的规则),仅IPv6 (忽略任何与IPv4相关的规则)或IPv4和IPv6两者都编译规则集。 如果选择IPv4和IPv6两者,则编译器“执行正确的操作”,并将每个规则放入配置的正确部分。

只有一个规则集可以被标记为“顶部”规则集 。 “顶部”规则集是分配给设备的主要规则集。 每种类型只有一个规则集,可以标记为“顶”。 始终使用“顶”规则集(如果有规则)。 其他规则集仅在它们是分支的目标时才使用。 (在Firewall Builder 3.X中,只有策略规则集可以分支。)

  • iptables :在“顶”规则集中定义的规则将进入内置链INPUT,OUTPUT,FORWARD 。 在不检查该复选框的规则集中定义的规则转换为与规则集具有相同名称的用户定义的链。

  • PF :在规则集中定义的规则与顶部规则集复选框关闭进入具有规则集名称的锚点。

  • Cisco IOS访问列表 :如果顶部规则集复选框已关闭,则规则将进入访问列表,其名称前缀为规则集的名称; 该访问列表将不会通过“ip access-group”命令分配给接口。 具有复选框顶部规则集的规则集生成具有缩写名称和方向缩写名称(“in”或“out”)的ACL。 只有这些列表被分配给接口。

您可以使用“Branch / Chain / Anchor”(根据平台)在规则集之间进行分割处理。 在下一个屏幕截图中,规则将导致“fw-mgmt”主机的数据包传递给“mgmt”规则集。

指向“mgmt”规则集的数据包离开主规则集,并开始与“mgmt”规则集中的规则匹配。 如果它在“mgmt”规则集中匹配,则执行该操作。 如果在“mgmt”规则集中不匹配,则处理将传回给调用规则集。

下一篇文章将介绍策略规则的几个示例,并演示生成的iptables,pf和Cisco配置。

参考文献:

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏