如何通过应用程序网关对业务进行安全防护

如何通过应用程序网关对业务进行安全防护

目录

应用程序网关的应用与配置 1

背景需求 3

解决方案 3

产品介绍 3

方案验证 4

收益体会 12

常见问题 12

背景需求

随着B/S架构的广泛应用,WEB应用的功能越来越丰富,也就意味着蕴含着越来越有价值的信息。于是WEB应用成为了黑客主要的攻击目标(第五层应用层)。传统防火墙无法解析HTTP应用层的细节,防火墙只是在第三层(网络层),对规则的过滤过于死板,无法为WEB应用提供足够的防护(纵深防御)。于是WAF诞生了。
WAF(Web Application
Firewall)代表了一类新兴的信息安全技术,WAF称为WEB应用防火墙,是通过执行一系列针对HTTP,HTTPS的安全策略,来专门对web应用,提供保护的一款产品。WAF初期是基于规则防护的防护设备;基于规则的防护,可以提供各种web应用的安全规则,WAF生产商去维护这个规则库,并实时为其更新,用户按照这些规则,可以对应用进行全方面的保护。

解决方案

**目标:**在Azure 门户中使用 Azure 应用程序网关定向 Web 流量,实现基于传入 URL
路由流量

**厂商:**微软云 Azure-IaaS

**产品:**应用程序网关

思路引导&步骤概述:

  1. 将使用 Azure 门户创建一个应用程序网关。
    然后对其进行测试以确保其正常运行。该应用程序网关将应用程序 Web
    流量定向到后端池中的特定资源。

  2. 将向端口分配侦听器,创建规则,并向后端池中添加资源。

    (备注:本次使用了带有公共前端 IP
    的简单设置、一个在应用程序网关上托管单个站点的基本侦听器、一个基本的请求路由规则,以及后端池中的两台虚拟机。)

产品介绍

Azure 应用程序网关是一种 Web 流量负载均衡器,可用于管理 Web 应用程序的流量。

传统负载均衡器在传输层(OSI 层 4 - TCP 和 UDP)进行操作,并基于源 IP
地址和端口将流量路由到目标 IP 地址和端口。

应用程序网关可以根据 HTTP 请求的其他属性(例如 URI 路径或主机头)进行路由决策。
例如,可以基于传入 URL 路由流量。

因此,如果 /images 在传入 URL
中,则可将流量路由到为映像配置的一组特定服务器(称为池)中。 如果 /video 在 URL
中,则可将该流量路由到针对视频优化的另一个池中。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nxolUOuU-1625537851614)(media/f44a9417b503b7d5a6f32909a6698501.png)]

这种类型的路由称为应用程序层(OSI 层 7)负载均衡。 Azure
应用程序网关可以执行基于 URL 的路由等操作。

方案验证

创建应用程序网关

在 Azure 门户菜单或“主页”页上,搜索应用程序网关”
,点击服务栏中的应用程序网关,点击创建,如图所示,开始进行基本配置。- 见图

图形用户界面, 应用程序描述已自动生成

图形用户界面, 应用程序, 电子邮件描述已自动生成

1,“基本”

在“基本”中,输入以下值:

资源组:可根据客户需求选择已有资源组或点击新建去创建一个新的资源组,这里我们新建资源组Sinoage-RG。

应用程序网关名称:自定义名称,这里也可输入 Sinoage-GW
作为应用程序网关的名称。

根据需求选择区域和层级:见图

在这里插入图片描述

2,配置虚拟网络

【说明】:Azure 需要一个虚拟网络才能在创建的资源之间通信。
可以创建新的虚拟网络,或者使用现有的虚拟网络,但都需要有一个单独供WAF使用的子网。在此示例中,将在创建应用程序网关的同时创建新的虚拟网络。
在独立的子网中创建应用程序网关实例。 应用程序网关子网只能包含应用程序网关。
不允许其他资源。

在本示例中创建两个子网:一个用于应用程序网关,另一个用于后端服务器。

【配置步骤】:在“配置虚拟网络”下,选择“新建”。
在打开的“创建虚拟网络”窗口中,输入以下值以创建虚拟网络和两个子网:

名称:自定义,这里输入 SinoageWAF-VNet。

子网名称(应用程序网关子网):子网网关将显示名为“默认值default”的子网,。

子网名称(后端服务器子网):在子网网关的第二行中,在“子网名称”列输入“WAF-Subnet”。

地址范围(后端服务器子网):在子网网格的第二行中,输入不会与
default子网的地址范围重叠的地址范围。 例如,default子网地址范围为
10.8.0.0/24,则WAF-subnet的地址范围输入 10.8.1.0/24 。

选择“确定”关闭“创建虚拟网络”窗口,并保存虚拟网络设置 。-见图

在这里插入图片描述

在这里插入图片描述

3,“前端”

在“基本”选项卡中,接受其他设置的默认值,然后选择“下一步:前端”。

【说明】:可新建或使用现有公共IP地址,我们在这里选择新建公共前端 IP。

【配置步骤】:新增“公共 IP
地址”
,名称栏输入“Sinoage-PublicIPAddress”,然后选择“确定” – 见图

在这里插入图片描述

在完成时选择“下一步:后端。

4,“后端”

【说明】:后端池用于将请求路由到为请求提供服务的后端服务器。 后端池可以包含
NIC、虚拟机规模集、公共 IP 地址、内部 IP 地址、完全限定的域名 (FQDN)
和多租户后端(例如 Azure 应用服务)。
在此示例中,将使用应用程序网关创建空的后端池,然后将后端目标添加到后端池。通过IP地址或FQDN
目标可以是虚拟机的内网IP或外网IP,或直接通过虚拟机选项,绑定虚拟网络内的虚拟机网络接口。

【配置步骤】:点击“添加后端池” ,输入以下值创建后端池 :

名称:输入“SinoageWAF-BP”。添加包含目标后端池:-见图

这里目标类型选择IP地址或FQDN 目标,选择“添加”,进行下一步: 配置”路由规则。

在这里插入图片描述

在这里插入图片描述

5,“配置”-添加路由规则

【说明】在“配置”选项卡上,将连接使用传递规则创建的前端和后端池 。

【配置步骤】输入“SinoWAF-HttpsRule”作为规则名称 。

传递规则需要侦听器。
在“添加传递规则”窗口中的“侦听器”选项卡上,输入侦听器的以下值 :

**侦听器名称:**输入“SinoWAF-HttpsListener”作为侦听器名称 。

**前端 IP:**选择“公共”,以选择为前端创建的公共 IP。

接受“侦听器”选项卡上其他设置的默认值,然后选择“后端目标”选项卡以配置剩余的传递规则
。-见图

主机名需要问客户要在后端的NGINX配置信息,如www.xxxx.com.这里使用测试主机名sinotest.com。

在这里插入图片描述

在“后端目标”选项卡上,为“后端目标”选择之前创建的“SinoageWAF-BP” 。

【说明】选择“新增”以添加新的 HTTP 设置 。 HTTP 设置将决定传递规则的行为。
在打开的“添加 HTTP 设置”窗口中,为“HTTP
设置名称”输入“SinoageHttps”,“后端端口”为“80”。
接受其他设置的默认值,然后点击“添加 ”。-见图

在这里插入图片描述

在完成时选择“标记”,然后选择“查看 + 创建”。

复查设置,然后选择“创建”以创建虚拟网络、公共 IP 地址和应用程序网关 。 Azure
可能需要20分钟时间来创建应用程序网关。
请等待部署成功完成,然后再前进到下一部分。

在这里插入图片描述

6,添加后端目标

找到创建好的应用程序网关,在设置下找到后端池,点击名称进入添加目标。如下图所示:

目标为所要添加虚拟机的公共IP地址。

在这里插入图片描述

在这里插入图片描述

##################################################################

8.验证:

安装IIS

分别连接到两台目标虚拟机,在服务器桌面,导航到“”Windows管理工具>Windows
Powershell”,输入下列命令:

PS C:\Users\zhaoyy> Install-WindowsFeature -name Web-Server
-IncludeManagementTools #######安装IIS服务器

Success Restart Needed Exit Code Feature Result

------- -------------- --------- --------------

True No NoChangeNeeded {}

PS C:\Users\zhaoyy> remove-item C:\inetpub\wwwroot\iissstart.htm
####删除默认的iisstart.htm文件。

PS C:\Users\zhaoyy> Add-Content -Path “C:\inetpub\wwwroot\iisstart.htm”
-Value $("Data from " + $env:computername)
######添加显示VM名称的新iisstart.htm文件

测试方式:将本地Host文件添加固定解析

文件路径:

C:\Windows\System32\drivers\etc\host

WAF创建后的IP,52.130.147.62 路由规则的主机名sinotest.com。

在这里插入图片描述

在这里插入图片描述

然后在网页 输入域名 看可以正常访问不,返回结果如下:

在这里插入图片描述

在这里插入图片描述

收益体会

1,通过这次案例/实验,明白了如何创建及配置WAF,也在学习中更加了解了Web
应用程序防火墙的多种功能,例如为 Web
应用程序提供集中保护,使其免受常见攻击和漏洞的侵害。

2,还有Web 应用程序已逐渐成为利用常见已知漏洞的恶意攻击的目标。
这些攻击中最常见的攻击包括 SQL 注入攻击、跨站点脚本攻击等。
防止应用程序代码中的此类攻击颇具挑战性,可能需要在应用程序拓扑的多个层进行严格的维护、修补和监视。
集中式 Web
应用程序防火墙有助于大幅简化安全管理,为抵卸威胁或入侵的应用程序管理员提供更好的保障。
相较保护每个单独的 Web 应用程序,WAF
解决方案还可通过在中央位置修补已知漏洞,更快地响应安全威胁。
可将现有应用程序网关轻松转换为支持 Web 应用程序防火墙的应用程序网关。

常见问题

  1. 问题:
    升级WAF到WAF v2关联NSG报错,WAF v2
    无法关联网络安全组,在子网处关联安全组报错,报错信息如下:未能保存子网“waf2.0”

    解决方案:

    根据官方文档,WafV2要求NSG中放行来自internet的这些流量:65200-65535
    https://docs.azure.cn/zh-cn/application-gateway/configuration-overview已成功关联。

  2. 问题:
    如何在WAF上限制访问IP?

    解决方案:

    如何禁止特定IP访问对于39.153.xx.xx
    的限制,您可以在appgw的子网上添加NSG,来限制特定地址对应WAF的访问。
    https://docs.azure.cn/zh-cn/application-gateway/configuration-overview

  3. 问题:
    如何在生产环境官方网站应用或者虚拟机出现故障不可用后,实现自动切换维护页面。

    解决方法:

    可以利用WAF 错误页进行自动切换维护页面

    a) 将维护页面存放至Azure 存储账户内;

    在这里插入图片描述

    b) 调整WAF侦听器错误页URL 在这里插入图片描述

    c) 验证,当将后端VM内业务停止,重新载入页面。页面跳转至错误页
    在这里插入图片描述

  4. 问题:
    WAF近期无日志产生,如何排查?

    解决方法:

    WAF日志存储在LA内,按照时间段查询无数据产生。通过7日内数据显示发现数据时间为24—26日。没有后五天的数据。一般对于App
    GW无法生成日志的问题,需要检查以下几项,全部满足后,正常情况下就可以生成日志了。

    a) 是否有自定义SSL策略,如果未选择如下三个,无法正常同步
        "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
        "TLS_RSA_WITH_AES_256_CBC_SHA256",
        "TLS_RSA_WITH_AES_128_CBC_SHA256"
       
       b)是否有关联NSG
           目前新增两个service tag “AzureCloud”和“GatewayManager”,是平台的一些管理IP如果出站规则deny去往internet的流量,是无法正常同步日志的。在不修改deny
            internet的情况下,至少allow 去往这两个tag的流量,才能在Jarvis里查到日志
         
      c)通过查看以上两点都没有问题,可以尝试重启AppGW(通过powershell可以重启agent)但是如果重启会导致业务中断。
    
  5. 问题:
    如何查看APPGW-WAF 流量

    解决方案:
    查看WAF的流量,有如下两种方式:

    1.  通过Performance
        Log查看,WAF可以开启诊断日志,PerformanceLog中记录了网关的吞吐量,参考:<https://docs.azure.cn/zh-cn/application-gateway/application-gateway-diagnostics>
    
    2.  可以直接在门户查看网关的“吞吐量” 指标
    
    
    3、通过查看以上两点都没有问题,可以尝试重启AppGW(通过powershell可以重启agent)但是如果重启会导致业务中断。
    
  6. 问题:
    如何查看APPGW-WAF 流量

    解决方案:
    查看WAF的流量,有如下两种方式:

        1.  通过Performance
            Log查看,WAF可以开启诊断日志,PerformanceLog中记录了网关的吞吐量,参考:<https://docs.azure.cn/zh-cn/application-gateway/application-gateway-diagnostics>
    
        2.  可以直接在门户查看网关的“吞吐量” 指标
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值