ngx_lua_waf nginx防火墻安裝操作手冊

ngx_lua_waf是一個基于lua-nginx-module(openresty)的web應(yīng)用防火墻,主要用途是:

防止sql注入憎兽,本地包含冷离,部分溢出,fuzzing測試纯命,xss,SSRF等web攻擊
防止svn/備份之類文件泄漏
防止ApacheBench之類壓力測試工具的攻擊
屏蔽常見的掃描黑客工具西剥,掃描器
屏蔽異常的網(wǎng)絡(luò)請求
屏蔽圖片附件類目錄php執(zhí)行權(quán)限
防止webshell上傳

具體情況可訪問作者的github了解,這里不多說亿汞,本文主要記錄部署實施的操作步驟:

  1. yum安裝git瞭空、gcc等編譯環(huán)境
# yum -y install git
# yum -y install gcc gcc-c++
  1. 下載軟件包
# cd /home/soft
# git clone https://github.com/simpl/ngx_devel_kit.git
# git clone https://github.com/openresty/lua-nginx-module.git
# wget -c http://luajit.org/download/LuaJIT-2.0.5.tar.gz

有的地方訪問git被墻,我這里下載好的介質(zhì)用也行:
鏈接:https://pan.baidu.com/s/1XlRaFV1Mlu-0ysrbK5uQGQ 密碼:idsv

  1. 安裝Luajit
# tar -xzf LuaJIT-2.0.5.tar.gz
# cd LuaJIT-2.0.5
# make && make install

驗證安裝成功:

# luajit -v
驗證luajit安裝
  1. 導(dǎo)入環(huán)境變量
# vim /etc/profile
#如果按照上面操作留夜,則路徑如下匙铡,如果不是,則可能不一樣
export LUAJIT_LIB=/usr/local/lib  
export LUAJIT_INC=/usr/local/include/luajit-2.0
# source /etc/profile
# echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig
  1. 編譯安裝nginx

5.1 查看當(dāng)前nginx版本和編譯參數(shù)

# nginx -V 

5.2 編譯安裝lua-nginx-module和ngx_dev_kit模塊

# cd /home/soft/nginx-1.11.3
# ./configuer --with-pcre=../pcre-8.35 --with-zlib=../zlib-1.2.8 --with-openssl=../openssl-fips-2.0.13 --add-module=/home/soft/lua-nginx-module --add-module=/home/soft/ngx_devel_kit

即在原有模塊參數(shù)后增加 lua-nginx-module 和 ngx_devel_kit 模塊

# make
# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak  
# cp objs/nginx /usr/local/nginx/sbin/  
# nginx -s reload  

注意碍粥,生產(chǎn)環(huán)境做任何操作都應(yīng)備份為先鳖眼,因此重新編譯nginx時應(yīng)先對舊的nginx可執(zhí)行文件進(jìn)行備份,以便于如果出問題后進(jìn)行回滾操作嚼摩,基于這個理由钦讳,增加模塊的時候不要直接使用make install矿瘦,而是手動cp過去

5.3 lua-nginx-module模塊的檢驗

在/usr/local/nginx/conf/nginx.conf中加入以下內(nèi)容并保存:

server{
......
    location /hello { 
          default_type 'text/plain'; 
          content_by_lua 'ngx.say("hello, lua")'; 
    }
}
# /usr/local/nginx/sbin/nginx -s reload

訪問 ip/hello,出現(xiàn)如下結(jié)果愿卒,說明安裝成功:

  1. 安裝并配置ngx_lua_waf
# cd /usr/local/nginx/conf/
# git clone https://github.com/loveshell/ngx_lua_waf.git
# mv ngx_lua_waf/ waf
# mkdir ../logs/hack
# chmod -R 755 ../logs/hack/

修改config.lua的文件路徑

vim waf/config.lua 
#config.lua在/usr/local/nginx/conf/waf內(nèi)
#RulePath是存放規(guī)則文件的路徑
RulePath = "/usr/local/nginx/conf/waf/wafconf/"
attacklog = "on"
#日志存放路徑
logdir = "/usr/local/nginx/logs/hack/"
UrlDeny="on"
Redirect="on"
CookieMatch="on"
postMatch="on"
whiteModule="on"
black_fileExt={"php","jsp"}
ipWhitelist={"127.0.0.1"}
ipBlocklist={"1.0.0.1"}
CCDeny="off"
CCrate="100/60"
html=[[
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>網(wǎng)站防火墻</title>
<style>
p {
        line-height:20px;
}
ul{ list-style-type:none;}
li{ list-style-type:none;}
</style>

在nginx.conf的http段中添加配置

# vim nginx.conf
lua_need_request_body on;
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;

重新加載nginx缚去,ok

# nginx -t
# nginx -s reload

嘗試訪問ip/.svn,得到如下結(jié)果即可認(rèn)為配置成功:


  1. 日志的定時刪除
    由于日志是每天都在按照日期增加的琼开,所以為了便于管理易结,這里增加了防護(hù)日志的清理功能:
# vim /home/trs/clean_ngx_waf_lua.sh
#!/bin/bash
#LOGS_PATH 是ngx_lua_waf的日志存放目錄
#這里只保留最近3天的日志
LOGS_PATH=/usr/local/nginx/logs/hack/
cd ${LOGS_PATH}
find . -mtime +3 -name "*sec.log" | xargs rm -f
exit 0
# chmod +x clean_ngx_waf_lua.sh

將以上的日志做一個定時執(zhí)行:

#crontab -e
### clean ngx_waf_lua logs
1 0 * * * /home/trs/clean_ngx_waf_lua.sh
  1. 關(guān)于config.lua的配置說明
#規(guī)則存放目錄
RulePath = "/usr/local/nginx/conf/waf/wafconf/"
#是否開啟攻擊信息記錄,需要配置logdir
attacklog = "off"
#log存儲目錄柜候,該目錄需要用戶自己新建搞动,切需要nginx用戶的可寫權(quán)限
logdir = "/usr/local/nginx/logs/hack/"
#是否攔截url訪問
UrlDeny="on"
#是否攔截后重定向 
Redirect="on"
#是否攔截cookie攻擊
CookieMatch = "on"
#是否攔截post攻擊
postMatch = "on" 
#是否開啟URL白名單
whiteModule = "on" 
#填寫不允許上傳文件后綴類型
black_fileExt={"php","jsp"}
#ip白名單,多個ip用逗號分隔
ipWhitelist={"127.0.0.1"}
#ip黑名單渣刷,多個ip用逗號分隔
ipBlocklist={"1.0.0.1"}
#是否開啟攔截cc攻擊(需要nginx.conf的http段增加lua_shared_dict limit 10m;)
CCDeny="on"
#設(shè)置cc攻擊頻率鹦肿,單位為秒.
#默認(rèn)1分鐘(60秒)同一個IP只能請求同一個地址100次
CCrate = "100/60"
#警告內(nèi)容,可在中括號內(nèi)自定義
html=[[Please go away~~]]
 
# 備注:不要亂動雙引號,區(qū)分大小寫
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末辅柴,一起剝皮案震驚了整個濱河市箩溃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌碌嘀,老刑警劉巖涣旨,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異股冗,居然都是意外死亡开泽,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進(jìn)店門魁瞪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人惠呼,你說我怎么就攤上這事导俘。” “怎么了剔蹋?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵旅薄,是天一觀的道長。 經(jīng)常有香客問我泣崩,道長少梁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任矫付,我火速辦了婚禮凯沪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘买优。我一直安慰自己妨马,他們只是感情好挺举,可當(dāng)我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著烘跺,像睡著了一般湘纵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上滤淳,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天梧喷,我揣著相機(jī)與錄音,去河邊找鬼脖咐。 笑死铺敌,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的文搂。 我是一名探鬼主播适刀,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼煤蹭!你這毒婦竟也來了笔喉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤硝皂,失蹤者是張志新(化名)和其女友劉穎常挚,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體稽物,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡奄毡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了贝或。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吼过。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖咪奖,靈堂內(nèi)的尸體忽然破棺而出盗忱,到底是詐尸還是另有隱情,我是刑警寧澤羊赵,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布趟佃,位于F島的核電站,受9級特大地震影響昧捷,放射性物質(zhì)發(fā)生泄漏闲昭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一靡挥、第九天 我趴在偏房一處隱蔽的房頂上張望序矩。 院中可真熱鬧,春花似錦跋破、人聲如沸贮泞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽啃擦。三九已至囊蓝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間令蛉,已是汗流浹背聚霜。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留珠叔,地道東北人蝎宇。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像祷安,于是被迫代替她去往敵國和親姥芥。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,947評論 2 355