Web额外配置
附:完整笔记目录~
ps:本人小白,笔记均在个人理解基础上整理,若有错误欢迎指正!
1.1.3 Web额外配置
- 
引子:本篇主要介绍Web服务常用到的一些额外配置,如负载均衡、反向代理、CDN、OSS、WAF等。个人觉得本章衔接于第一节后好一些,但迪总把其放在第三节讲,那就依迪总思路来吧。
 - 
负载均衡
- 概念:简单来说,负载均衡是将用户的请求分散到多个服务器上,这些服务器会部署相同业务系统并共享同一数据。由于这种设计,1. 可对服务器进行分流。2. 若某一服务器损坏并不影响业务系统的正常运行。
 - 影响:用户对业务系统进行访问时,会依据配置访问不同的服务器,从而导致访问ip不唯一。
 
 - 
反向代理
- 概念:有反向代理那就一定会有正向代理,先介绍一下什么是正向代理吧。正向代理代表客户端向目标服务器发起请求,一般常用于访问客户端无法直接访问的资源,如梯子。而反向代理则代表服务端去处理来自客户端的请求,即与客户端交互的仅是反向代理而非后端Web服务器。
 - 影响:用户访问带有反向代理服务的Web系统时,实际处理用户请求为反向代理ip。
 
 - 
CDN
- 
概念:CDN(Content Delivery Network 内容分发网络),各地区都会有其自己CDN服务器,而CDN服务器会缓存配置了CDN服务Web系统的静态资源(HTML、CSS、图片、视频等)。当用户尝试访问配置CDN服务的Web时,会优先访问距离其最近的CDN服务器,由CDN服务器将内容返回给用户。
注:若用户存在交互行为,则仍由后端Web服务器处理而非CDN服务器。
 - 
影响:用户对开启CDN服务的Web进行访问时,实际处理用户请求ip为距离其最近的CDN服务器ip。
 
 - 
 - 
OSS
- 
概念:OSS(Object Storage Service 对象存储服务),即云存储服务。传统存储服务由硬盘实现,数据存放于本地,而云存储服务则将数据存储于云服务商所提供云端。
 - 
影响:
用户向目标服务器上传文件,若其文件为脚本文件。传统存储服务会将脚本文件保存至其Web服务器上,由于服务器上配置了脚本解析环境,则当用户访问其上传文件时会默认解析该脚本。
而使用OSS,由于OSS仅提供存储服务,而无任何额外环境配置。当访问使用OSS存储的文件资源时,会默认下载该文件而非解析。众所周知,所有的后门文件只有当服务器解析后才能连接,而OSS服务则彻底杜绝了文件上传漏洞。更何况OSS存储的文件在云服务商而非目标服务器。
 
 - 
 - 
WAF
- 
概念:WAF(Web Application Firewall Web应用防火墙),为保护Web应用程序设计的安全设备或服务,通过分析http/https流量检测并拦截来自用户/攻击者的恶意行为。
 - 
类别
- 
硬件WAF:物理设备,支持串/并行部署。华为的硬件waf嘛,长的跟1u交换机挺像。
 - 
软件WAF:顾名思义,以软件形式部署。如雷池
 - 
云WAF:由云服务商所提供。如阿里云WAF。
注:所有类别WAF若想起到对Web攻击的防护作用,均需将WAF配置于Web服务前,由流量先经过WAF再转发给Web服务器,与用户进行直接交互的始终为WAF。
是不是感觉有些熟悉呢,没错,一般情况下,WAF均是作为反向代理接入整个网络中。
 
 - 
 
 - 
 - 
实验
- 
实验内容
- 通过Nginx分别实现Web服务的负载均衡&反向代理。
 - 使用Clouddreve分别配置本地存储&云存储服务。
 - 为Webgoat靶场部署雷池WAF,并观察WAF的拦截效果。
 
 - 
通过Nginx分别实现Web服务的负载均衡&反向代理。
- 
使用宝塔面板安装Nginx(宝塔安装见上一篇)
 - 
创建一个站点并为bilibili做反向代理

 - 
访问反向代理ip,并观察返回结果

 - 
实验一结束(ps:负载均衡没做出来,跟我没注册域名有关系吗?有会的师傅可以教教我🙏)
 
 - 
 - 
使用Clouddreve分别配置本地存储&云存储服务。
- 
Clouddreve:云盘系统,既能将各种文件存于本地(Clouddreve uploads目录下),也能连接OSS将数据存储于云上。(项目地址:https://github.com/cloudreve/Cloudreve)
 - 
下载安装并打开Clouddreve管理面板(5212端口下)
 - 
默认本地存储,尝试上传图片

 - 
开通OSS服务,通过Cloudreve面板配置OSS。

 - 
再次上传文件

文件被上传至OSS
 - 
尝试对上传至OSS的文件进行访问

 - 
实验二结束
 
 - 
 - 
为Webgoat靶场部署雷池WAF,并观察WAF的拦截效果。
- 
使用docker部署WebGoat
sudo apt update sudo apt install docker.io sudo systemctl start docker sudo docker pull webgoat/webgoat-8.0 sudo docker run -d -p 8080:8080 webgoat/webgoat-8.0 # 浏览器输入xxx.xxx.xxx.xxx:8080/WebGoat访问 - 
部署雷池,并将WebGoat加入防护
# 一句话命令自动安装雷池 bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)" # 注:由于该命令会再次安装docker及其组件,导致之前已经打开的WebGoat容器会被关闭,需重新打开。 # emmm...服务器要是已存在docker服务,为避免不必要的bug还是建议手动安装吧,可参考雷池官网。 # 默认部署端口:9443

 - 
尝试进行SQL注入攻击
攻击者页面

雷池运维者页面

 - 
实验三结束
 
 - 
 
 - 
 

                
            
        
浙公网安备 33010602011771号