教程篇(7.2) 03. 网络地址转换 & FortiGate安全 ❀ Fortinet 网络安全专家 NSE 4
Posted 飞塔老梅子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了教程篇(7.2) 03. 网络地址转换 & FortiGate安全 ❀ Fortinet 网络安全专家 NSE 4相关的知识,希望对你有一定的参考价值。
本节课程将介绍如何配置NAT,并使用NAT对经过FortiGate的流量进行源NAT和目标NAT转换。
这节课,你将学习上图显示的主题。
通过展示理解NAT和PAT工作原理以及可用的NAT配置模式的能力,你将能够很好地在网络中规划NAT的实现。
NAT是一种使NAT设备(如防火墙或路由器)将数据包中的IP地址转换(或映射)到另一个IP地址的方法,通常用于连接目的。如果数据包中的端口信息也进行了转换,则这种转换方法称为PAT。NAT有以下好处:
● 安全:对外部网络隐藏设备的真实地址。
● 防止公共地址耗尽:数百台计算机可以共享相同的公共IPv4地址。
● 私有地址的灵活性:即使ISP改变,地址也可以保持不变。你可以在多个网络中重用私有地址。
NAT分为SNAT和DNAT两种。SNAT是指NAT设备对报文中的源IP地址和源端口进行转换。在DNAT中,NAT设备对目标IP地址和目标端口进行转换。配置FortiGate进行SNAT和DNAT的方法如下:
● 对于SNAT,在匹配的防火墙策略上开启NAT转换。也可以开启中心NAT功能,为VDOM配置中央SNAT规则。
● 对于DNAT,你配置虚拟IP (VIP),然后在匹配的防火墙策略中引用。开启中央NAT功能后,可以配置DNAT的中心规则和VIP对象。
上图的例子展示了NAT最常见的用例:SNAT。FortiGate作为一个NAT设备,将分配给PC的私有IP地址转换为ISP分配的公共地址。PC访问互联网web服务器需要进行私有到公共源地址转换。
NAT64是将IPv6地址转换为IPv4地址的方法,NAT46是将IPv4地址转换为IPv6地址的方法。它们使你能够将IPv6网络与IPv4网络通信,或者反向通信。NAT66由两个IPv6网络之间的地址转换组成。
可以通过防火墙策略NAT方式或中央NAT方式配置NAT。
当采用防火墙策略NAT方式时,每条防火墙策略都需要配置SNAT和DNAT。
当使用中央NAT时,可以通过配置SNAT和DNAT规则来配置每个虚拟域的NAT。SNAT和DNAT设置自动应用于多个防火墙策略,而不是防火墙策略NAT中的每个防火墙策略。
作为最佳实践,在使用中心NAT时,应该配置特定的SNAT和DNAT规则,以便它们只匹配你的配置中所需的防火墙策略。
防火墙策略NAT和中央NAT产生相同的结果;但是,有些部署场景最适合防火墙策略NAT,有些最适合中央NAT。
防火墙策略NAT建议用于NAT IP地址相对较少且每个NAT IP地址都有单独的策略和安全配置文件的部署。对于多个NAT IP地址具有相同策略和安全配置文件的复杂场景,或者在下一代防火墙(NGFW)策略模式下,可能无法在第一个报文中确定合适的策略,建议使用中央NAT。
答案:A
答案:A
干得漂亮!你已经知道NAT了。现在,你将了解防火墙策略NAT。
通过展示这些领域的能力,你将能够配置防火墙策略并应用适当的SNAT和DNAT,并了解如何将其应用于通过FortiGate的流量。
配置防火墙策略SNAT有两种方式:
● 使用出接口地址。
● 动态IP池。
当在匹配的防火墙策略中选使用流出接口地址时,FortiGate将使用流出接口地址作为NAT IP进行SNAT。
当有多台设备时,FortiGate执行多对一NAT,即PAT。FortiGate为共享出接口地址的每个连接分配来自可用端口池的端口号。端口的分配使FortiGate能够识别与连接相关的数据包,然后执行相应的转换。这与overload IP池类型的行为相同,你也将了解overload IP池类型。
你还可以选择一个固定端口,在这种情况下源端口转换将被禁用。对于固定端口,如果两个或多个连接对一个IP地址要求相同的源端口,则只建立一个连接。
上图的例子显示了在FortiGate后面的两台PC共享相同的公共IP地址(70.70.70.70)来访问互联网web服务器80.80.80.80。由于在CLI set net enable,在防火墙策略上启用了使用流出接口地址,PC的源IP地址转换为出接口地址。然而,源端口并不总是被转换。这取决于可用端口和连接5元组。在上图的示例中,FortiGate仅从PC2转换连接的源端口。否则,这两个连接将在会话表中具有相同的应答流量信息,这将导致会话冲突。
IP池是一种允许会话离开防火墙进行NAT转换的机制。IP池定义了一个IP地址或一段IP地址作为会话期间的源地址。使用这些分配的地址,而不是分配给该FortiGate接口的IP地址。
一般情况下,IP池的配置范围与接口IP地址一致。
在配置将用于NAT的IP池时,必须考虑一些限制。如果IP地址池中的IP地址与接口的IP地址不一致,如果路由配置不正确,基于这些IP地址的通信可能会失败。例如,如果接口分配的IP地址为172.16.100.1/24,则除非配置了适当的路由,否则不能选择10.10.10.1 ~ 10.10.10.50作为IP池。
在防火墙上可以配置四种类型的IP池:
● Overload
● 一对一
● 固定端口范围
● 端口块分配
固定端口范围和端口块分配类型是比较常见的运营商级NAT (CGN)部署。
如果使用IP地址池,则源地址转换为该地址池中的地址,而不是出口接口地址。地址池中的地址数量越大,该地址池可以支持的连接数就越大。
默认情况下,IP池类型为Overload。在Overload IP池类型中,采用多对一或多对少关系,并进行端口转换。
在上图的示例中,源IP 10.0.1.10被转换为地址70.70.70.71,这是IP池(70.70.70.71 - 70.70.70.75)中定义的地址之一。
在一对一池类型中,FortiGate通过先到优先的方式为内部主机分配IP池地址。
内部地址到外部地址只有一个映射。也就是说,IP池地址不与任何其他内部主机共享,因此名称为一对一。如果IP池中没有更多可用的地址,FortiGate将丢弃来自未服务主机的数据包。
上图的例子显示了三个内部主机访问互联网。PC1和PC2数据包首先被FortiGate接收,因此,它们的地址分别为70.70.70.71和70.70.70.72。然而,FortiGate会丢弃来自PC3的数据包,因为它是最后到达的,也就是当IP池中没有更多可用地址可供选择时。
如果当局要求,ISP必须能够识别负责给定连接的订户。如果ISP对用户流量进行NAT转换,则流量将共享一个或多个公共地址。跟踪流量以及每个连接的NAT详细信息的一种方法是记录它们。然而,这可能导致ISP需要专门用于日志目的的大量资源。
另一种选择是部署以CGN为中心的功能,例如固定端口范围IP池。固定端口范围IP池允许管理员通过公共地址和端口跟踪连接,而不必记录每个会话。当配置固定端口范围IP池时,指定一个外部IP地址范围,FortiGate使用该范围对来自内部IP地址范围的流量进行NAT转换。之所以称为固定端口段,是因为FortiGate根据配置的内部IP地址和外部IP地址数量,计算出IP池的端口块大小和可用端口块数量。然后,在执行NAT时,FortiGate将一个或多个端口块分配给内部主机,这使管理员能够跟踪连接而无需记录它们。
上图的示例显示了一个固定端口范围的IP池。内部地址范围10.0.1.1 ~ 10.0.1.253对应外部地址范围70.70.70.71 ~ 70.70.70.80。也就是说,FortiGate与253个内部地址共享10个外部地址。
可以使用diagnostic firewall ippool list命令来确定为固定端口范围IP池中每个外部地址分配的块大小和块数量。
你还可以使用diagnostic firewall ippool-fixed-range list natip命令查看每个内部地址的详细外部地址和端口分配信息,如上图所示。结果是,你可以通过提供连接的公共地址和端口来识别订阅者。
端口块分配IP池对CGN来说也是一个有用的选择。与固定端口范围IP池需要定义内部和外部IP地址范围不同,端口块分配只需要定义外部IP地址范围。你还必须指定块端口大小和FortiGate分配给每个主机(或源IP地址)的块数量。这样可以将每个源IP地址限制在IP池中配置的块数量和端口数量,避免主机数量少导致端口耗尽。
在日志记录方面,当FortiGate为主机分配端口块时,会生成系统事件日志通知管理员。然后,管理员可以查看系统事件日志,以识别由设备进行的互联网连接,如果当局需要此类信息。也就是说,与固定端口阻断的情况一样,管理员不必为连接识别目的而记录流量。
上图的例子展示了端口块分配是如何进行的。FortiGate以先到先得的方式分配端口块。当FortiGate收到来自未服务主机的报文时,进行端口块分配。在本例中,10.0.1.10和10.0.1.33是尝试访问internet的未被服务的主机。然后,FortiGate将端口块分配给每台主机,并对流量执行相应的SNAT。分配后,FortiGate还会生成包含端口块分配详细信息的系统事件日志,以通知管理员。
请注意,上图显示的系统事件日志有经过修剪。
VIP是DNAT对象。对于与VIP匹配的会话,目的地址被转换;通常,一个公共互联网地址被转换为服务器的私有网络地址。在防火墙策略的目标地址字段中选择VIP。
默认情况下,VIP类型为静态NAT。这意味着:
1. 无论连接的协议和端口是什么,只要匹配的防火墙策略将VIP引用为目的地,FortiGate将对去往VIP中定义的外部IP地址的入口流量执行DNAT。
2. 当对VIP中映射地址的所有出口流量进行SNAT时,FortiGate使用VIP中定义的外部IP地址作为NAT IP,前提是匹配的防火墙策略启用了NAT。即,FortiGate不使用出接口地址作为NAT IP。
请注意,你可以使用IP池来覆盖步骤2中描述的行为。类型也可以选择FQDN。当选择FQDN时,可以将FQDN地址对象配置为外部IP地址和内部IP地址。这使得FortiGate能够自动更新VIP使用的外部和内部IP地址,以防FQDN解析地址更改。
你也可以在VIP上启用端口转发功能,指示FortiGate将VIP中匹配外部地址和端口的流量重定向到映射的内部地址和端口。启用端口转发后,FortiGate不再进行一对一映射。这意味着你可以重用相同的外部地址,并将其映射到不同的内部地址和端口,前提是外部端口是唯一的。例如,你可以配置VIP,使对外部IP 70.70.70.70的8080端口的连接映射到内部IP 192.168.0.70的80端口上的。然后,你可以配置另一个VIP,以便将对外部IP 70.70.70.70的端口8081的连接映射到内部IP 192.168.0.71的端口80上。
在上图的示例中,internet主机在TCP端口443上发起到70.70.70.71的连接。在FortiGate上,流量匹配防火墙策略ID 1,该策略引用WebServer-Ext VIP作为目的地。由于VIP配置为静态NAT且端口转发功能关闭,所以FortiGate将报文的目的地址由70.70.70.71转换为172.16.1.10。注意,由于禁用了端口转发,目的端口不会改变。
另外,外部接口地址与VIP中配置的外部地址不同。只要上游网络正确地设置了路由,这就不是问题。你也可以在VPN上使能ARP应答功能(默认使能),以方便上行网络的路由。在本节课中,你将学习更多关于ARP应答的知识。
现在,假设内部web服务器(172.16.1.10)向internet DNS服务器(4.2.2.2)发起DNS连接。在FortiGate上,流量命中了启用了nat的防火墙策略ID 2。由于源地址与VIP的内部地址匹配,且VIP配置为静态NAT,不启用端口转发,所以FortiGate将该报文的源地址从172.16.1.10转换为70.70.70.71。注意,FortiGate不需要执行PAT,因为静态NAT VIP等于一对一映射。即外部IP仅供web服务器用于SNAT。
还要注意,如果VIP在入口防火墙策略中被引用,FortiGate将为SNAT使用VIP外部地址。也就是说,如果你没有配置防火墙策略ID 1,如前一张图片所示,或者如果你禁用防火墙策略,那么FortiGate不会自动使用外部IP来转换web服务器的源地址。相反,FortiGate使用出接口地址(70.70.70.70)。
上图的示例展示了FortiGate如何处理到同一个外部地址的两个传入连接,但是是在不同的端口上。FortiGate根据VIP映射设置将每个连接转发到不同的内部主机。这是可能的,因为在VIP上启用了端口转发,这使得FortiGate可以将外部流量重定向到相应的内部地址和端口,同时使用相同的外部地址。
两个连接都匹配防火墙策略ID,该策略ID引用两个VIP作为目标。HTTPS连接匹配WebServer-Ext VIP, SSH连接匹配SSHServer-Ext VIP。注意,对于SSH连接,FortiGate还将目标端口从222转换为22。
虽然没有在这张图片上显示,来自web和SSH服务器的外向连接将导致FortiGate使用SNAT的出口接口地址作为NAT IP,前提是有一个匹配的防火墙策略启用了NAT。
在Fortios中,VIP和防火墙地址对象是完全不同的。它们分开存储,没有重叠。这意味着,默认情况下,防火墙地址对象不匹配VIP。
在上图所示的示例中,第一个防火墙策略的目标被设置为all。即这意味着所有的目的地址(0.0.0.0/0),默认情况下,这并不包括在VIP上定义的外部地址。结果是,发送到Web_server VIP上定义的外部地址的流量将跳过第一个策略,而是匹配第二个策略。
但是,如果你希望第一个策略阻止到所有目的地的所有传入流量,包括目的地为任何VIP的流量,该怎么办呢?如果你的网络受到攻击,并且你想暂时阻止所有传入的外部流量,这是非常有用的。你可以通过在第一条防火墙策略上启用match-vip来做到这一点。启用match-vip可以指导FortiGate在策略评估期间检查VIP。需要注意的是,match-vip仅在防火墙策略动作为“DENY”时有效。
如果希望只阻断去往一个或多个VIP的流量,可以在防火墙的阻断策略中引用这些VIP作为目的地址。
配置VIP或IP池时,默认情况下启用ARP应答功能。启用ARP应答功能后,将对VIP和IP池中配置的外部地址的ARP请求进行应答。
在大多数网络中,通常不需要启用ARP应答功能,因为相邻设备的路由表中包含正确的下一跳信息,因此网络是可达的。但是,有时路由配置不完全正确,启用ARP应答功能可以解决这个问题。出于这个原因,保持启用ARP应答是一个最佳实践。
请看这上图的例子,它展示了FortiGate和ISP路由器之间的互联网连接。本例还展示了简化版的ISP路由器路由表和ARP表。
ISP为FortiGate管理员分配公共子网80.80.80.0/24用于部署面向互联网的业务。管理员配置了上图显示的VIP,为互联网用户提供访问公司web服务器的权限。在测试时,管理员确认internet用户可以通过80.80.80.1.
然而,管理员可能没有意识到启用ARP应答是成功连接的关键。原因是ISP路由器的路由表中没有通过70.70.70.2网关访问80.80.80.0/24子网的路由。相反,路由表包含通过port1为子网连接的路由。结果是ISP路由器从port1生成ARP请求,以解析80.80.80.0/24子网中任何地址的MAC地址。尽管如此,由于FortiGate响应VIP中的外部地址的ARP请求,ISP路由器能够成功解析MAC地址。
答案:B
答案:A
干得漂亮!你已经了解了防火墙策略NAT。现在,你将了解中央NAT。
通过演示如何配置中央NAT以执行SNAT和DNAT,你将能够在更细粒度的级别上使用NAT来控制IP地址、协议和端口转换。
默认情况下,关闭中央NAT功能。
可以通过命令行方式或图形界面方式启用。
启用中央NAT功能后,在GUl上可以配置以下两种功能:
● 中央NAT
● DNAT和虚拟IP
如果你尝试启用中央NAT,但防火墙策略中仍然配置了IP池或VIP,该怎么办?
CLI不允许这样做,并显示一条消息,引用带有VIP或IP池的防火墙策略ID。为了启用中央NAT,必须从现有防火墙策略中删除VIP或IP池引用。
新建NGFW的策略模式必须配置中央SNAT。这意味着SNAT仅根据单击策略&对象 > 中央 SNAT找到的NAT设置进行操作。
启用中央NAT时,在FortiGate界面的中央SNAT界面配置SNAT。
对SNAT使用中央NAT的主要好处是防火墙策略和中央SNAT策略隔离。这对于包含多个网络和IP池的高级SNAT配置特别有用。不需要在防火墙策略上启用NAT和选择IP池,只需对防火墙策略接受的所有流量配置SNAT策略。这样,您就可以将防火墙策略配置的重点放在接受什么样的流量上,而将SNAT策略的重点放在转换接受的流量的哪一部分以及遵循SNAT映射上。其结果是通过从防火墙策略配置中删除SNAT设置来简化防火墙策略配置。
配置SNAT策略时,可以配置以下匹配条件:
● 流入接口
● 流出接口
● 源地址
● 目标地址
● 协议
● 源端口(显示式端口映射)
你必须指定是使用流出接口地址还是使用IP池进行SNAT。如果开启了中央NAT模式,除非配置相应的匹配的中央SNAT策略,否则不会对流量进行SNAT。同样,如果流量没有匹配任何配置的SNAT策略,FortiGate也不会对流量进行SNAT。
与防火墙策略一样,SNAT策略也从上到下进行处理,如果找到匹配,则根据中央SNAT策略映射设置转换源地址和源端口。
在上图的示例中,PC1(10.0.1.10)发起到外部服务器(80.80.80.80)的两个连接。HTTPS连接匹配中心SNAT策略ID 1,因此源地址转换为IP池地址(70.70.70.71)。DNS连接匹配中心SNAT策略ID 2,该策略不引用IP池。结果是将DNS连接的源地址转换为外部接口地址(70.70.70.70)。
虽然没有在上图中显示,但已经配置了接受这两个连接的防火墙策略。
现在,如果PC1向服务器发起ICMP连接呢?因为没有匹配的中央SNAT策略,所以FortiGate不会对ICMP连接执行SNAT。
启用中央NAT后,不再在防火墙策略中引用VIP。相反,FortiGate会自动在内核中创建一个规则,根据配置的VIP对匹配的流量执行DNAT。在DNAT和虚拟IP界面配置VIP。
与中央SNAT的情况类似,你还必须有一个匹配的防火墙策略来接受你想要进行DNAT的流量。但是,不是引用VIP,而是将映射的内部地址引用为防火墙中的目的地,而不是外部地址。这是因为对于入口流量,DNAT发生在防火墙策略查找之前。也就是说,在防火墙策略查找过程中,FortiGate会考虑转换后的目的地址。
在中央NAT模式下,创建VIP后立即生效。如果你想从DNAT中排除一个VIP,你可以通过使用状态按钮禁用FortiGate GUl上的对象。
在上图的示例中,internet主机在TCP端口443上发起到70.70.70.71的连接。在FortiGate上,流量匹配防火墙策略ID 1,目的地址为web服务器内部地址172.16.1.10。由于VIP配置为静态NAT且端口转发功能关闭,所以FortiGate会将报文的目的地址从70.70.70.71转换为172.16.1.10。
请注意,你将防火墙策略配置为将VIP映射地址匹配为目的地址,而不是VIP外部地址。
在FortiGate命令行中,可以在config system settings下禁用central-nat功能。
但是,请注意,当禁用中央NAT时,FortiGate将停止对流量进行NAT转换,因为它现在需要在相应的防火墙策略上应用NAT配置。为了使FortiGate执行SNAT,必须在相应的防火墙策略上启用NAT,并可选择引用IP池。对于DNAT,必须在相应的防火墙策略中引用VIP对象作为目的。
答案:A
答案:B
干得漂亮!你已经了解了中央NAT。现在,你将了解NAT的最佳实践和故障排除。
通过演示使用流量日志、诊断命令和NAT实现的最佳实践的能力,你应该能够监控和排除常见的NAT问题,并成功地在网络中实现NAT。
执行diagnostic firewall ippool-all list命令可以查看已配置的IP池及其配置。
diagnostic firewall ippool-all stats命令用来查看所有IP池的统计信息。
stats命令提供以下数据和信息:
● 每个IP池的NAT会话
● 每个IP池的TCP会话总数
● 每个IP池的UTP会话总数
● 每个IP池的其他会话总数(非TCP和非UDP)
或者,你可以使用IP池的名称过滤特定IP池的输出。
在实现NAT时,请使用以下最佳实践:
● 避免错误配置IP池范围:
● 请仔细检查每个IP池的起始IP地址和结束IP地址。
● 请确保IP池地址范围不与FortiGate接口或直连网络中的主机地址重叠。
● 如果内部和外部用户访问相同的服务器,请配置DNS服务,以便内部用户解析使用目标内部地址,而不是VIP中定义的外部地址。
● 除非应用程序需要,否则不要为入方向流量配置NAT规则。例如,如果对入站SMTP流量有匹配的NAT规则,则SMTP服务器可能充当开放中继。
● 由中央NAT模式切换到防火墙策略NAT模式,或由防火墙策略NAT模式切换到中央NAT模式,需要调度维护窗口进行切换。在NAT模式之间切换可能会导致网络中断。
答案:A
恭喜你!你已经完成了这节课。现在,你将回顾你在这一课中所学到的目标。
通过掌握本课所涵盖的目标,你学习了如何理解和配置NAT,以便在你的网络中使用它。
以上是关于教程篇(7.2) 03. 网络地址转换 & FortiGate安全 ❀ Fortinet 网络安全专家 NSE 4的主要内容,如果未能解决你的问题,请参考以下文章
教程篇(7.2) 04. 防火墙身份验证 & FortiGate安全 ❀ Fortinet 网络安全专家 NSE 4
教程篇(7.2) 06. 证书操作 & FortiGate安全 ❀ Fortinet 网络安全专家 NSE 4
教程篇(7.2) 01. 简介及初始配置 & FortiGate安全 ❀ Fortinet 网络安全专家 NSE 4
教程篇(7.2) 09. 反病毒 & FortiGate安全 ❀ Fortinet 网络安全专家 NSE 4