Web額外配置(小迪網路安全筆記~

19999er發表於2024-12-04

附:完整筆記目錄~
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. 實驗三結束

相關文章