Centos7安装Openresty通过yum安装
在 /etc/yum.repos.d/ 下新建 OpenResty.repo 内容
[openresty]
name=Official OpenResty Repository
baseurl=https://copr-be.cloud.fedoraproject.org/results/openresty/openresty/epel-releasever?releasever-releasever?basearch/
skip_if_unavailable=True
gpgcheck=1
gpgkey=https://copr-be.cloud.fedoraproject.org/results/openresty/openresty/pubkey.gpg
enabled=1
enabled_metadata=1
安装
yum install openresty -y
默认会安装到 /usr/local/openresty/ 目录下, 目录下包含了 luajit, lualib, nginx, openssl, pcre, zlib 这些组件
安装ngx_lua_waf模块
详见大佬的github https://github.com/loveshell/ngx_lua_waf
下载waf模块
wget https://github.com/loveshell/ngx_lua_waf/archive/v0.7.2.tar.gz
tar zxf v0.7.2.tar.gz
mv ngx_lua_waf-0.7.2 waf
ln -s /usr/local/openresty/lualib /usr/local/lib/lua
ln -s /usr/local/openresty/lualib/resty /usr/local/openresty/nginx/conf/waf/resty
将其放在安装好的/usr/local/ openresty /nginx下面的conf下,然后切换到nginx的安装目录找到conf/nginx.conf配置,在http配置下加入 如下配置,其中的/usr/local/openresty /nginx/conf/waf改为实际安装目录。
lua_package_path “/usr/local/openresty /nginx/conf/waf /?.lua”;
lua_shared_dict limit 10m; #开启拦截cc攻击时需要设置此值
init_by_lua_file/usr/local/openresty /nginx/conf/waf /init.lua;
access_by_lua_file /usr/local/openresty /nginx/conf/waf /waf.lua;#控制访问的规则
重启nginx。
Nginx 启动
切换到 /usr/local/openresty/nginx
sbin/nginx
重启 nginx sbin/nginx -s reload
倘若waf不起作用检查,/usr/local/ openresty /nginx/waf/config.lua 此文件的第一行
RulePath = “/usr/local/openresty/nginx/conf/waf/wafconf/” 表示规则的路径。检查其路径是否配置的为刚才安装的waf下的wafconf
配置文件详细说明:
RulePath = "/usr/local/nginx/conf/waf/wafconf/"--规则存放目录attacklog = "off"--是否开启攻击信息记录,需要配置logdirlogdir = "/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~~]]--警告内容,可在中括号内自定义备注:不要乱动双引号,区分大小写
