在Firewall Builder中使用网络,地址范围对象和地址对象组
作者:vadim@fwbuilder.org http://www.fwbuilder.org |
本文继续关于Fireall Builder的一系列文章,一个支持许多开源防火墙平台以及Cisco IOS访问列表和Cisco ASA(PIX)的图形化防火墙配置和管理工具。 防火墙生成器早期在此站点上引入, 使用 防火墙生成器入门,在防火墙生成器中使用内置版本控制,在防火墙生成器中使用内置策略安装程序 , 在防火墙生成器中使用防火墙对象 。 本文演示如何使用防火墙构建器中的对象的 网络 , 地址范围和组 。
有关Firewall Builder,预构建的二进制包和源代码,文档和Firewall Builder Cookbook的更多信息 ,请访问项目网站www.fwbuilder.org 。 观看项目博客 ,了解使用Firewall Builder的所有方面的公告和文章。
网络,地址范围对象和地址组对象
IPv4网络对象
网络对象描述IP网络或子网。 使用主菜单“网络对象/新建网络”项来创建此类型的对象。 网络对象的对话框提供以下输入字段:
- 名称 - 网络对象名称
- 地址 - 这是网络的IPv4地址。
- 网络掩码 - 网络掩码与地址组合,可以清除子网。 您可以在这里输入掩码的字符串八位字节表示或其位长度,但是程序总是将其转换为八位字节表示。 网络对象中的网络掩码始终以“自然”的方式输入,例如“255.255.255.0”,即使该对象将用于构建需要反向“位掩码”表示的Cisco IOS访问列表(例如“ 0.0.0.255“为上面的网络掩码)。 Firewall Builder策略编译器自动处理转换。
- 评论 - 这是一个用于评论的自由格式的文本字段。
我们尝试使用上面截图所示的Network对象,为不同目标平台编译的防火墙策略规则。
这是我们得到的iptables:
$IPTABLES -A FORWARD -p tcp -m tcp -s 172.16.22.0/24 --dport 80 -m state --state NEW -j ACCEPT
这是PF产生的输出:
pass in quick inet proto tcp from 172.16.22.0/24 to any port 80 keep state
pass out quick inet proto tcp from 172.16.22.0/24 to any port 80 keep state
以下是将规则编译为Cisco IOS访问列表(这是生成的访问列表之一)时的输出情况:
ip access-list extended outside_out
permit tcp 172.16.22.0 0.0.0.255 any eq 80
exit
当将规则编译到Cisco ASA(PIX)配置中时,我们将获得这些信息。 注意编译器如何使用网络掩码255.255.255.0作为PIX,而对于IOS则将其转换为0.0.0.255。 另外, 内部的接口与网络区域172.16.0.0/12配合 ,它与规则的源元素中使用的网络对象进行匹配,因为该编译器将规则只放到附加到接口内部的访问列表中。
access-list inside_acl_in permit tcp 172.16.22.0 255.255.255.0 any eq 80
access-group inside_acl_in in interface inside
IPv6网络对象
网络对象描述IPv6网络或子网。 此对象非常类似于IPv4网络对象,除了您只能输入一个位长度的网络掩码。 使用主菜单“网络对象/新建网络IPv6”项来创建此类型的对象。
如果我们在策略规则中使用IPv6网络对象,如屏幕截图所示,我们可以看到如下:
这是为iptables生成的命令:
$IP6TABLES -A FORWARD -p tcp -m tcp -s 2001:470:1f0e:162::/64 --dport 80 -m state --state NEW -j ACCEPT
这是我们得到的PF:
pass in quick inet6 proto tcp from 2001:470:1f0e:162::/64 to any port 80 keep state
pass out quick inet6 proto tcp from 2001:470:1f0e:162::/64 to any port 80 keep state
以下是Cisco IOS访问列表的输出(仅显示一个ACL):
ipv6 access-list ipv6_outside_out
permit tcp 2001:470:1f0e:162::/64 any eq 80
exit
interface eth0
ipv6 traffic-filter ipv6_outside_out out
exit
目前,在fwbuilder中没有支持Cisco ASA(PIX)的IPv6。
地址范围对象
地址范围对象描述了IPv4地址的连续范围。 (IPv6不支持任意地址范围。)要创建新的地址范围对象,请使用主菜单“新建对象/新建地址范围” 。 其对话框提供以下输入字段:
- 名称 - 地址范围对象的名称
- 范围开始 - 范围开始的地址
- 范围结束 - 范围结束的地址
- 评论 - 用于评论的自由格式的文本字段
地址范围是包含的,也就是说,起始和结束地址都包含在范围内。
当规则中使用地址范围对象时,防火墙生成器将其替换为等于指定范围的地址列表。 该程序尝试使用不同长度的子网的组合来生成最经济的范围表示。 考虑地址范围对象,如上图截图所示。 此地址范围对象表示192.168.1.100和192.168.1.160 (包括)之间的IP地址。 生成61个iptables命令来表示此范围将是浪费的。 相反,编译器使用不同长度的几个子网的组合,最终结果如下:
$IPTABLES -A FORWARD -s 192.168.1.100/30 -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.1.104/29 -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.1.112/28 -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.1.128/27 -m state --state NEW -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.1.160 -m state --state NEW -j ACCEPT
以下是PF的生成配置如何(这基本上是相同的,除了为简洁起见使用表):
table <tbl.r0.s> { 192.168.1.100/30 , 192.168.1.104/29 , 192.168.1.112/28 , 192.168.1.128/27 , 192.168.1.160 }
pass in quick inet from <tbl.r0.s> to any keep state
只是为了完整性,让我们看看为Cisco IOS访问列表生成的相同规则的配置。 这真的是生成路由器访问列表配置的一个片段,因为激活的ACL被附加到接口,并且由于该示例中的规则与任何接口没有关联,所以它被附加到所有的接口。 这里我们只显示一个生成的ACL:
ip access-list extended inside_in
!
! Rule 0 (global)
!
!
permit ip 192.168.1.100 0.0.0.3 any
permit ip 192.168.1.104 0.0.0.7 any
permit ip 192.168.1.112 0.0.0.15 any
permit ip 192.168.1.128 0.0.0.31 any
permit ip host 192.168.1.160 any
exit
一组可寻址对象
对象组包含主机,网络,地址范围,防火墙和其他可寻址对象组的引用。 使用主菜单“New Obejct / New Obejct Group”来创建这种类型的新对象。 可以使用以下方法将对象添加到组中:
- 使用拖放 - 可将对象从树中拖入组对话框。 树上单击鼠标就会切换到对象,但是鼠标光标指向对象,然后按按钮不会切换,而是允许开始拖放操作。
- 使用弹出菜单 - 您可以使用树和组对话框之间的复制/粘贴操作。 右键单击树中的对象会弹出一个菜单。 在此菜单中选择复制或剪切,然后切换到组对话框,然后在图标字段中单击鼠标右键。 这也会弹出一个弹出菜单,您可以在其中选择粘贴。 这将插入组中对象的引用。
- 使用编辑主菜单 - 就像在弹出菜单的情况下,选择树中的对象,使用编辑/复制对象,然后切换到组对话框,并使用编辑/粘贴对象主菜单。