Azure WAF防火墙工作原理分析和配置向导
Azure WAF工作原理分析和配置向导
本文博客地址为:http://www.cnblogs.com/taosha/p/6716434.html ,转载请保留出处,多谢!
本地数据中心往云端迁移的的趋势越来越明显,安全始终是最热门的话题之一。
本文讨论的内容是Azure WAF,即微软公有云Azure的Web application firewall(下均简称WAF)。内容概述:
- 什么是WAF
- Azure WAF功能和特点
- Azure WAF的工作原理
- 一步步配置WAF
- 什么是WAF
随着互联网的进一步发展,Web应用大行其道,承载了客户越来越多的应用,甚至各种核心应用,针对Web应用的"掘金行动"也越来越多,网上报道的各类受攻击事件呈直线上升趋势。WAF全称Web application firewall,就是网站应用程序防火墙,顾名思义是专门针对Web应用的防火墙,这是一个细分领域的针对性防火墙。
- Azure WAF功能和特点
微软在云端提供了WAF功能,目前这个功能还仅仅在海外版提供使用,国内21V的版本还没有提供,不过海外有了,国内估计也快了,确实客户的刚性需求摆在这里呢。
WAF不仅仅只是防御Web的http访问,可以对Web应用做到全方位的立体防护。可以防范:
- 常见的命令注入攻击,利用网页漏洞将含有操作系统或软件平台命令注入到网页访问语句中以盗取数据或后端服务器的控制权
- SQL 注入,找到数据查询语句漏洞,通过数据库查询代码窃取或修改数据库中的数据
- 跨站脚本攻击,利用网站漏洞攻击访问该站点的用户,用户登陆或认证信息;
- 各种HTTP 协议攻击,利用http的协议漏洞进行攻击;
- 机器人、 爬虫和扫描,通过机器人,爬虫,和扫描工具自动抓取网站数据以及对网站进行自动攻击;
- 常见的应用程序配置错误 (如 Apache、 IIS 等),利用Web发布程序的配置漏洞或者已知bug进行攻击
- HTTPS攻击,使用SSL加密包绕过网络防火墙和普通的WAF进行攻击;
总结:微软WAF使用开源的通用OWASP规则包进行防范,目前支持CRS 2.2.9和CRS 3.0两个版本的规则集。可以支持:

CRS规则集详细内容参见:https://www.modsecurity.org/crs/以及https://docs.microsoft.com/en-us/azure/application-gateway/application-gateway-crs-rulegroups-rules
注意:Azure数据中心自带防DDOS攻击,所以WAF没有防DDOS攻击的能力。
Azure WAF的特点是配置简单,功能强大,价格便宜;还可以将现有Application gateway快速升级为WAF。
- Azure WAF的工作原理
这里要理解一下微软WAF的设计理念,专有名词和相关限制,这样在后面配置时就比较清晰。
从网络拓扑上来看,WAF是应用程序网关的一种,位置介于负载均衡器和后端服务器组之间,工作在OSI网络堆栈的最高层--第七层,如下图:

WAF可以分为前端捕获,规则设置和监控(大脑),规定动作(监控or阻断),日志存储/监控展现四大部分,这四个部分在Azure WAF都有一一对应处理单元如下图:

前端端口是前端流量入口点,绑定规则的监听器则负责将流量导向不同的后端服务器池,Azure WAF提供两种动作,一种是监控,即发现非法流量仅做记录;第二种是保护,发现非法流量后会拦截该流量,仅允许合法流量通过WAF;每个后端服务器池提供一个Web应用服务;
理解上文的专有名词,(吐槽一下各种名词多多,很容易搞晕)
- 台服务器,一个WAF最大支持20个后端服务器池;
- Back-end server pool settings/后端服务器池设置:每个服务器池单独设置端口,协议等,注意配置会应用在该后端池的所有服务器上,针对不同应用建议设置不同的后端池;
- Front-end port/前端端口:设置应用网关上的公共IP,所有流量通过这个IP进入网关,再由网关重定向到后端服务器池;注意一个WAF只有一个公网前端和内网前端;
- 个监听器;所有流量都必须经过监听器处理;可以设置多个监听器监听不同端口或者不同协议的流量;
- 条规则;规则有三个要素:监听器名,后端服务器池,http协议及端口设置。只有知道这些要素WAF才知道该把HTTP/HTTPS(也许是非缺省端口)流量导向哪一个后端服务器池。
- Certificates/认证: 使用Https的时候会用到。
4、一步步配置Azure WAF
理论已经讲明白了,接下来配置非常简单,可以按照如下顺序配置:
第一步,首先你得先有个WAF,登陆Azure Global Portal在Application Gateway(应用程序网关)创建WAF;创建完成后如下图,前端IP已经自动生成了;

第二步,配置WAF;

选择开启防火墙,防火墙模式就是动作模式,有两种,选择Detection监测模式,会记录流量,不会阻断非法流量;选择Prevention会主动阻断非法流量;
第三步,配置后端服务器池,

后端服务器池就是Web应用服务器的IP或者域名,可以有多个后端池;在规则设置中区分流量导向哪个后端服务器池;
第四步,配置Http协议和端口

我们前面提到过规则的三要素,前端,后端,http配置,这里可以配置端口,如果你后端服务器池用的不是通用的80端口,这里一定要做一下配置;这里也可以设置HTTP or HTTPS。
第五步,配置监听器;

如上图,针对不同端口的流量要用不同的监听器进行监听,一个WAF可以配置最大20个监听器;
第六步,配置规则,

如果了解了WAF的工作原理,理解规则就非常容易,如前文所述,规则绑定在监听器上,根据流量的类型和端口再将流量导向到指定的后端服务器池,如下图所示,

到此为止,WAF就已经配置完成了,是不是非常简单,但是可以为您的Web应用加上全方位的保护,这下终于可以安心的睡个觉了。
结尾:Azure WAF功能非常强大,不但支持Web应用的安全防护,还可以支持多站点流量分发(一个WAF最大20个站点),还支持将站点不同内容比如图片PIC,视频Video等根据需要导向到不同的后端服务器等等,有这么强大的WAF您还在等什么,微软云海外用户可以赶紧用起来啦。
Azure WAF防火墙工作原理分析和配置向导的更多相关文章
- SPI协议及工作原理分析
说明.文章摘自:SPI协议及其工作原理分析 http://blog.csdn.net/skyflying2012/article/details/11710801 一.概述. SPI, Serial ...
- Hadoop生态圈-Zookeeper的工作原理分析
Hadoop生态圈-Zookeeper的工作原理分析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 无论是是Kafka集群,还是producer和consumer都依赖于Zoo ...
- 原理剖析-Netty之服务端启动工作原理分析(下)
一.大致介绍 1.由于篇幅过长难以发布,所以本章节接着上一节来的,上一章节为[原理剖析(第 010 篇)Netty之服务端启动工作原理分析(上)]: 2.那么本章节就继续分析Netty的服务端启动,分 ...
- getaddrinfo工作原理分析
getaddrinfo工作原理分析 将域名解析成ip地址是所有涉及网络通讯功能程序的基本步骤之一,常用的两个接口是gethostbyname和getaddrinfo,而后者是Posix标准推荐在新应用 ...
- Security:蠕虫的行为特征描述和工作原理分析
________________________ 参考: 百度文库---蠕虫的行为特征描述和工作原理分析 http://wenku.baidu.com/link?url=ygP1SaVE4t4-5fi ...
- Nginx 反向代理工作原理简介与配置详解
Nginx反向代理工作原理简介与配置详解 by:授客 QQ:1033553122 测试环境 CentOS 6.5-x86_64 nginx-1.10.0 下载地址:http://nginx. ...
- iptables防火墙工作原理
iptables防火墙工作原理 简介:iptables防火墙工作在网络层,针对TCP/IP数据包实施过滤和限制,iptables防火墙基于内核编码实现,具有非常稳定的性能和高效率: iptables属 ...
- AQS工作原理分析
AQS工作原理分析 一.大致介绍1.前面章节讲解了一下CAS,简单讲就是cmpxchg+lock的原子操作:2.而在谈到并发操作里面,我们不得不谈到AQS,JDK的源码里面好多并发的类都是通过Sy ...
- zookeeper工作原理、安装配置、工具命令简介
1.Zookeeper简介 Zookeeper 是分布式服务框架,主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理等等. 2.zo ...
随机推荐
- c#基础——for循环嵌套经典练习题(打★)
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 作业题1 ...
- connect函数的用法
无论流式套接字(如TCP)还是数据报(如UDP),均可以使用connect函数.对于流式套接字,使用connect函数后,建立固定地址的连接,之后可以使用send/rev函数进行数据收发.对于数据报, ...
- Bat小试牛刀
前天版本发布后同事才发现有点小瑕疵,当然这是前期的设计和测试没到位造成的.撇开这些不说,我想说的是知识面广一点,做起事情来可能更得心应手些. 大致是这样的,由于版本的迭代,导致发布的程序只能清除一部分 ...
- 使用postfix在debian上配置邮件服务器
如果debian中安装了exim4,先卸载exim4: apt-get remove exim4 安装postfix apt-get install postfix 安装完成后就可以测试下,PHP代码 ...
- spring exception
Spring MVC异常处理SimpleMappingExceptionResolver[转] (2012-12-07 13:45:33) 转载▼ 标签: 杂谈 分类: 技术分享 Spring3.0中 ...
- HTML确认密码
html确认密码 今天准备分享一个小知识点,就是确认登录界面 <body ><form>输入户名: <input type="text" name ...
- 1339 / 1163: [Baltic2008]Mafia
1163: [Baltic2008]Mafia Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 96 Solved: 60[Submit][Statu ...
- 使用Intellij Idea自定义MVC框架
---恢复内容开始--- 今天我学习了自定义一个简单的MVC框架,这个我们首先要知道什么是MVC框架! MVC框架: MVC全名是Model View Controller,是模型(model)-视图 ...
- 添加swagger api文档到node服务
swagger,一款api测试工具,详细介绍参考官网:http://swagger.io/ ,这里主要记录下怎么将swagger api应用到我们的node服务中: 1.任意新建node api项目, ...
- Cordova框架基本原理
最近在做混编项目,也是从项目里开始接触Cordova框架,网上很多帖子都总结的很好,我还是要总结一下,便于加深一下. Cordova框架是一个可以让JS与原生代码(包括 Android 的 java, ...