寶塔面板在 6.x 之前的版本中自帶了 Nginx 防火牆功能(Nginx管理 > 過濾器),到了 6.x 之后,,,為了推行收費版的防火牆插件,寶塔官方把這個免費的防火牆入口給隱藏了。今天,就來說說如何開啟這個隱藏的 Nginx 防火牆!
方法
1、進入寶塔面板,打開 軟件管理 > Nginx > 設置 > 配置修改;
2、找到大約在第 13 行的 #include luawaf.conf;
,去掉前面的 # 符號(“#”代表注釋),保存並重啟 Nginx。
3、恭喜你,已經成功開啟了防火牆!可以試着訪問 http://你的網址/?id=../etc/passwd,頁面會彈出攔截提示,如下圖:

那么問題來了:該怎么自定義這個防火牆的防護規則呢?
答案還是在寶塔面板里面,打開面板的文件管理,進入 /www/server/nginx/waf 目錄,里面的 config.lua
文件就是防火牆的配置文件。每一項的具體含義如下所示:
RulePath = "/www/server/panel/vhost/wafconf/" --waf 詳細規則存放目錄(一般無需修改)
attacklog = "on" --是否開啟攻擊日志記錄(on 代表開啟,off 代表關閉。下同)
logdir = "/www/wwwlogs/waf/" --攻擊日志文件存放目錄(一般無需修改)
UrlDeny="on" --是否開啟惡意 url 攔截
Redirect="on" --攔截后是否重定向
CookieMatch="off" --是否開啟惡意 Cookie 攔截
postMatch="off" --是否開啟 POST 攻擊攔截
whiteModule="on" --是否開啟 url 白名單
black_fileExt={"php","jsp"} --文件后綴名上傳黑名單,如有多個則用英文逗號分隔。如:{"后綴名1","后綴名2","后綴名3"……}
ipWhitelist={"127.0.0.1"} --白名單 IP,如有多個則用英文逗號分隔。如:{"127.0.0.1","127.0.0.2","127.0.0.3"……} 下同
ipBlocklist={"1.0.0.1"} --黑名單 IP
CCDeny="off" --是否開啟 CC 攻擊攔截
CCrate="300/60" --CC 攻擊攔截閾值,單位為秒。"300/60" 代表 60 秒內如果同一個 IP 訪問了 300 次則拉黑
配置文件中,RulePath
項對應的文件夾里存放的是具體的攔截規則。打開這個文件夾,可以看到里面有一些無后綴名的規則文件。
其中每一個文件的作用如下:
args --GET 參數攔截規則
blockip --無作用
cookie --Cookie 攔截規則
denycc --無作用
post --POST 參數攔截規則
returnhtml --被攔截后的提示頁面(HTML)
url --url 攔截規則
user-agent --UA 攔截規則
whiteip --無作用
whiteurl --白名單網址
這些文件里,除了 returnhtml(攔截提示頁面)以外,其它的內容都最好不要隨意改動,除非你正則學的比較好否則很容易改出問題來。
如果改動了其中的內容,需要要重啟 Nginx 才會生效
本文參與騰訊雲自媒體分享計划,歡迎正在閱讀的你也加入,一起分享。