Azure WAF工作原理分析和配置向导

本文博客地址为:http://www.cnblogs.com/taosha/p/6716434.html ,转载请保留出处,多谢!

本地数据中心往云端迁移的的趋势越来越明显,安全始终是最热门的话题之一。

本文讨论的内容是Azure WAF,即微软公有云Azure的Web application firewall(下均简称WAF)。内容概述:

  1. 什么是WAF
  2. Azure WAF功能和特点
  3. Azure WAF的工作原理
  4. 一步步配置WAF
  1. 什么是WAF

随着互联网的进一步发展,Web应用大行其道,承载了客户越来越多的应用,甚至各种核心应用,针对Web应用的"掘金行动"也越来越多,网上报道的各类受攻击事件呈直线上升趋势。WAF全称Web application firewall,就是网站应用程序防火墙,顾名思义是专门针对Web应用的防火墙,这是一个细分领域的针对性防火墙。

  1. 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。

  1. 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防火墙工作原理分析和配置向导的更多相关文章

  1. SPI协议及工作原理分析

    说明.文章摘自:SPI协议及其工作原理分析 http://blog.csdn.net/skyflying2012/article/details/11710801 一.概述. SPI, Serial ...

  2. Hadoop生态圈-Zookeeper的工作原理分析

    Hadoop生态圈-Zookeeper的工作原理分析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   无论是是Kafka集群,还是producer和consumer都依赖于Zoo ...

  3. 原理剖析-Netty之服务端启动工作原理分析(下)

    一.大致介绍 1.由于篇幅过长难以发布,所以本章节接着上一节来的,上一章节为[原理剖析(第 010 篇)Netty之服务端启动工作原理分析(上)]: 2.那么本章节就继续分析Netty的服务端启动,分 ...

  4. getaddrinfo工作原理分析

    getaddrinfo工作原理分析 将域名解析成ip地址是所有涉及网络通讯功能程序的基本步骤之一,常用的两个接口是gethostbyname和getaddrinfo,而后者是Posix标准推荐在新应用 ...

  5. Security:蠕虫的行为特征描述和工作原理分析

    ________________________ 参考: 百度文库---蠕虫的行为特征描述和工作原理分析 http://wenku.baidu.com/link?url=ygP1SaVE4t4-5fi ...

  6. Nginx 反向代理工作原理简介与配置详解

    Nginx反向代理工作原理简介与配置详解   by:授客  QQ:1033553122   测试环境 CentOS 6.5-x86_64 nginx-1.10.0 下载地址:http://nginx. ...

  7. iptables防火墙工作原理

    iptables防火墙工作原理 简介:iptables防火墙工作在网络层,针对TCP/IP数据包实施过滤和限制,iptables防火墙基于内核编码实现,具有非常稳定的性能和高效率: iptables属 ...

  8. AQS工作原理分析

      AQS工作原理分析 一.大致介绍1.前面章节讲解了一下CAS,简单讲就是cmpxchg+lock的原子操作:2.而在谈到并发操作里面,我们不得不谈到AQS,JDK的源码里面好多并发的类都是通过Sy ...

  9. zookeeper工作原理、安装配置、工具命令简介

    1.Zookeeper简介 Zookeeper 是分布式服务框架,主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理等等. 2.zo ...

随机推荐

  1. 第一章 初始java

    一.单词 public:公共的          static:静态的        void:空的          class:类       print:打印     line:排    pro ...

  2. 利用cropper插件裁剪本地图片,然后将裁剪过后的base64图片上传至七牛云空间

    现在做的项目需要做一些图片处理,由于时间赶急,之前我便没有处理图片,直接将图片放在input[type=file]里面,以文件的形式提交给后台,这样做简直就是最低级的做法,之后各种问题便出来了,人物头 ...

  3. SQL server 数据库(视图、事物、分离附加、备份还原))

    ql Server系列:视图.事物.备份还原.分离附加  视图是数据库中的一种虚拟表,与真实的表一样,视图包含一系列带有名称的行和列数据.行和列数据用来自定义视图的查询所引用的表,并且在引用视图时动态 ...

  4. idea 中设置成公司规范的代码格式

    优雅的编码格式是一个程序员的必备素质. 最近切换到了 idea,想对自己的代码进行格式化的时候希望能自动排版成公司规定的格式,可以做以下设置: 打开 idea 的 preference: 左侧找到 c ...

  5. 浅析Content Negotation在Nancy的实现和使用

    背景介绍 什么是Content Negotation呢?翻译成中文的话就是"内容协商".当然,如果不清楚HTTP规范(RFC 2616)的话,可以对这个翻译也是一头雾水. 先来看看 ...

  6. java中的对象

    对象                     --计算机语言中的对象 通常,我们可以从一般事物的三个方面,去认识事物: 一.是什么? 二.为什么? 三.怎么样? 接下来,我们也利用这三个方面的思维,去 ...

  7. SQL AlawaysOn 之三:SQL服务器加入域

    声明:由于第一篇,配置域服务器,用的是别人的图,所以那个IP并不是我的. 至此为止,我的域控制器IP为192.168.8.230 域名为:dataserver.com 约定的SQL1  IP为192. ...

  8. JavaScript入门必备

    1.JavaScript和Java没有关系,JavaScript是一门(客服端)脚本语言,并且是一个解释性语言. 2.添加JavaScript的方法 (1)内联:通过<script>js代 ...

  9. 解决华为手机不打印Log信息的问题

    在之前安装了Android Studio后,发现了一个很苦恼的事情,就是在程序中的写Log语句,不能正常的在Logcat中打印出来,这对于解决程序bug真是一刀切断,让人无从下手,在各种尝试后,首先我 ...

  10. 用async 解放你的大脑

    在js中,代码嵌套和代码回调非常常见,不仅编写麻烦而且异常反人类.让我等码农很是头痛 function () {     function () {         function () {     ...