在防火墙构建器中使用DNS名称对象

在防火墙生成器中使用DNS名称对象

作者:vadim@fwbuilder.org
Firewall Builder项目页面:http://www.fwbuilder.org

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

本文演示如何构建匹配DNS A记录的防火墙规则。

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

DNS名称

DNS名称对象表示DNS“A”或“AAAA”记录。 该对象在编译或运行时解析为IP地址。 对象解析的地址(IPv4或IPv6)取决于它所使用的规则集的地址族或族。也就是说,如果该对象在作为IPv4规则集一部分的规则中使用,则编译器将尝试解析该对象使用DNS查询“A”记录,但如果该对象在作为IPv6规则集一部分的规则中使用,则编译器将运行“AAAA”查询。 如果使用对象的规则集是混合类型(IPv4 + IPv6),则编译器将使用不同的查询来解析相同的对象两次。

DNS名称对象对话框如下所示:

  • 名称:DNS名称对象的名称
  • DNS记录:要解决的DNS记录。
  • 编译时间/运行时间:在创建防火墙脚本(编译时间)或在防火墙(运行时)上运行脚本时,指示是否要解析IP地址。
  • 评论:用于评论的自由格式的文本字段

DNS记录参数是要解析的A或AAAA记录的名称。 在这个例子中,它是Firewall Builder项目网站“www.fwbuilder.org”的主机名。 请注意,该项目的IPv6 Web服务器可以访问为“ipv6.fwbuilder.org”,因此我们将需要第二个DNS名称对象进行IPv6示例。 编译时间和运行时间选项与地址表对象中的含义相同,即编译时DNS名称对象由策略编译器转换为IP地址,而运行时DNS名称对象不是。 在后一种情况下,编译器会将DNS记录名称放入生成的脚本或配置文件中,并将其保留到防火墙,以在脚本激活时解决此问题。

所有目标防火墙平台都支持编译时间和运行DNS名称对象。

我们来看看下面截图中显示的简单规则如何编译iptables和PF,无论是编译时还是运行时使用DNS Name对象。

DNS名称编译时间,iptables编译输出

# Rule 0 (global)
# 
$IPTABLES -A FORWARD  -d 70.85.175.170  -m state --state NEW  -j ACCEPT  

在这个微不足道的情况下,编译器简单地将“www.fwbuilder.org”解析为IP地址,并在iptables命令中使用它。 但是,如果策略规则在配置为仅IPv6规则集的规则集中,则该规则根本不会生成任何iptables命令,因为没有名称为“www.fwbuilder.org”的AAAA DNS记录。 如果规则集既是IPv4 + IPv6,那么规则只能在IPv4部分中生成iptables命令。 相反的情况也是如此,具有记录“ipv6.fwbuilder.org”的DNS名称对象将仅在IPv6规则集中使用时才产生iptables命令,因为只有具有此名称的AAAA记录。

DNS名称编译时间,PF编译输出

# Rule  0 (global)
# 
pass in   quick inet  from any  to 70.85.175.170 keep state

在PF的情况下也是如此:编译器简单地解析了名称“www.fwbuilder.org”,并将地址放在生成的pf.conf文件中。 由于此名称无法解析为任何IPv6地址,所以IPv6 PF策略对于此规则将不会有任何行。 DNS记录“ipv6.fwbuilder.org”仅解析为IPv6地址,因此具有此记录的DNS名称对象只会为IPv6而不是IPv4生成pf.conf配置。

DNS名称运行时,iptables编译输出

# Rule 0 (global)
# 
$IPTABLES -A FORWARD  -d www.fwbuilder.org -m state --state NEW  -j ACCEPT

这里编译器使用字面上输入DNS记录参数的行,将其保留在防火墙机器上的iptables上,以将该名称解析为IP地址。 在IPv6策略中使用运行时DNS名称对象生成以下iptables命令:

# Rule 0 (global)
# 
$IP6TABLES -A FORWARD  -d ipv6.fwbuilder.org -m state --state NEW  -j ACCEPT 

$ IP6TABLES是在生成的脚本开头定义的shell变量,此变量的值是ip6tables命令行实用程序的完整路径。 ip6tables将尝试将给定的名称解析为IPv6地址,因为它处理IPv6 iptables策略。

DNS名称运行时间,PF编译输出

# Rule  0 (global)
#
pass in   quick inet  from any  to www.fwbuilder.org keep state
pass out  quick inet  from any  to www.fwbuilder.org keep state

运行时DNS名称对象转换为PF配置行,也使用DNS记录的名称,并将其保留为PF,以便在配置加载时将其解析为IP地址。

参考文献:

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

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

支付宝扫一扫打赏

微信扫一扫打赏