Web额外配置

附:完整笔记目录~
ps:本人小白,笔记均在个人理解基础上整理,若有错误欢迎指正!

1.1.3 Web额外配置

  1. 引子:本篇主要介绍Web服务常用到的一些额外配置,如负载均衡、反向代理、CDN、OSS、WAF等。个人觉得本章衔接于第一节后好一些,但迪总把其放在第三节讲,那就依迪总思路来吧。

  2. 负载均衡

    1. 概念:简单来说,负载均衡是将用户的请求分散到多个服务器上,这些服务器会部署相同业务系统并共享同一数据。由于这种设计,1. 可对服务器进行分流。2. 若某一服务器损坏并不影响业务系统的正常运行。
    2. 影响:用户对业务系统进行访问时,会依据配置访问不同的服务器,从而导致访问ip不唯一。
  3. 反向代理

    1. 概念:有反向代理那就一定会有正向代理,先介绍一下什么是正向代理吧。正向代理代表客户端向目标服务器发起请求,一般常用于访问客户端无法直接访问的资源,如梯子。而反向代理则代表服务端去处理来自客户端的请求,即与客户端交互的仅是反向代理而非后端Web服务器。
    2. 影响:用户访问带有反向代理服务的Web系统时,实际处理用户请求为反向代理ip。
  4. CDN

    1. 概念:CDN(Content Delivery Network 内容分发网络),各地区都会有其自己CDN服务器,而CDN服务器会缓存配置了CDN服务Web系统的静态资源(HTML、CSS、图片、视频等)。当用户尝试访问配置CDN服务的Web时,会优先访问距离其最近的CDN服务器,由CDN服务器将内容返回给用户。

      注:若用户存在交互行为,则仍由后端Web服务器处理而非CDN服务器。

    2. 影响:用户对开启CDN服务的Web进行访问时,实际处理用户请求ip为距离其最近的CDN服务器ip。

  5. OSS

    1. 概念:OSS(Object Storage Service 对象存储服务),即云存储服务。传统存储服务由硬盘实现,数据存放于本地,而云存储服务则将数据存储于云服务商所提供云端。

    2. 影响:

      用户向目标服务器上传文件,若其文件为脚本文件。传统存储服务会将脚本文件保存至其Web服务器上,由于服务器上配置了脚本解析环境,则当用户访问其上传文件时会默认解析该脚本。

      而使用OSS,由于OSS仅提供存储服务,而无任何额外环境配置。当访问使用OSS存储的文件资源时,会默认下载该文件而非解析。众所周知,所有的后门文件只有当服务器解析后才能连接,而OSS服务则彻底杜绝了文件上传漏洞。更何况OSS存储的文件在云服务商而非目标服务器。

  6. WAF

    1. 概念:WAF(Web Application Firewall Web应用防火墙),为保护Web应用程序设计的安全设备或服务,通过分析http/https流量检测并拦截来自用户/攻击者的恶意行为。

    2. 类别

      1. 硬件WAF:物理设备,支持串/并行部署。华为的硬件waf嘛,长的跟1u交换机挺像。

      2. 软件WAF:顾名思义,以软件形式部署。如雷池

      3. 云WAF:由云服务商所提供。如阿里云WAF。

        注:所有类别WAF若想起到对Web攻击的防护作用,均需将WAF配置于Web服务前,由流量先经过WAF再转发给Web服务器,与用户进行直接交互的始终为WAF。

        是不是感觉有些熟悉呢,没错,一般情况下,WAF均是作为反向代理接入整个网络中。

  7. 实验

    1. 实验内容

      1. 通过Nginx分别实现Web服务的负载均衡&反向代理。
      2. 使用Clouddreve分别配置本地存储&云存储服务。
      3. 为Webgoat靶场部署雷池WAF,并观察WAF的拦截效果。
    2. 通过Nginx分别实现Web服务的负载均衡&反向代理。

      1. 使用宝塔面板安装Nginx(宝塔安装见上一篇)

      2. 创建一个站点并为bilibili做反向代理

        image-20241121135511396

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

        image-20241121135427375

      4. 实验一结束(ps:负载均衡没做出来,跟我没注册域名有关系吗?有会的师傅可以教教我🙏)

    3. 使用Clouddreve分别配置本地存储&云存储服务。

      1. Clouddreve:云盘系统,既能将各种文件存于本地(Clouddreve uploads目录下),也能连接OSS将数据存储于云上。(项目地址:https://github.com/cloudreve/Cloudreve)

      2. 下载安装并打开Clouddreve管理面板(5212端口下)

      3. 默认本地存储,尝试上传图片

        image-20241121145102509

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

        image-20241121150644298

      5. 再次上传文件

        image-20241121152819740

        文件被上传至OSS

      6. 尝试对上传至OSS的文件进行访问

        image-20241121153212168

      7. 实验二结束

    4. 为Webgoat靶场部署雷池WAF,并观察WAF的拦截效果。

      1. 使用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访问
        
      2. 部署雷池,并将WebGoat加入防护

        # 一句话命令自动安装雷池
        bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/setup.sh)"
        # 注:由于该命令会再次安装docker及其组件,导致之前已经打开的WebGoat容器会被关闭,需重新打开。
        # emmm...服务器要是已存在docker服务,为避免不必要的bug还是建议手动安装吧,可参考雷池官网。
        # 默认部署端口:9443
        

        SafeLine

        image-20241121194600940

      3. 尝试进行SQL注入攻击

        攻击者页面

        image-20241121195316553

        雷池运维者页面

        image-20241121195522177

      4. 实验三结束

posted @ 2024-12-04 23:10  1999er  阅读(59)  评论(0)    收藏  举报