一山不容二虎?雷池WAF和寶塔皮膚共存部署

↗℡.Koen↘發表於2024-04-22

網際網路上的攻擊和掃描流量非常多,為了保證網站安全,在網站之前新增WAF防護是必要的。之前有了解過寶塔雲WAF,但需要獨立的一臺伺服器來部署,架構不夠靈活,對於個人使用者來說成本太高了。後來在微信公眾號上看到簡單好用的Web安全閘道器-雷池這篇文章,得知了雷池WAF,基於Nginx開發,以反向代理方式接入,部署架構靈活,可以與WEB服務部署在同一臺伺服器(官方不推薦),是一款廣受好評的社群WAF專案。不過在網站管理上,許多個人使用者都是透過寶塔皮膚進行管理,寶塔皮膚的Nginx預設監聽埠為80和443,這就導致共存部署時雷池WAF預設無法監聽80和443埠,那怎麼辦呢?本文將根據未新增WAF之前源站的監聽埠分情況進行介紹。

說明
寶塔皮膚雷池WAF的安裝本文不進行贅述,官網上都有詳細的說明。

說明
以下情況分類的依據:

  1. 只考慮雷池WAF和寶塔皮膚共存部署的情況
  2. 新增WAF前後站點的訪問協議、域名/IP、埠保持不變

源站監聽非80/443埠


修改寶塔皮膚站點埠

  1. 在“網站”中找到對應的站點,單擊右側的“設定

  1. 切換到“配置檔案”,修改監聽埠為其他非佔用埠,單擊“儲存

雷池WAF新增站點

  1. 在“防護站點” > “站點管理”中單擊“新增站點

  1. 如下圖所示填寫站點資訊,單擊“提交”完成站點新增

填寫項 說明
域名 [選填]如果有域名,填寫站點域名即可
[必填]填寫監聽埠,不可與源站埠一致
SSL 站點協議為HTTP時不勾選;站點協議為HTTPS時勾選,並選擇站點證書
上游伺服器 [必填]填寫源站的URL地址(協議+IP+埠)
備註 [選填]自定義站點備註資訊

源站監聽80埠(HTTP)


修改寶塔皮膚Nginx 80埠

  1. 在“網站”中找到對應的站點,單擊右側的“設定

  1. 切換到“配置檔案”,修改HTTP預設監聽埠為其他非佔用埠,單擊“儲存

  1. 在“網站”中單擊“Nginx1.X.X”開啟Nginx管理視窗

  1. 切換到“配置修改”,下滑配置檔案內容到底部,找到include指令,找到Nginx引入的配置檔案路徑,例如/www/server/panel/vhost/nginx/

  1. SSH登入伺服器,進入/www/server/panel/vhost/nginx/,分別編輯0.default.confphpfpm_status.conf檔案,將預設監聽埠修改為其他非佔用埠,最後儲存退出
server
{
    listen 81;    # 預設監聽埠80,修改為其他非佔用埠
...
}
  1. 在“網站”中單擊“過載”使配置生效

雷池WAF新增站點

  1. 在“防護站點” > “站點管理”中單擊“新增站點

  1. 如下圖所示填寫站點資訊,單擊“提交”完成站點新增

填寫項 說明
域名 [選填]如果有域名,填寫站點域名即可
[必填]填寫監聽埠為80
SSL 不勾選
上游伺服器 [必填]填寫源站的URL地址(協議+IP+埠)
備註 [選填]自定義站點備註資訊

源站監聽443埠(HTTPS)


這種情況可以有以下兩種配置方式

  • 方式一:雷池WAF HTTPS --> 寶塔站點 HTTPS
  • 方式二:雷池WAF HTTPS --> 寶塔站點 HTTP

方式一 雷池WAF HTTPS --> 寶塔站點 HTTPS

修改寶塔皮膚Nginx 443埠

  1. 在“網站”中找到對應的站點,單擊右側的“設定

  1. 切換到“配置檔案”,修改HTTPS預設監聽埠為其他非佔用埠,單擊“儲存

雷池WAF新增站點

  1. 在“防護站點” > “證書管理”中單擊“新增證書

  1. 選擇“上傳已有證書”,填寫證書和私鑰內容,最後單擊“提交”完成證書新增

說明
如果域名還沒有證書,也可以選擇“申請免費證書”申請Let's Encrypt的證書

  1. 在“防護站點” > “站點管理”中單擊“新增站點

  1. 如下圖所示填寫站點資訊,單擊“提交”完成站點新增

填寫項 說明
域名 [選填]如果有域名,填寫站點域名即可
[必填]填寫監聽埠為443
SSL 勾選並選擇剛新增的證書
上游伺服器 [必填]填寫源站的URL地址(協議+IP+埠),協議一定要寫https://
備註 [選填]自定義站點備註資訊

說明
配置完後訪問站點如果提示“顯示站點重定向次數過多”,將寶塔站點的“強制HTTPS”選項關閉再試試

方式二 雷池WAF HTTPS --> 寶塔站點 HTTP

關閉寶塔皮膚站點HTTPS

  1. 在“網站”中找到對應的站點,單擊右側的“設定

  1. 切換到“SSL”,單擊“關閉SSL

  1. 切換到“配置檔案”,修改HTTP預設監聽埠為其他非佔用埠,單擊“儲存

雷池WAF新增站點

  1. 在“防護站點” > “證書管理”中單擊“新增證書

  1. 選擇“上傳已有證書”,填寫證書和私鑰內容,最後單擊“提交”完成證書新增

說明
如果域名還沒有證書,也可以選擇“申請免費證書”申請Let's Encrypt的證書

  1. 在“防護站點” > “站點管理”中單擊“新增站點

  1. 如下圖所示填寫站點資訊,單擊“提交”完成站點新增

填寫項 說明
域名 [選填]如果有域名,填寫站點域名即可
[必填]填寫監聽埠為443
SSL 勾選並選擇剛新增的證書
上游伺服器 [必填]填寫源站的URL地址(協議+IP+埠)
備註 [選填]自定義站點備註資訊

相關文章