摘         要    

本指南描述如何利用京东云Web应用防火墙(简称WAF),对一个简单的网站(无论运行在京东云、其它公有云或者IDC)进行Web完全防护的全过程。该指南包括如下内容:

准备环境

在京东云上准备Web网站

购买京东云Web应用防火墙实例

配置Web应用防火墙

增加Web应用防火墙实例的网站配置

在云平台放行WAF回源IP

本地验证配置

修改域名解析配置

测试Web防护效果

发起正常访问

发起异常攻击

分析安全报表

准备环境

 1 

在京东云上准备Web网站

在京东云上选择CentOS系统创建一台云主机,分配公网IP,安装Nginx,并在域名解析服务上配置域名和IP的映射。具体的Web应用信息如下:

 1# 操作系统信息2[root@waf-demo ~]# cat /etc/redhat-release 3CentOS Linux release 7.6.1810 (Core) 45# 安装dig命令,该命令可显示域名的解析情况6bash7[root@waf-demo ~]#  yum install bind-utils -y8[root@waf-demo ~]# dig -v9DiG 9.9.4-RedHat-9.9.4-72.el7
10
11# Nginx服务信息
12[root@waf-demo ~]# service nginx status
13Redirecting to /bin/systemctl status nginx.service
14● nginx.service - The nginx HTTP and reverse proxy server
15   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
16...

在配置完域名和公网IP映射后,通过dig命令可获得域名解析情况。

1[root@waf-demo ~]$ dig waf-demo.jdcoe.top +trace
2...
3waf-demo.jdcoe.top.    60  IN  A   114.67.85.98
4;; Received 63 bytes from 153.99.179.161#53(ns2.jdgslb.com) in 13 ms

通过互联网远程访问该Web网站。

 1MacBook:~ user001$ curl http://waf-demo.jdcoe.top -I2HTTP/1.1 200 OK3Server: nginx/1.12.24Date: Mon, 24 Dec 2018 03:22:21 GMT5Content-Type: text/html6Content-Length: 37007Last-Modified: Tue, 06 Mar 2018 09:26:21 GMT8Connection: keep-alive9ETag: "5a9e5ebd-e74"
10Accept-Ranges: bytes

 2 

购买京东云Web应用防火墙实例

进入京东云控制台,点击云安全, Web应用防火墙, 套餐购买, 进入"Web应用防火墙 - 购买“界面,选择需要企业版套餐(每种套餐规格请参考套餐详情)。具体的购买界面如下图:

在购买完成后,将在实例管理界面中看到所购买的实例信息。

配置Web应用防火墙

在使用京东云Web应用防火墙保护网站前,需要完成下列配置,才能实现用户提交的HTTP/HTTPS访问请求通过Web应用防火墙检测后,再发送到Web网站。

 1 

配置Web应用防火墙实例的防护网站

在Web应用防火墙界面,点击网站配置,添加网站, 在下面界面中输入相关配置信息。

界面参数具体描述如下:

域名:输入需要保护的网站的域名;

  • 协议:缺省选择HTTP,如果网站支持HTTPS,则选择HTTPS,并选择SSL证书;

  • 服务器地址:网站的IP;

  • 服务器端口:网站的访问端口;

  • 是否已使用代理:缺省选择"否",但如果网站还使用了IP高防服务,也就是访问请求来自于IP高防,则应选择“是";

  • 负载均衡算法:当配置多个源站IP,WAF在将过滤后的访问请求回源时,将按照IP Hash或轮询的方式去做负载均衡。

新创建的网站配置的防护设置是处于关闭状态,需要点击防护配置链接进入配置界面。

在网站防护配置界面中,设置Web应用攻击防护状态为On模式为防护,防护规则策略等级为严格。设置CC安全防护状态为On,模式为正常。

 2 

本地验证配置

在网站配置列表界面中,能获得为被防护网站生成的CNAME。针对域名“waf-demo.jdcoe.top",生成的WAF CNAME是waf-demo.jdcoe.top-15f08249c274.jdcloudwaf.com.

通过执行ping命令,能获得Web应用防火墙的IP地址为101.124.23.163。

1MacBook:etc user001$ ping waf-demo.jdcoe.top-15f08249c274.jdcloudwaf.com
2PING waf-demo.jdcoe.top-15f08249c274.jdcloudwaf.com (101.124.23.163): 56 data bytes
364 bytes from 101.124.23.163: icmp_seq=0 ttl=49 time=57.525 ms
4^C
5--- waf-demo.jdcoe.top-15f08249c274.jdcloudwaf.com ping statistics ---
61 packets transmitted, 1 packets received, 0.0% packet loss
7round-trip min/avg/max/stddev = 57.525/57.525/57.525/0.000 ms

应用安全网站不允许通过生成的CNAME或者IP地址进行访问,如果直接访问,将报“Bad Request“错误。

1MacBook:etc user001$ curl waf-demo.jdcoe.top-15f08249c274.jdcloudwaf.com
2<h1> Bad Request </h1>MacBook:etc user001$
3MacBook:etc user001$ curl 101.124.23.163
4<h1> Bad Request </h1>MacBook:etc user001$ 

修改本机IP地址101.124.23.163和域名waf-demo.jdcoe.top的映射,在Linux下,域名配置文件为/etc/hosts。

1101.124.23.163  waf-demo.jdcoe.top

然后在本地执行如下命令“curl waf-demo.jdcoe.top -I”,将在显示Server是jfe,表明已经通过Web应用防火墙。

 1MacBook:~ user001$ curl waf-demo.jdcoe.top -I2HTTP/1.1 200 OK3Server: jfe4Date: Mon, 24 Dec 2018 07:12:03 GMT5Content-Type: text/html6Content-Length: 37007Connection: keep-alive8Last-Modified: Tue, 06 Mar 2018 09:26:21 GMT9ETag: "5a9e5ebd-e74"
10Accept-Ranges: bytes

此时,看Web的访问日志,将看到如下信息,表明请求已经通过Web应用防火墙,然后转发到Web源站。

1101.124.23.116 - - [24/Dec/2018:15:12:04 +0800] "HEAD / HTTP/1.0" 200 0 "-" "curl/7.54.0" "117.136.0.210"

 3 

在云平台放行WAF回源IP

在对源站配置了WAF服务后,源站原则上只能接收来自WAF的转发请求。网站云主机最初的安全组配置如下,这样任何客户端都可以直接访问Web网站。

通过curl命令能直接访问Web网站。

 1MacBook:~ user001$ curl 114.67.85.98 -I2HTTP/1.1 200 OK3Server: nginx/1.12.24Date: Mon, 24 Dec 2018 07:20:08 GMT5Content-Type: text/html6Content-Length: 37007Last-Modified: Tue, 06 Mar 2018 09:26:21 GMT8Connection: keep-alive9ETag: "5a9e5ebd-e74"
10Accept-Ranges: bytes

京东云WAF服务所采用的IP地址为如下:

1101.124.31.248/30
2101.124.23.116/30
314.116.246.0/29
4103.40.15.0/29 

因此需要在安全组中删除允许所有源IP都可访问Web网站的规则,并增加允许上述地址段可以访问Web网站的规则。修改后的安全组配置信息如下图:

这样Web网站将只接收来自WAF的请求,而不能直接访问。

 1# 不能直接访问源站2MacBook:~ user001$ curl 114.67.85.98 -I3^C4# 可以通过WAF服务访问源站5MacBook:~ user001$ curl waf-demo.jdcoe.top -I6HTTP/1.1 200 OK7Server: jfe8Date: Mon, 24 Dec 2018 07:52:19 GMT9Content-Type: text/html
10Content-Length: 3700
11Connection: keep-alive
12Last-Modified: Tue, 06 Mar 2018 09:26:21 GMT
13ETag: "5a9e5ebd-e74"
14Accept-Ranges: bytes

 4 

修改域名解析配置

最后,需要在域名解析上修改原域名的解析规则,下面是京东云的云解析为例,配置域名waf-demo.jdcoe.top的CNAME为 waf-demo.jdcoe.top-15f08249c274.jdcloudwaf.com。

最后删除本机域名和IP地址的静态映射,然后执行dig命令,将看到为域名waf-demo.jdcoe.top配置的CNAME。

1[root@waf-demo ~]# dig waf-demo.jdcoe.top +trace
2...
3waf-demo.jdcoe.top.    60  IN  CNAME   waf-demo.jdcoe.top-15f08249c274.jdcloudwaf.com.
4;; Received 107 bytes from 59.37.144.32#53(ns1.jdgslb.com) in 28 ms

测试Web防护效果

 1 

发起正常访问

在一台机器上正常访问页面,能获得正常响应,同时在Web网站上能看到访问日志。

 1[root@jdcoe-bastion ~]# curl waf-demo.jdcoe.top/index.html -I2HTTP/1.1 200 OK3Server: jfe4Date: Mon, 24 Dec 2018 08:35:24 GMT5Content-Type: text/html6Content-Length: 37007Connection: keep-alive8Last-Modified: Tue, 06 Mar 2018 09:26:21 GMT9ETag: "5a9e5ebd-e74"
10Accept-Ranges: bytes

Nginx网站访问日志

1101.124.31.248 - - [24/Dec/2018:16:35:24 +0800] "HEAD /index.html HTTP/1.0" 200 0 "-" "curl/7.29.0" "114.67.95.131"

 2 

发起异常攻击

下面模拟一个"文件读取/包含攻击",也就是说在HTTP请求中包含读取特定的系统问题。在无WAF防护的情况下,Web网站将返回如下信息:

1[root@waf-demo ~]# curl localhost/index.html/etc/passwd -I
2HTTP/1.1 404 Not Found
3Server: nginx/1.12.2
4Date: Mon, 24 Dec 2018 08:37:15 GMT
5Content-Type: text/html
6Content-Length: 3650
7Connection: keep-alive
8ETag: "5a9e5ebd-e42"

但是如果通过WAF防护,WAF将检测出请求中包含了对敏感文件访问,因此阻止该访问请求。

1[root@jdcoe-bastion ~]# curl waf-demo.jdcoe.top/index.html/etc/passwd -I
2HTTP/1.1 403 Forbidden
3Server: jfe
4Date: Mon, 24 Dec 2018 08:37:22 GMT
5Content-Type: text/html
6Content-Length: 162
7Connection: keep-alive

 3 

安全分析报表

京东云WAF将根据配置阻断非法的HTTP请求,并通过安全报表获得攻击的来源和攻击类型的相关信息。下图是WAF实例下的waf-demo.jdcoe.top网站的防护报告。

环境清理

本指南会用到云主机、公网带宽和Web应用防火墙等收费资源。如果购买时采用按配置计费,建议删除资源。

总结:

本指南介绍了如何利用Web应用防火墙实现一个网站的安全防护。通过Web应用防火墙对HTTP/HTTPS请求的检测和过滤,减少因应用安全漏洞所造成的信息泄漏风险。

每一次分享,都是在为你想要的世界投票▼

干货 | 利用京东云Web应用防火墙实现Web入侵防护相关推荐

  1. 干货 | 使用京东云搭建视频直播网站

    视频直播是指利用互联网及流媒体技术进行直播,视频因融合了图像.文字.声音等丰富元素,声形并茂,效果极佳,逐渐成为互联网的主流表达方式.视频通过真实.生动的传播,营造出强烈的现场感,吸引眼球,达成印象深 ...

  2. 京东云擎 php,利用京东云擎架设免费Wordpress 博客(git方式)

    京东云擎(JAE)是京东推出的一款公有云产品,是京东云平台生态圈的核心组成部分.与百度的BAE.新浪的SAE同样,可是JAE刚上线不久,可能非常多人都还没听说过或不太了解.我尝试在JAE安装WordP ...

  3. 京东 你访问的页面需要验证证书_硬干货!京东云域名注册及备案操作指南

    域名注册 浏览器访问https://www.jdcloud.com/cn/activity/domain,选择是个自己的域名,本文以".com"为例: 域名查询: 域名具有全球唯一 ...

  4. 阿里云安全ACP认证试验之阿里云Web应用防火墙接入体验

    实验概述 越来越多的公司出于对成本和效率的考量,将业务部署在网站上.主机和网络的漏洞,给一些恶意访问提供了可乘之机,盗取网站的信息.比如:发生在2014年的索尼影业黑客入侵事件,黑客组织"和 ...

  5. 京东云php环境配置,干货 | 京东云应用负载均衡(ALB)多功能实操

    应用负载均衡(Application Load Balancer,简称ALB)是京东云自主研发的一款七层负载均衡产品,主要面向HTTP和HTTPS流量的WEB应用程序,提供灵活的功能配置.应用负载均衡 ...

  6. 什么是腾讯云web应用防火墙?有哪些优势以及适用于什么场景?

    腾讯云 Web 应用防火墙(Web Application Firewall,WAF)是一款基于 AI 的一站式 Web 业务运营风险防护方案.沉淀了腾讯云安全大数据检测能力和 19 年自营业务 We ...

  7. 实力再获认可! 华为云Web应用防火墙进入国内主流安全产品名录

    近日,华为云打造的明星安全服务--华为云Web应用防火墙(Web Application Firewall,简称WAF)得到业界认可,入选国内知名第三方安全机构FreeBuf推出的"国内主流 ...

  8. 如何使用腾讯云web应用防火墙结合API网管提供安全防护?

    腾讯云 Web 应用防火墙(Web Application Firewall,WAF)帮助腾讯云内及云外用户应对 Web 攻击.入侵.漏洞利用.挂马.篡改.后门.爬虫等网站及 Web 业务安全防护问题 ...

  9. 腾讯云Web应用防火墙有什么用?Web应用防火墙是防御原理介绍

    腾讯云Web应用防火墙有什么用?Web应用防火墙是防御原理介绍 腾讯云 Web 应用防火墙是一款专业为网站及 Web 服务的一站式智能防护平台,帮助企业组织应对网站及 Web 业务面临的 Bot 爬虫 ...

最新文章

  1. 【阿里云课程】分组网络原理,结构发展及设计改进
  2. Linux Crontab 定时任务 及 Ubuntu 中cron指令使用
  3. 公益图书馆-学习笔记五-jquery来动态设置div高度
  4. 解决SQLServer占用80端口问题
  5. P5459 [BJOI2016]回转寿司
  6. python opencv 找到圆点标定板所有点后通过距离找四个角点
  7. SpringBoot整合RabbitMQ之Fanout Exchange扇形(广播式)交换机(学习总结)
  8. mysql中事务开启语法_MySQL执行事务的语法和流程
  9. 深蓝词库转换2.0发布——支持仓颉、注音、五笔、郑码、二笔等
  10. 医院管理系统/医院药品管理系统
  11. python进制转换函数
  12. 44个路由器知识要点
  13. Linux磁盘扩容的操作
  14. 基于单片机的北斗定位无人机救火系统(两种程序:单片机与android系统app程序源码)
  15. java文件中搜索的快捷键_MyEclipse中的查找快捷键
  16. 上海浦东新区计算机学校排名2015,最新2015浦东新区初中排名 分为四个档次
  17. 2020 年 12 月编程语言排行榜
  18. 百度地图和百度飞桨招聘CV算法实习生
  19. migrate出错时处理
  20. Matlab求一元函数极值

热门文章

  1. DBR分区表详解(FAT)
  2. 松下伺服电机uvw接线图_伺服电机uvw对应相线颜色分析
  3. 【Java我最强】最值得Java人反复精读的15本好书(附电子书)
  4. 布林通道参数用20还是26_期货boll参数20还是26好,期货的布林线设置成什么参数好...
  5. Java静和动的静部分半成品
  6. 车联网永远不乏追风者
  7. 使用smote模块,ValueError: Expected n_neighbors <= n_samples, but n_samples = 2, n_neighbors = 4
  8. 【差分约束系统】【最短路】【spfa】CDOJ1646 穷且益坚, 不坠青云之志。
  9. <2021SC@SDUSC>【Overload游戏引擎】OvCore源码模块分析(二)—— ESC
  10. 【GNSS】中国卫星导航系统管理办公室测试评估研究中心