云上公网架构设计和安全管理

更新时间: 2023-12-01 12:32:50

45

https://www.aliyun.com/solution/tech-solution/cbpnadasm

方案概览

随着企业业务云化进程逐渐进入深水区,简单地使用云上资源出入公网已经无法满足业务的诉求,安全、成本、权限、监控等诉求的迭代,需要企业有系统性的视角来考虑如何做好公网出入口(DMZ)的规划设计。

云上公网的设计可以帮助企业更加统一、安全地管理自己的云上互联网出入口。同时,可以实现统一监控运维和公网的成本优化。

适用场景:

  • 企业级网络安全架构:集团型公司IT团队负责整体云网络架构运维和管理,子公司或子部门IT只需负责业务模块的开发,集团IT部门需要对整体云上公网出入口进行监控和管理,防止外部攻击以及内部异常访问。

  • 互联网流量审计管理:跨国公司或金融公司需要对所有跟互联网访问相关的VPC进行流量审计,防止来自内外部的各种安全威胁。同时,由IT部门统一控制云资源对外服务以及访问互联网的权限。

方案架构

方案提供的默认设置完成部署后在阿里云上搭建的网站运行环境如下图所示。实际部署时您可以根据资源规划修改部分设置,但最终形成的运行环境与下图相似。image.png

本方案的技术架构包括以下基础设施和云服务:

  • 统一出口:使用NAT网关在DMZ VPC构建统一云上公网出口,为不同业务设置不同的EIP出口方便流量统计管理。

  • 统一入口:DMZ VPC与后端业务VPC通过转发路由器TR打通,通过ALB和NLB跨VPC挂载能力保障后端业务VPC无需暴露在公网。

  • 带宽共享:使用共享带宽产品针对EIP进行统一管理和带宽共享。

  • 安全防护:使用DDoS防护、WAF、云防火墙的组合来防护Internet的入向访问流量,和云上VPC的访问Internet流量。您可以按需购买DDoS防护,配置DDoS回源WAF的CNAME来打通网络。本方案中使用WAF和云防火墙组合。

部署准备

10

开始部署前,请按以下指引完成账号申请、账号充值、RAM用户创建和授权。

准备账号

  1. 如果您还没有阿里云账号,请访问阿里云账号注册页面,根据页面提示完成注册。阿里云账号是您使用云资源的付费实体,因此是部署方案的必要前提。

  2. 为阿里云账号充值

    • 本方案的云资源支持按量付费,且默认设置均采用按量付费引导操作。如果确定任何一个云资源采用按量付费方式部署,账户余额都必须大于等于100元。

    • 完成本方案的部署及体验,预计产生费用不超过5元。

      假设您选择可用的最低规格资源,且资源运行时间不超过1小时。实际情况中可能部分实例无法购买需要根据实际情况调整资源规格,同时因您操作过程中实际使用的流量差异,会导致费用有所变化,请以控制台显示的实际报价以及最终账单为准。

      下表仅供参考,具体费用以实际情况为准。

      序号

      产品

      费用来源

      规格

      地域

      预估费用参考

      相关文档

      1

      云服务器ECS

      实例费

      ecs.s6-c1m1.small

      华东1(杭州))

      0.115元/时

      按量付费

      系统盘费

      0.02元/时

      2

      网络型负载均衡NLB

      实例费

      -

      华东1(杭州)

      0.147元/小时

      NLB计费规则

      性能容量单位LCU费

      0.037元/个/小时

      公网网络费

      0.036元/个

      3

      应用型负载均衡ALB

      实例费

      基础版

      华东1(杭州)

      0.049元/小时

      ALB计费规则

      性能容量单位LCU费

      0.049元/个/小时

      4

      Web应用防火墙

      SeCU

      -

      中国内地区域

      0.05元/个

      计费说明

      5

      弹性公网IP EIP

      带宽费

      5 Mbps

      华东1(杭州)

      0.96元/Mbps/天

      按量付费

      EIP配置费

      -

      0.02元/小时/个

      6

      NAT网关

      实例费

      -

      华东1(杭州)

      0.23元/小时

      公网NAT网关计费

      CU费

      0.23元/个/小时

      7

      共享带宽

      带宽

      2 Mbps

      华东1(杭州)

      0.28/小时

      按带宽计费

      8

      云防火墙

      流量处理费

      -

      华东1(杭州)

      0.36元/GB

      按量付费

      公网IP配置费

      1.2元/天/个

  1. 创建用于方案部署的RAM用户。

    1. 创建1个RAM用户。具体操作,请参见创建RAM用户

    2. 为RAM用户授予以下云服务的访问权限以完成方案部署。具体操作,请参见为RAM用户授权

      云服务

      需要的权限

      描述

      专有网络VPC

      AliyunVPCFullAccess

      管理专有网络VPC的权限

      网络型负载均衡NLB

      AliyunNLBFullAccess

      管理网络型负载均衡NLB的权限

      应用型负载均衡ALB

      AliyunALBFullAccess

      管理应用型负载均衡ALB的权限

      弹性公网IP EIP

      AliyunEIPFullAccess

      管理弹性公网IP的权限

      NAT网关

      AliyunNATGatewayFullAccess

      管理NAT网关权限

      云企业网CEN

      AliyunCENFullAccess

      管理CEN的权限

      共享带宽

      AliyunCommonBandwidthPackageFullAccess

      管理共享带宽的权限

      Web应用防火墙 WAF

      AliyunYundunWAFv3FullAccess

      管理WAF的权限

      云防火墙

      AliyunYundunCloudFirewallFullAccess

      管理云盾云防火墙的权限

      资源编排ROS

      AliyunROSFullAccess

      管理资源编排ROS的权限

      云解析DNS

      AliyunDNSFullAccess

      管理云解析DNS的权限

规划网络和资源

10

网络规划

请参考表格中的说明和方案默认示例值为每个规划项做详细规划并在实际部署时将默认示例值修改为您的实际规划。

规划项

数量

说明

地域

1

您的云服务部署的地域。选择地域的基本原则请参见地域和可用区

专有网络VPC

3

在部署过程中新建3个VPC作为本方案的专有网络。

交换机

6

本方案每个VPC需要至少2台交换机,用来连接不同的云资源实例。

应用型负载均衡ALB

2

本方案需要2台应用型负载均衡ALB实例,用于对网站的多台云服务器进行流量分发。ALB具备流量分发扩展应用系统的服务能力,通过消除单点故障提升应用系统的可用性。

网络型负载均衡NLB

1

本方案需要1台网络型负载均衡NLB实例,用于云上公网的统一入口。

NAT网关

1

本方案需要1台NAT网关实例,用于云上公网的统一出口。

弹性公网IP

3

公网类型的NLB自动会创建2个EIP,另外单独创建一个EIP绑定在NAT网关上。

共享带宽

1

3个EIP加入同一个共享带宽,用于统一管理和计费。

云企业网CEN

1

将3个VPC加入云企业网实现云上网络互通。

转发路由器TR

1

连接3个不同的VPC。

规划云资源

请参考表格中的说明和方案默认示例值为每个规划项做详细规划并在实际部署时将默认示例值修改为您的实际规划。

规划项

数量

说明

ECS

4

本方案需要4台ECS实例,用于同时部署后端服务。

WAF

1

用于防护应用层攻击。

云防火墙

1

用于统一的互联网边界的安全防护。

DNS

1

用于解析备案后的域名到WAF CNAME。

部署资源

15

规划好资源后,请按照以下步骤部署方案中的所有资源。

步骤一:一键部署计算和网络资源

  1. 单击一键部署前往ROS控制台,系统自动打开使用新资源创建资源栈的面板,并跳转至配置模板参数页签。

    说明

    ROS控制台默认处于您上一次访问控制台时的地域,请根据您创建的资源所在地域修改地域后再执行下一步。本方案设置为华东1(杭州)

  2. 资源栈名称可保持默认值。

  3. 可用区配置区域,分别选择可用区J可用区K

  4. ECS实例配置区域,选择共享型实例,推荐使用最低规格(本方案示例ecs.s6-c1m1.small),并设置实例密码

  5. 设置系统盘类型字段取值为cloud_efficiency

  6. 单击创建

  7. 创建完成后,请登录每一台ECS实例,安装对应的Web服务。本方案以Nginx为例。

步骤二:开启互联网边界防火墙并配置

防火墙开启后,如果您未配置任何访问控制策略或威胁引擎未开启拦截模式,您的业务流量将只经过云防火墙,云防火墙不会对业务流量进行拦截,因此不会对业务产生任何影响。您可以在防火墙开关页面,为您的资产开启或关闭防火墙开关。开启防火墙无需进行复杂的网络配置,开启后即可使用。

操作步骤

  1. 登录云防火墙控制台

  2. 在页面弹框中,勾选自动介入资产保护,阅读协议并确认同意后,勾选我已阅读并同意云防火墙服务协议

  3. 单击立即开通

    防火墙状态更新可能需要数秒时间,请耐心等待。

  4. 选择访问控制 > 互联网边界 > 入向 > 创建策略,在创建入向策略面板的自定义创建页签,参照以下截图示例完成配置,然后单击确定

    image.png

步骤三:网站业务接入WAF

开通WAF 3.0按量付费实例后,您需要将网站域名添加到WAF,才能进行防护。本方案介绍如何通过CNAME接入方式,将网站域名添加到WAF。

  1. 登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域中国内地

  2. 在左侧导航栏,单击接入管理

  3. CNAME接入页签,单击接入

  4. 接入域名面板的配置监听向导页,完成如下配置后,单击下一步

    配置项

    配置说明

    域名

    填写要防护的域名,本方案示例为www.example.com

    协议类型

    选择网站使用的协议类型并填写对应端口。每输入一个端口,按回车确认。

    本方案示例为HTTP协议和80端口。

    WAF前是否有七层代理(高防/CDN等)

    网站在接入WAF前是否启用了其他七层代理服务(例如DDoS高防、CDN等)。

    本方案选择

    资源组

    从资源组下拉列表中选择该域名所属资源组。如果不选择,则默认加入默认资源组

    说明

    您可以使用资源管理服务创建资源组,根据业务部门、项目等维度对云资源进行分组管理。更多信息,请参见创建资源组

  5. 配置转发向导页,完成如下配置后,单击提交

    配置项

    说明

    负载均衡算法

    如果源站有多个服务器地址,您可以根据业务需要,选择不同的负载均衡算法,使WAF将回源请求转发到对应的服务器,实现负载均衡。

    本方案选择轮询

    服务器地址

    填写网站对应的源站服务器的公网IP地址或源站域名,用于接收WAF转发回源的正常业务请求(回源请求)。

    本方案勾选域名(如CNAME)并填写NLB的CNAME

    说明

    服务器地址为域名时,只支持IPv4地址,暂不支持IPv6地址,即WAF只会将客户端请求转发到源站域名解析出来的IPv4地址。

  6. 接入完成向导页,获取WAF提供的CNAME地址,并根据页面提示将域名的DNS解析地址设置为WAF提供的CNAME地址。具体操作,请参见修改域名DNS解析设置

步骤四:将DNS解析到WAF CNAME

  1. 登录阿里云云解析DNS控制台

  2. 域名解析页面,找到目标域名,单击操作列下的解析设置

  3. 解析设置页面,单击添加记录

  4. 添加记录对话框,配置记录,然后单击确定

    1. 记录类型:选择记录类型。

      本方案需要将Web域名指向另一个域名,所以选择CNAME

    2. 主机记录:输入加速域名的前缀。

      本方案输入www

    3. 解析请求来源:选择默认

    4. 记录值:设置为WAF的CNAME地址。

    5. TTL:域名解析的生效时间。

      本方案选择10分钟

完成及清理

10

方案验证

测试出口访问

测试ECS实例是否可以访问互联网。

  1. 登录ECS。具体操作,请参见连接方式概述

    如下图所示,执行ping命令测试网络连通性。经测试,ECS可以访问互联网。

    image.png

  1. 执行curl ifconfig.me命令探测ECS的公网出口IP。

    image.png

    经测试,ECS公网出口IP与公网NAT网关实例中SNAT条目中的IP一致,即ECS通过公网NAT网关的SNAT功能主动访问互联网。

    image.png

测试入口访问

执行telnet $NlbCname $ListenPort命令,测试本地是否能通过NLB访问业务VPC内的ECS

telnet nlb-ygfajln3bwbfs3****.cn-hangzhou.nlb.aliyuncs.com 80

如果能接收到成功连接的回复报文时,表示连接成功。

image.png

测试网站防护

您可以执行如下操作,检测域名是否添加成功:

  • 在浏览器输入已添加的域名,如果网站能正常访问,表示域名添加成功。

    image.png

  • 在浏览器输入已添加的域名和Web攻击代码(例如<被防护域名>/alert(xss)alert(xss)为用作测试的跨站脚本攻击代码),如果返回405拦截提示页面,表示攻击被拦截,WAF防护成功。

    image.png

清理资源

在本方案中,您创建了4台云服务器ECS实例、2个应用型负载均衡ALB实例、1个网络型负载均衡ALB实例、1个NAT网关实例、3个弹性公网IP、1个共享带宽实例、1个云企业网CEN实例、一个转发路由器TR、6个交换机、3个专有网络VPC、1个WAF实例、一条云防火墙防护策略。测试完方案后,您可以参考以下步骤释放对应资源,避免继续产生费用。

  1. 登录资源编排管理控制台,左侧导航栏菜单选择资源栈

  2. 在页面的顶部选择部署的资源栈所在地域,找到部署的资源栈。单击其右侧操作列的删除并确认,可一键删除一键配置所创建的资源。

  1. 关闭防火墙开关。

    登录云防火墙控制台,关闭保护,并删除创建的入向策略。

  1. 释放Web应用防火墙。

    登录Web应用防火墙控制台,在顶部菜单栏,选择WAF实例的资源组和地域,在总览页面右上角的实例基本信息卡片区域,单击关闭WAF