用途:php
防止sql注入,本地包含,部分溢出,fuzzing測試,xss,×××F等web*** 防止svn/備份之類文件泄漏 防止ApacheBench之類壓力測試工具的*** 屏蔽常見的掃描***工具,掃描器 屏蔽異常的網絡請求 屏蔽圖片附件類目錄php執行權限 防止webshell上傳
1.下載並解壓luajit 2.0.5
wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz
tar -zxvf LuaJIT-2.0.5.tar.gz
cd LuaJIT-2.0.5
make install PREFIX=/data/luajit(選本身的目錄)
2.軟鏈接
ln -s /usr/local/luajit/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2
3.下載並解壓ngx_devel_kit
wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz
tar -zxvf v0.3.0.tar.gz
4.下載並解壓lua-nginx-module
wget https://github.com/openresty/lua-nginx-module/archive/v0.10.14rc3.tar.gz
tar -zxvf v0.10.14rc3.tar.gz
5.編譯安裝nginx
①下載依賴包
yum install -y gcc gcc-c++ wget git geoip-devel gd-devel pcre-deve libcurl-devel libxml2 libxml2-devel libgd-devel openssl-devel
②下載nginx包
wget http://nginx.org/download/nginx-1.15.2.tar.gz
③編譯安裝(目錄看對了 選本身的目錄)
./configure \
--prefix=/data/nginx \
--error-log-path=/var/log/php-fpm/error.log \
--http-log-path=/phpstudy/server/nginx/logs/access.log \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_image_filter_module \
--with-http_geoip_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_degradation_module \
--with-http_slice_module \
--with-http_stub_status_module \
--with-pcre \
--with-pcre-jit \
--with-stream \
--with-stream_ssl_module \
--with-debug \
--add-module=/data/ngx_devel_kit-0.3.0 \
--add-module=/data/lua-nginx-module-0.10.14rc3 \
--with-ld-opt="-Wl,-rpath,$LUAJIT_LIB" ;
(報錯的話 本身百度找問題 都有答案及詳解的)
④編譯安裝
make && make install
6.將waf功能模塊,解壓後重命名爲waf(並移動到nginx的配置目錄下)
mv /data/ngx_lua_waf-0.7.2/ waf
cp -rf /data/waf/ /data/nginx/conf/
7.修改waf模塊的規則配置路徑
8.vim /data/nginx/conf/waf/config.lua
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~~]]
--警告內容,可在中括號內自定義
備註:不要亂動雙引號,區分大小寫html
9.修改nginx的配置文件使其加載waf功能模塊,並加載博客的nginx配置文件
vim /data/nginx/conf/nginx.conf
http裏面添加以下
lua_package_path "/data/nginx/conf/waf/config.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;
10.啓動nginx設置開機啓動
systemctl start nginx.service
systemctl enable nginx.service
11.建立nginx軟鏈接
ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
12.http://你的IP/test.php?id=../etc/passwd
nginx
這樣就成功了!!!c++