在防火墙构建器中使用ICMP和ICMP6服务对象

在防火墙生成器中使用ICMP和ICMP6服务对象

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

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

有关Firewall Builder,预构建的二进制包和源代码,文档和Firewall Builder Cookbook的更多信息 ,请访问项目网站www.fwbuilder.org 。 观看项目博客 ,了解使用Firewall Builder的所有方面的公告和文章。

在防火墙生成器中使用ICMP和ICMP6服务对象

ICMP服务对象是ICMP协议的一般化表示形式。 ICMP数据包通常用于传达由IP层或更高层协议(TCP或UDP)执行的错误消息。 ICMP也可以用作简单的查询协议。

Firewall Builder具有IPv4和IPv6两者的服务对象。 用于IPv6的ICMP服务对象称为ICMP6服务。 Firewall Builder附带的标准ICMP服务对象显示在“ 标准对象”库中的Services / ICMP分支中。 用户定义的ICMP和ICMP6服务对象将出现在同一个服务/ ICMP分支中的库用户中。

标准中的服务对象不可编辑。 但是,您可以将服务对象的副本复制并粘贴到用户树中并在其中进行编辑,也可以右键单击“用户”树中的ICMP文件夹,然后选择“新建ICMP服务”以从头创建服务对象。

作为防火墙管理员,您需要了解ICMP的性质和目的,以便正确配置防火墙以阻止不必要的ICMP消息,同时允许有用的ICMP消息。

ICMP数据包有两个头域,区分特定的ICMP消息:类型和代码字段。 IANA维护许多不同类型的ICMP消息的官方注册表。 有关IPv4 ICMP类型和代码的ICMP类型编号(http://www.iana.org/assignments/icmp-parameters)和Internet控制消息协议版本6(ICMPv6)类型号 (http://www.iana.org/ assignment / icmpv6-parameters),用于IPv6 ICMP类型和代码。

在ICMP或ICMP6对象中允许使用类型代码值的任何组合。 例如,以下两个屏幕截图说明了已知ping协议的请求包的ICMP和ICMP6对象的定义。 类型代码对于IPv4和IPv6变体是不同的,尽管代码在两者中都等于0:

ICMP和ICMP6都允许在类型或代码字段中使用“any”值。 例如,这可以用于构建一个对象,以匹配一系列具有相同类型但任何代码的ICMP消息:

IPv4和IPv6 ICMP服务对话框都提供以下控件:

  • 名称:这是对象的名称。
  • ICMP类型和代码:
    • 类型:ICMP消息类型。 此控件由一个数字选择器组成,可以指定消息类型。 要指定“any”类型,请将控件设置为any。
    • 代码:ICMP消息代码。 该控件由一个数字选择器组成,可以指定消息代码。 要指定“任何”代码,请将控件设置为任何。
  • 评论:这是一个用于评论的自由式文本字段。

在规则中使用ICMP和ICMP6服务对象

考虑以下规则,我们使用两个ICMP对象,一个用于IPv4,另一个用于IPv6:

如果将此规则设置为所属的规则配置为组合的IPv4和IPv6,则策略编译器将在每个单独的路径中选择与地址族匹配的ICMP服务,一个用于IPv4,然后是IPv6。 这是我们得到的iptables:

# ================ IPv4 

# Rule 0 (global)
#
$IPTABLES -A FORWARD -i + -p icmp -m icmp --icmp-type 8/0 \
-m state --state NEW -j ACCEPT

# ================ IPv6

# Rule 0 (global)
#
$IP6TABLES -A FORWARD -i + -p ipv6-icmp -m icmp6 --icmpv6-type 128/0 \
-m state --state NEW -j ACCEPT

这里是生成PF 4.x配置:

# Rule 0 (global) 
#
pass in quick inet proto icmp from any to any icmp-type 8 code 0

# Rule 0 (global)
#
pass in quick inet6 proto icmp6 from any to any
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

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

支付宝扫一扫打赏

微信扫一扫打赏