干货 | 利用京东云Web应用防火墙实现Web入侵防护
摘 要
本指南描述如何利用京东云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入侵防护相关推荐
- 干货 | 使用京东云搭建视频直播网站
视频直播是指利用互联网及流媒体技术进行直播,视频因融合了图像.文字.声音等丰富元素,声形并茂,效果极佳,逐渐成为互联网的主流表达方式.视频通过真实.生动的传播,营造出强烈的现场感,吸引眼球,达成印象深 ...
- 京东云擎 php,利用京东云擎架设免费Wordpress 博客(git方式)
京东云擎(JAE)是京东推出的一款公有云产品,是京东云平台生态圈的核心组成部分.与百度的BAE.新浪的SAE同样,可是JAE刚上线不久,可能非常多人都还没听说过或不太了解.我尝试在JAE安装WordP ...
- 京东 你访问的页面需要验证证书_硬干货!京东云域名注册及备案操作指南
域名注册 浏览器访问https://www.jdcloud.com/cn/activity/domain,选择是个自己的域名,本文以".com"为例: 域名查询: 域名具有全球唯一 ...
- 阿里云安全ACP认证试验之阿里云Web应用防火墙接入体验
实验概述 越来越多的公司出于对成本和效率的考量,将业务部署在网站上.主机和网络的漏洞,给一些恶意访问提供了可乘之机,盗取网站的信息.比如:发生在2014年的索尼影业黑客入侵事件,黑客组织"和 ...
- 京东云php环境配置,干货 | 京东云应用负载均衡(ALB)多功能实操
应用负载均衡(Application Load Balancer,简称ALB)是京东云自主研发的一款七层负载均衡产品,主要面向HTTP和HTTPS流量的WEB应用程序,提供灵活的功能配置.应用负载均衡 ...
- 什么是腾讯云web应用防火墙?有哪些优势以及适用于什么场景?
腾讯云 Web 应用防火墙(Web Application Firewall,WAF)是一款基于 AI 的一站式 Web 业务运营风险防护方案.沉淀了腾讯云安全大数据检测能力和 19 年自营业务 We ...
- 实力再获认可! 华为云Web应用防火墙进入国内主流安全产品名录
近日,华为云打造的明星安全服务--华为云Web应用防火墙(Web Application Firewall,简称WAF)得到业界认可,入选国内知名第三方安全机构FreeBuf推出的"国内主流 ...
- 如何使用腾讯云web应用防火墙结合API网管提供安全防护?
腾讯云 Web 应用防火墙(Web Application Firewall,WAF)帮助腾讯云内及云外用户应对 Web 攻击.入侵.漏洞利用.挂马.篡改.后门.爬虫等网站及 Web 业务安全防护问题 ...
- 腾讯云Web应用防火墙有什么用?Web应用防火墙是防御原理介绍
腾讯云Web应用防火墙有什么用?Web应用防火墙是防御原理介绍 腾讯云 Web 应用防火墙是一款专业为网站及 Web 服务的一站式智能防护平台,帮助企业组织应对网站及 Web 业务面临的 Bot 爬虫 ...
最新文章
- 【阿里云课程】分组网络原理,结构发展及设计改进
- Linux Crontab 定时任务 及 Ubuntu 中cron指令使用
- 公益图书馆-学习笔记五-jquery来动态设置div高度
- 解决SQLServer占用80端口问题
- P5459 [BJOI2016]回转寿司
- python opencv 找到圆点标定板所有点后通过距离找四个角点
- SpringBoot整合RabbitMQ之Fanout Exchange扇形(广播式)交换机(学习总结)
- mysql中事务开启语法_MySQL执行事务的语法和流程
- 深蓝词库转换2.0发布——支持仓颉、注音、五笔、郑码、二笔等
- 医院管理系统/医院药品管理系统
- python进制转换函数
- 44个路由器知识要点
- Linux磁盘扩容的操作
- 基于单片机的北斗定位无人机救火系统(两种程序:单片机与android系统app程序源码)
- java文件中搜索的快捷键_MyEclipse中的查找快捷键
- 上海浦东新区计算机学校排名2015,最新2015浦东新区初中排名 分为四个档次
- 2020 年 12 月编程语言排行榜
- 百度地图和百度飞桨招聘CV算法实习生
- migrate出错时处理
- Matlab求一元函数极值
热门文章
- DBR分区表详解(FAT)
- 松下伺服电机uvw接线图_伺服电机uvw对应相线颜色分析
- 【Java我最强】最值得Java人反复精读的15本好书(附电子书)
- 布林通道参数用20还是26_期货boll参数20还是26好,期货的布林线设置成什么参数好...
- Java静和动的静部分半成品
- 车联网永远不乏追风者
- 使用smote模块,ValueError: Expected n_neighbors <= n_samples, but n_samples = 2, n_neighbors = 4
- 【差分约束系统】【最短路】【spfa】CDOJ1646 穷且益坚, 不坠青云之志。
- <2021SC@SDUSC>【Overload游戏引擎】OvCore源码模块分析(二)—— ESC
- 【GNSS】中国卫星导航系统管理办公室测试评估研究中心