OpenResty安裝使用教程(CentOS 6)


一、安裝OpenResty

Linux官方建議直接通過官方提供的預編譯包安裝:http://openresty.org/cn/linux-packages.html

# 確保yum周邊工具已經安裝
yum install yum-utils -y
# 添加倉庫
yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
# 安裝openresty
yum install openresty -y

openresty默認安裝在/usr/local/openresty,其中已自帶nginx。

 

二、使用安全規則ngx_lua_waf

2.1 ngx_lua_waf介紹

我不明白為什么很多軟件不提供默認配置,比較很多暴力破解軟件不提供弱口令文件snort有段時間也不提供默認規則,openresty也不提供默認規則。

不過還好有人自己寫了規則分享出來:https://github.com/loveshell/ngx_lua_waf

 

2.2 ngx_lua_waf加載到nginx

下載規則文件:

git clone https://github.com/loveshell/ngx_lua_waf.git
mv ngx_lua_waf/ /usr/local/openresty/nginx/conf/waf

糾正nginx位置。因為該規則庫默認nginx安裝在/usr/local/nginx,我們需要編緝config.lua糾正nginx位置,主要是RulePath和logdir兩項:

RulePath = "/usr/local/openresty/nginx/conf/waf/wafconf/"
logdir = "/usr/local/openresty/nginx/logs/hack/"

創建攔截日志文件目錄。上面我們設置攔截日志文件目錄為/usr/local/openresty/nginx/logs/hack/但該目錄尚未存在需要事先創建,且需要賦權給nobody不然沒法寫:

mkdir /usr/local/openresty/nginx/logs/hack/
chown -R nobody:nobody hack/

加載規則。編緝/usr/local/openresty/nginx/conf/nginx.conf,在http{}內server{}前加入:

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

使用-t確認配置沒有錯誤:

 

三、攔截效果測試

默認只對.php和.jsp文件進行規則檢測,但因為是先進行規則檢測后進行查詢文件是否存在,所以雖然當前nginx沒有反向代理php和jsp也沒有php和jsp文件但這兩個都不用管。

但要注意默認對來自本機的請求是不進行規則過濾的,所以不要在安裝OpenResty的機器上curl http://127.0.0.1/test.php?id=../etc/passwd半天,然后說規則怎么沒生效。

啟動nginx后在另外一台機器上訪問(192.168.220.133是我安裝OpenResty的機器的ip),效果如下:

進入攔截日志目錄檢看攔截記錄如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM