亚马逊AWS官方博客

基于GWLB和FortiGate实现纵深防御网络架构

 一、背景

通常情况下,组织会考虑通过安全手段对互联网边界流量(南北向流量)进行防护,而对于一些对网络安全要求较高的组织,还会考虑进一步对VPC之间的流量(东西向流量)进行防护,从而实现纵深防御。

在传统部署方案中,纵深防御往往需要部署多组安全产品,在成本投入、运维管理等方面会对组织带来一些挑战。本文将基于亚马逊云科技Gateway Load Balancer(GWLB)和Fortinet公司FortiGate产品,介绍一种具有高可用、可扩展的纵深防御网络架构。

二、架构设计

本文所介绍的一种基于GWLB和FortiGate实现的纵深防御网络架构设计如下:

图1:一种基于GWLB和FortiGate的纵深防御网络架构

在该架构中:

  • 外部发起的流量通过Ingress VPC进入网络,在Ingress VPC边界通过用于安全虚拟设备的GWLB终端节点对互联网边界流量进行防护(南北向流量防护)
  • 从组织网络内部发起的网络连接从Egress VPC离开组织网络,在Egress VPC边界通过用于安全虚拟设备的GWLB终端节点对互联网边界流量进行防护(南北向流量防护)
  • Spoke VPC用于部署组织的业务应用(每个业务应用部署在各自的Spoke VPC中)
  • Inspection VPC部署用于虚拟安全虚拟设备的GWLB终端节点,用于防护VPC之间的流量(东西向流量防护)
  • Security Appliance VPC用于部署安全虚拟设备。Security Appliance VPC将利用GWLB的负载均衡特征实现安全虚拟设备的高可用,通过FortiGate的多VDOM特征实现在一个安全虚拟设备中同时提供南北向流量防护和东西向流量防护
  • Transit Gateway实现VPC之间的互联及路由调度,同时将VPC之间的流量引流至Inspection VPC进行东西向流量防护(在图1所示的架构中,Ingress VPC、Egress VPC和Spoke VPC之间的流量亦纳入东西向流量防护的范围之内,从而对互联网入站和出站流量形成双层防护)
  • 仅有Ingress VPC(用于网络外部发起的入站网络连接)、Egress VPC(用于网络内部发起的出站网络连接)和Security VPC(用于安全虚拟设备的功能需要,不用于业务流量)配置IGW,其它VPC均不需要配置IGW,从而降低了业务系统的暴露风险。
  • 本架构的VPC及其子网的参考用途规划如下(具体VPC、子网和路由的具体配置可参考图1架构图):
VPC名称 VPC用途 子网名称 子网用途
Egress 集中处理出站流量 NAT Gateway 部署NAT Gateway用于出站互联网访问
Firewall 放置用于安全虚拟设备的GWLB终端节点用于南北向流量防护
Private 按需部署需要在Egress VPC中部署的实例或者安全虚拟设备
TGW 放置用于Transit Gateway实现网络互联的VPC attachment
Ingress 集中处理入站流量 Firewall 放置用于安全虚拟设备的GWLB终端节点用于南北向流量防护
Protected 发布对外应用,例如部署面向互联网的ELB等
Private 按需部署需要在Ingress VPC中部署的实例或者安全虚拟设备
TGW 放置用于Transit Gateway实现网络互联的VPC attachment
Inspection 集中处理VPC之间的流量 Firewall 放置用于安全虚拟设备的GWLB终端节点用于东西向流量防护
TGW 放置用于Transit Gateway实现网络互联的VPC attachment
Security Appliance 部署安全虚拟设备 Appliance 放置安全虚拟设备的业务网卡
MGMT 放置安全虚拟设备的管理网卡
NAT Gateway 部署NAT Gateway用于安全虚拟设备的出站互联网访问
Spoke VPC 1 用于业务应用1 Workload 部署业务应用
TGW 放置用于Transit Gateway实现网络互联的VPC attachment
Spoke VPC 2 用于业务应用2 Workload 部署业务应用
TGW 放置用于Transit Gateway实现网络互联的VPC attachment

注:网络架构需要根据组织的实际情况进行规划和设计。您应该根据您的组织的实际情况,对上述VPC、子网和路由等规划按需进行调整。

基于上述架构,对于来自Internet的外部流量向位于Spoke VPC内的业务应用主动发起的入站网络连接、以及来自部署于Spoke VPC内的业务应用向Internet主动发起的出站网络连接,都将经过双层安全虚拟设备(防护策略)的防护(南北向防护策略和东西向防护策略)。而对于不同VPC之间的内部互访流量,亦将经过安全虚拟设备东西向防护策略的防护。需要注意的是,将入站流量和出站流量经过双层安全虚拟设备的防护可能会带来额外的成本和延迟,组织可以结合业务应用在安全、成本和性能等方面的需求,对上述架构中的VPC、子网和路由等配置进行调整,使网络架构满足业务应用在安全、成本和性能等方面的需要。

三、参考配置

本部分将基于图1所示的网络架构,介绍相关配置要点。在参考本部分开始配置前,建议您参考图1所示的架构图,完成VPC、子网和Transit Gateway等部分的相关基础配置。本文所基于的配置环境是亚马逊云科技(北京区域)和FortiGate版本7.0.6。

1、启动FortiGate并完成VDOM基础配置

(1)在Security Appliance VPC的2个可用区(AZ)中分别启动1个FortiGate虚拟设备,每个FortiGate虚拟设备配置3块网卡(其中第1块网卡(port1)作为管理网卡位于Mgmt子网,第2块网卡(port2)和第3块网卡(port3)作为业务网卡位于Appliance子网)。

(2)参考FortiGate文档为网卡配置合适的安全组。注意业务网卡的Inbound Rule需要允许UDP 6081端口(用于Geneve隧道)和TCP 8008端口(用于状态检测)。

(3)对每一个FortiGate虚拟设备完成以下基础配置

a. 启用VDOM模式。在本设计中,南北向流量使用NS-Traffic VDOM,东西向流量使用EW-Traffic VDOM,管理使用root VDOM。

config system global
    set vdom-mode multi-vdom
end

config vdom
	edit NS-Traffic
	next
	edit EW-Traffic
	next
	end
end

b. 配置VDOM(在本设计中,处理南北向流量的网卡(port2)使用NS-Traffic VDOM,处理东西向流量的网卡(port3)使用EW-Traffic VDOM,管理网卡(port1)使用root VDOM)

config system interface
    edit "port1"
        set vdom "root"
        set mode dhcp
        set allowaccess ping https ssh http fgfm
        set type physical
        set snmp-index 1
        set mtu-override enable
        set mtu 9001
    next
    edit "port2"
        set vdom "NS-Traffic"
        set mode dhcp
        set allowaccess ping probe-response
        set type physical
        set snmp-index 2
        set defaultgw disable
        set mtu-override enable
        set mtu 9001
    next
    edit "port3"
        set vdom "EW-Traffic"
        set mode dhcp
        set allowaccess ping probe-response
        set type physical
        set snmp-index 7
        set defaultgw disable
        set mtu-override enable
        set mtu 9001
    next
end

c. 配置检测响应

config system probe-response
    set mode http-probe
end


2
、配置GWLB

(1)建立用于处理南北向流量的GWLB:

  • 点击EC2 – Load balancers – Create Gateway Load Balancer,进行以下配置:
  • Load balancer name: 为GWLB提供1个名称,例如GWLB-NS-Traffic
  • Network mapping
    • VPC: 选择Security Appliance VPC
    • Subnet: 选择Appliance Subnet 1 和Appliance Subnet 2(分别位于AZ-a和AZ-b)
  • IP listener routing
    • Create Target Group并进行以下配置:
      • Name: 提供1个名称,例如Target-FortiGate-NS-Traffic
      • Protocol: GENEVE
      • VPC: Security Appliance VPC
      • Health checks: TCP
      • Port: 8008
      • IP:分别输入2台FortiGate用于南北向流量防护的网卡IP(port2)
    • 选择上述建立的Target Group
  • 出于高可用考虑,启用Cross-zone load balancing,方法如下:
    • 进入上述完成建立的GWLB配置,在Description选项卡Attributes部分启用Cross-zone load balancing

(2)参考上述步骤完成用于处理东西向流量的GWLB建立

3、FortiGate Geneve隧道和路由配置

(1)分别在两个FortiGate虚拟设备中进行Geneve隧道配置(2个FortiGate的配置相同)。在开始配置前,首先在EC2- Network interfaces中分别记录在第2步中建立的两个GWLB的相关网络接口地址(每个GWLB各有2个网络接口地址,1个位于AZ-a,1个位于AZ-b).

  • NS-Traffic VDOM配置:
config system geneve
    edit "geneve-ns-az1"
        set interface "port2"
        set type ppp
        set remote-ip 用于南北向流量的GWLB位于AZ-a的网卡地址
    next
    edit "geneve-ns-az2"
        set interface "port2"
        set type ppp
        set remote-ip 用于南北向流量的GWLB位于AZ-b的网卡地址
    next
end
  • EW-Traffic VDOM配置:
config system geneve
    edit "geneve-ew-az1"
        set interface "port3"
        set type ppp
        set remote-ip 用于东西向流量的GWLB位于AZ-a的网卡地址
    next
    edit "geneve-ew-az2"
        set interface "port3"
        set type ppp
        set remote-ip 用于东西向流量的GWLB位于AZ-b的网卡地址
    next
end

(2)分别在两个FortiGate虚拟设备中进行静态路由配置

  • FortiGate 1 (位于AZ-a)NS-Traffic VDOM配置:
config router static
    edit 1
        set device "geneve-ns-az1"
    next
    edit 2
        set device "geneve-ns-az2"
    next
    edit 3
        set dst Security VPC Appliance Subnet (AZ-b)的网络地址和掩码,例如10.13.11.0 255.255.255.0
        set gateway Security VPC Appliance Subnet (AZ-a)的网关地址,例如10.13.1.1
        set device "port2"
    next
end
  • FortiGate 1 (位于AZ-a)EW-Traffic VDOM配置:
config router static
    edit 1
        set device "geneve-ew-az1"
    next
    edit 2
        set device "geneve-ew-az2"
    next
    edit 3
        set dst Security VPC Appliance Subnet (AZ-b)的网络地址和掩码,例如10.13.11.0 255.255.255.0
        set gateway Security VPC Appliance Subnet (AZ-a)的网关地址,例如10.13.1.1
        set device "port3"
    next
end
  • FortiGate 2 (位于AZ-b)NS-Traffic VDOM配置:
config router static
    edit 1
        set device "geneve-ns-az1"
    next
    edit 2
        set device "geneve-ns-az2"
    next
    edit 3
        set dst Security VPC Appliance Subnet (AZ-a)的网络地址和掩码,例如10.13.1.0 255.255.255.0
        set gateway Security VPC Appliance Subnet (AZ-b)的网关地址,例如10.13.11.1
        set device "port2"
    next
end
  • FortiGate 2 (位于AZ-b)EW-Traffic VDOM配置:
config router static
    edit 1
        set device "geneve-ew-az1"
    next
    edit 2
        set device "geneve-ew-az2"
    next
    edit 3
        set dst Security VPC Appliance Subnet (AZ-a)的网络地址和掩码,例如10.13.1.0 255.255.255.0
        set gateway Security VPC Appliance Subnet (AZ-b)的网关地址,例如10.13.11.1
        set device "port3"
    next
end

(3)分别在两个FortiGate虚拟设备中进行策略路由配置(2个FortiGate的配置相同)

  • NS-Traffic VDOM配置:
config router policy
    edit 1
        set input-device "geneve-ns-az1"
        set output-device "geneve-ns-az1"
    next
    edit 2
        set input-device "geneve-ns-az2"
        set output-device "geneve-ns-az2"
    next
end
  • EW-Traffic VDOM配置:
config router policy
    edit 1
        set input-device "geneve-ew-az1"
        set output-device "geneve-ew-az1"
    next
    edit 2
        set input-device "geneve-ew-az2"
        set output-device "geneve-ew-az2"
    next
end

4、FortiGate安全防护策略配置

分别在两个FortiGate虚拟设备中进行防护策略配置。为简化起见,这里南北向和东西向的出入防护策略相同、且均开启基础安全功能。您可以根据您的组织的实际情况,通过对源目IP地址段配置、安全功能配置等方式对策略进行细化(例如针对出站流量和入站流量、南北向流量和东西向流量分别配置不同的安全功能等)。

  • NS-Traffic VDOM配置:
config system zone
    edit NS-Traffic
        set interface geneve-ns-az1 geneve-ns-az2
    next
end

config firewall policy
    edit 1
        set name "NS-Traffic"
        set srcintf "NS-Traffic"
        set dstintf "NS-Traffic"
        set action accept
        set srcaddr "all"
        set dstaddr "all"
        set schedule "always"
        set service "ALL"
        set utm-status enable
        set ssl-ssh-profile "certificate-inspection"
        set av-profile "g-default"//防病毒
        set ips-sensor "g-default"//防入侵
        set application-list "g-default"//应用识别
        set logtraffic all
    next
end
  • EW-Traffic VDOM配置:
config system zone
    edit EW-Traffic
        set interface geneve-ew-az1 geneve-ew-az2
    next
end

config firewall policy
    edit 1
        set name "EW-Traffic"
        set srcintf "EW-Traffic"
        set dstintf "EW-Traffic"
        set action accept
        set srcaddr "all"
        set dstaddr "all"
        set schedule "always"
        set service "ALL"
        set utm-status enable
        set ssl-ssh-profile "certificate-inspection"
        set av-profile "g-default"//防病毒
        set ips-sensor "g-default"//防入侵
        set application-list "g-default"//应用识别
        set logtraffic all
    next
end

5、建立终端节点服务

(1)建立用于处理南北向流量的终端节点服务:

  • 点击VPC- Endpoint services – Create endpoint service,进行以下配置:
  • Name: 为终端节点服务命名
  • Load balancer type: Gateway
  • Available load balancers:选择在第2步中建立的用于处理南北向流量的GWLB
  • 记录终端节点服务的名称

(2)参考上述步骤完成处理东西向流量的终端节点服务的建立,并记录终端节点服务的名称

6、建立终端节点

(1)建立用于处理南北向流量的终端节点:

  • 点击VPC- Endpoints – Create endpoint,进行以下配置:
  • Name: 为终端节点命名
  • Service category: Other endpoint services,并输入在第5步中建立的用于处理南北向流量的终端节点服务名称
  • VPC:选择Ingress VPC的Firewall Subnet (AZ-a),完成Ingress VPC Firewall Subnet (AZ-a)中Endpoint的建立
  • 重复上述步骤,完成用于处理南北向流量的终端节点在Ingress VPC的Firewall Subnet (AZ-b)、Egress VPC的Firewall Subnet (AZ-a)、Egress VPC的Firewall Subnet (AZ-b)的建立。

(2)参考上述步骤完成处理东西向流量的终端节点在Inspection VPC的Firewall Subnet (AZ-a)、Inspection VPC的Firewall Subnet (AZ-b)的建立。

7、Transit Gateway Appliance Mode配置

Transite Gateway的Appliance Mode选项可以保证双向流量以对称方式路由,从而确保双向流量通过同一安全虚拟设备进行状态检查。在本设计中,将对于Inspection VPC开启Appliance Mode选项,步骤如下:

  • 进入VPC – Transit gateway attachments,找到Inspection VPC对应的attachment-id
  • 通过以下命令进行配置:
aws ec2 modify-transit-gateway-vpc-attachment --transit-gateway-attachment-id Inspection VPC对应的attachment-id --options ApplianceModeSupport=enable

8、配置路由表

参照图1架构图中的路由信息,完成相关路由的配置。

9、测试与验证

在完成上述配置后,您可以对您所建立的环境进行验证,参考验证环境如下:

  • 在Ingress VPC的Private子网启动1台实例
  • 在Ingress VPC的Protected子网建立一个面向互联网的NLB,指向Ingress VPC Private子网中所启动的实例的管理端口
  • 在Spoke1 VPC的Workload子网启动一台实例
  • 在Spoke2 VPC的Workload子网启动一台实例

验证过程如下:

  • 通过NLB域名访问位于Ingress VPC Private子网的实例,可以正常访问,同时FortiGate 南北向VDOM出现访问日志

图2:南北向VDOM的访问日志
(其中10.10.1.0/24为Ingress VPC Protected子网地址段)

  • 通过位于Ingress VPC Private子网的实例访问位于Spoke1 VPC Workload子网的实例,可以正常访问,同时FortiGate 东西向VDOM出现访问日志

图3:东西向VDOM的访问日志
(其中10.10.2.0/24为Ingress VPC Private子网地址段、10.1.1.0/24为Spoke1 VPC Workload子网地址段)

  • 通过位于Spoke1 VPC Workload子网的实例访问位于Spoke2 VPC Workload子网的实例,可以正常访问,同时FortiGate 东西向VDOM出现访问日志

图4:东西向VDOM的访问日志
(其中10.1.1.0/24为Spoke1 VPC Workload子网地址段、10.2.1.0/24为Spoke2 VPC Workload子网地址段)

  • 通过位于Spoke1 VPC Workload子网的实例访问互联网,可以访问,同时FortiGate 东西向VDOM和南北向VDOM都出现访问日志

图5:东西向VDOM和南北向VDOM都会出现的访问日志
(其中10.1.1.0/24为Spoke1 VPC Workload子网地址段)

四、总结

本文基于亚马逊云科技Gateway Load Balancer(GWLB)和Fortinet公司FortiGate产品所提供的负载均衡、多VDOM和支持GENEVE协议等特性,介绍了一种具有高可用、可扩展的纵深防御网络架构。本文可以作为组织在设计和优化云网络架构的一种参考。

本篇作者

胡妙超

亚马逊云科技专业服务团队云安全咨询顾问,在网络与信息安全领域拥有丰富的管理、技术和运营经验,负责云安全咨询、架构设计和技术实施。

本篇作者

聂宏仁

Fortinet系统工程师,在网络安全领域有10多年的经验,主要负责网络安全(NGFW,IPS),企业组网(SD-WAN),零信任(ZTNA),安全运维以及云安全等整体解决方案。