Skip to content
WONGCW 網誌
  • 首頁
  • 論壇
  • 微博
  • 壁紙下載
  • 免費圖床
  • 視頻下載
  • 聊天室
  • SEO工具
  • 支援中心
  • 表格製作
  • More
    • 在線名片
    • 網頁搜索
    • 天氣預報
    • 二維碼生成器
  • Search Icon

WONGCW 網誌

記錄生活經驗與點滴

NGINXweb應用防火牆–ngx_lua_waf

NGINXweb應用防火牆–ngx_lua_waf

2019-01-08 Comments 0 Comment

作者:春哥

GitHub:https://github.com/loveshell/ngx_lua_waf

ngx_lua_waf是一個基於lua-nginx-module(openresty)的web應用防火牆自2016年已經停止更新,下方有其他大佬更新的規則。

##ngx_lua_waf

ngx_lua_waf是我剛入職趣遊時候開發的一個基於ngx_lua的web應用防火牆。

代碼很簡單,開發初衷主要是使用簡單,高性能和輕量級。

現在開源出來,遵從MIT許可協議。其中包含我們的過濾規則。如果大家有什麼建議和想fa,歡迎和我一起完善。

###用途:

防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击
防止svn/备份之类文件泄漏
防止ApacheBench之类压力测试工具的攻击
屏蔽常见的扫描黑客工具,扫描器
屏蔽异常的网络请求
屏蔽图片附件类目录php执行权限
防止webshell上传

###推薦安裝:

推薦使用lujit2.1做lua支持

ngx_lua如果是0.9.2以上版本,建議正則過濾函數改為ngx.re.find,匹配效率會提高三倍左右。

###使用說明:

nginx安裝路徑假設為:/usr/local/nginx/conf/

把ngx_lua_waf下載到conf目錄下,解壓命名為waf

在nginx.conf的http段添加

	lua_package_path "/usr/local/nginx/conf/waf/?.lua";
    lua_shared_dict limit 10m;
    init_by_lua_file  /usr/local/nginx/conf/waf/init.lua; 
	access_by_lua_file /usr/local/nginx/conf/waf/waf.lua;

配置config.lua裡的waf規則目錄(一般在waf/conf/目錄下)

    RulePath = "/usr/local/nginx/conf/waf/wafconf/"

絕對路徑如有變動,需對應修改

然後重啟nginx即可

###配置文件詳細說明:

	RulePath = "/usr/local/nginx/conf/waf/wafconf/"
    --规则存放目录
    attacklog = "off"
    --是否开启攻击信息记录,需要配置logdir
    logdir = "/usr/local/nginx/logs/hack/"
    --log存储目录,该目录需要用户自己新建,切需要nginx用户的可写权限
    UrlDeny="on"
    --是否拦截url访问
    Redirect="on"
    --是否拦截后重定向
    CookieMatch = "on"
    --是否拦截cookie攻击
    postMatch = "on" 
    --是否拦截post攻击
    whiteModule = "on" 
    --是否开启URL白名单
    black_fileExt={"php","jsp"}
    --填写不允许上传文件后缀类型
    ipWhitelist={"127.0.0.1"}
    --ip白名单,多个ip用逗号分隔
    ipBlocklist={"1.0.0.1"}
    --ip黑名单,多个ip用逗号分隔
    CCDeny="on"
    --是否开启拦截cc攻击(需要nginx.conf的http段增加lua_shared_dict limit 10m;)
    CCrate = "100/60"
    --设置cc攻击频率,单位为秒.
    --默认1分钟同一个IP只能请求同一个地址100次
    html=[[Please go away~~]]
    --警告内容,可在中括号内自定义
    备注:不要乱动双引号,区分大小写

###檢查規則是否生效

部署完畢可以嘗試如下命令:

    curl http://xxxx/test.php?id=../etc/passwd
    返回"Please go away~~"字样,说明规则生效。

注意:默認,本機在白名單不過濾,可自行調整config.lua配置

效果圖如下:

###規則更新:

考慮到正則的緩存問題,動態規則會影響性能,所以暫沒用共享內存字典和redis之類東西做動態管理。

規則更新可以把規則文件放置到其他服務器,通過crontab任務定時下載來更新規則,nginx reload即可生效。以保障ngx lua waf的高性能。

只記錄過濾日誌,不開啟過濾,在代碼裡在check前面加上–註釋即可,如果需要過濾,反之

###一些說明:

过滤规则在wafconf下,可根据需求自行调整,每条规则需换行,或者用|分割

	args里面的规则get参数进行过滤的
	url是只在get请求url过滤的规则		
	post是只在post请求过滤的规则		
	whitelist是白名单,里面的url匹配到不做过滤		
	user-agent是对user-agent的过滤规则


默认开启了get和post过滤,需要开启cookie过滤的,编辑waf.lua取消部分--注释即可

日志文件名称格式如下:虚拟主机名_sec.log

修改版更新內容:

在春哥的基礎上加了封IP的時間(原版本為60/s,修改後可以自定義),還增加了不過濾搜索引擎。

Nginx_lua_waf用途:
防止sql注入,本地包含,部分溢出,fuzzing測試,xss,SSRF等web攻擊

防止svn/備份之類文件洩漏

防止ApacheBench之類壓力測試工具的攻擊

屏蔽常見的掃描黑客工具,掃描器

屏蔽異常的網絡請求

屏蔽圖片附件類目錄php執行權限

防止webshel​​l上傳

春哥原版規則:https://www.lanzous.com/i2t7r8d

修改版規則:https://www.lanzous.com/i2t7raf

使用說明:

nginx安裝路徑為:/usr/local/nginx/conf/ 把ngx_lua_waf下載到conf目錄下,解壓命名為waf

在nginx.conf的http段添加

lua_package_path “/usr/local/nginx/conf/waf/?.lua”; 
lua_shared_dict limit 10m; 
init_by_lua_file /usr/local/nginx/conf/waf/init.lua; 
access_by_lua_file /usr/local/nginx/conf/waf/ waf.lua; 
配置config.lua裡的waf規則目錄(一般在waf/conf/目錄下)

RulePath = “/usr/local/nginx/conf/waf/wafconf/” 
然後重啟nginx即可

service nginx restart 
配置文件詳細說明:
RulePath = “/usr/local/nginx/conf/waf/wafconf/” 
–規則存放目錄
attacklog = “off” 
–是否開啟攻擊信息記錄,需要配置logdir 
logdir = “/ usr/local/nginx/logs/hack/” 
–log存儲目錄,該目錄需要用戶自己新建,切需要nginx用戶的可寫權限
UrlDeny=”on” 
–是否攔截url訪問
Redirect=”on” 
–是否攔截後重定向
CookieMatch = “on” 
–是否攔截cookie攻擊
postMatch = “on” 
–是否攔截post攻擊
whiteModule = “on” 
–是否開啟URL白名單
black_fileExt={“php”,”jsp”} 
–填寫不允許上傳文件後綴類型
ipWhitelist={“127.0.0.1”} 
–ip白名單,多個ip用逗號分隔
ipBlocklist={“1.0.0.1”} 
–ip黑名單,多個ip用逗號分隔
CCDeny=”on”
–是否開啟攔截cc攻擊(需要nginx.conf的http段增加lua_shared_dict limit 10m;) 
CCrate = “100/60” 
–設置cc攻擊頻率,單位為秒. 
–默認1分鐘同一個IP只能請求同一個地址100次
DenySeconds=”360″ 
–原來攻擊被封默認60秒,這裡修改為自定義,我這設定為360秒(這裡是新加的)
html=[[Please go away~~] ] 
–警告內容,可在中括號內自定義

部署完畢可以嘗試如下命令:

curl http://xxxx/test.php?id=../etc/passwd 
返回”Please go away~~”字樣,說明規則生效。

注意:默認,本機在白名單不過濾,可自行調整config.lua配置

修改說明:
修改正則過濾函數改為ngx.re.find,匹配效率會提高三倍左右

增加封IP時間自定義控制

增加不過濾搜索引擎

分享此文:

  • 按一下即可分享至 X(在新視窗中開啟) X
  • 按一下以分享至 Facebook(在新視窗中開啟) Facebook
  • 分享到 WhatsApp(在新視窗中開啟) WhatsApp
  • 按一下以分享到 Telegram(在新視窗中開啟) Telegram
  • 分享到 Pinterest(在新視窗中開啟) Pinterest
  • 分享到 Reddit(在新視窗中開啟) Reddit
  • 按一下即可以電子郵件傳送連結給朋友(在新視窗中開啟) 電子郵件
  • 點這裡列印(在新視窗中開啟) 列印

相關


教學資源

Post navigation

PREVIOUS
馬雲現身金華共推義烏國際貿易綜合改革試驗區建設
NEXT
WordPress終極優化指南–合併CSS和Javascript

發表迴響取消回覆

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料。

More results...

Generic filters
Exact matches only
Search in title
Search in content
Search in excerpt
Filter by 分類
網站公告
Featured
限時免費
Windows 軟件下載
系統軟件
辦公軟件
圖像處理
影音媒體
網絡軟件
應用軟件
Mac 軟件下載
安卓軟件下載
網絡資訊
Mac資訊
Linux資訊
VPS資訊
NASA資訊
WordPress資訊
WeChat資訊
PHP資訊
教學資源
開源程序
網頁工具
SEO工具
醫療健康
其他資訊
Content from
Content to
2019 年 1 月
一 二 三 四 五 六 日
 123456
78910111213
14151617181920
21222324252627
28293031  
« 12 月   2 月 »

分類

  • 網站公告
  • 限時免費
  • Windows 軟件下載
  • 系統軟件
  • 辦公軟件
  • 圖像處理
  • 影音媒體
  • 網絡軟件
  • 應用軟件
  • Mac 軟件下載
  • 安卓軟件下載
  • 網絡資訊
  • Mac資訊
  • Linux資訊
  • VPS資訊
  • NASA資訊
  • WordPress資訊
  • WeChat資訊
  • PHP資訊
  • 教學資源
  • 開源程序
  • 網頁工具
  • SEO工具
  • 醫療健康
  • 其他資訊

彙整

近期文章

  • 哈伯捕捉到傾斜的螺旋星係其中充滿了早期恆星和發光氣體 2025-05-21
  • AMD官宣FSR重大更新帶來機器學習光線追蹤、幀生成等 2025-05-21
  • 兩倍大小,50倍能量天文學家揭示木星的原始歷史 2025-05-21
  • 黃仁勳:無法證明AI晶片違規走私到中國大陸幾乎無法追蹤 2025-05-21
  • Google Chrome 將能夠自動登入網站變更您的弱密碼 2025-05-21
  • 全新蔚來ET5/ET5T官圖發表:5月25日正式上市新增淡紫/月灰銀車漆 2025-05-21
  • 沃爾沃將率先在其車款中安裝Google Gemini 2025-05-21
  • Canalys:自研AP+外掛基帶是小米玄戒SoC發展最佳途徑 2025-05-21
  • 馬斯克再次痛批比爾蓋茲:他和性犯罪者來往密切不放心讓他給我看孩子 2025-05-21
  • 特斯拉車主紛紛安裝DIY拉繩避免事故時被全電動門圍困 2025-05-21

熱門文章與頁面︰

  • 微軟員工再次擾亂Satya Nadella 的主題演講
  • Google製作了專門針對UI設計的AI開發工具
  • 您可以在Windows 11 24H2 中找回WordPad
  • ROG NUC 2025迷你遊戲PC上市:Ultra 9 275HX+RTX 5080首發24999元
  • Red Hat Enterprise Linux 10 正式發布
  • Autodesk AutoCAD 2020.1 正式版-簡體中文/繁體中文/英文
  • 華為nova 14、MateBook Fold等17款新價格總表
  • 惠普收購Autonomy世紀詐欺案主謀被判無罪
  • 揭密蘋果製造工廠:每年的支出可以造兩艘航母
  • 新冠病毒又抬頭了嗎鐘南山發聲:沒必要恐慌預計6月底前結束

投遞稿件

歡迎各界人士投遞稿件到admin@wongcw.com

請提供以下資料:

1.你的名字

2.你的電郵

3.分類目錄

4.文章標題

5.文章摘要

6.文章內容

7.文章來源

 

聯繫我們

查詢,投稿,商務合作:
​admin@wongcw.com
​技術支援:
​support@wongcw.com
​客户服務:
​cs@wongcw.com

QQ群:833641851

快帆

MALUS

極度掃描

DMCA.com Protection Status

WONGCW 網誌

  • 免責聲明
  • 捐助我們
  • ThemeNcode PDF Viewer
  • ThemeNcode PDF Viewer SC
  • Events

服務器提供

本站使用之服務器由ikoula提供。

聯繫我們

查詢,投稿,商務合作:
​admin@wongcw.com
​技術支援:
​support@wongcw.com
​客户服務:
​cs@wongcw.com

QQ群:833641851

© 2025   All Rights Reserved.