Nginx开启自带免费waf防火墙
CC攻击攻击者通过模拟大量用户访问,制造高并发请求,从而消耗掉服务器CPU、带宽等资源,最终导致服务器瘫痪,目标网站或应用无法正常提供服务,破坏性非常大。这点相信不少伙伴都深有体会。
宝塔面板在6.x版本之前的版本中自带了Nginx防火墙功能,到了6.x之后,为了推广收费版的防火墙插件,官方把这个免费的防火墙入口给隐藏了。不过,也可以开启。
大约在NGINX配制文件第17行左右
一、开启luawaf防火墙
http
{
include mime.types;
#include luawaf.conf;
去掉#include luawaf.conf的“#”号注释。
二、保存设置并重启 Nginx
三、重新加载nginx,即开启了WAF防火墙
四、配制WAF拦截规则
1、打开面板的文件管理,进入 /www/server/nginx/waf 目录,里面的 config.lua 文件就是防火墙的配置文件。每一项的具体含义如下所示:
RulePath=”/www/server/panel/vhost/wafconf/”–waf 详细规则存放目录(一般无需修改)
attacklog =“on”–是否开启攻击日志记录(on 代表开启,off 代表关闭。下同)
logdir =”/www/wwwlogs/waf/”–攻击日志文件存放目录(一般无需修改)
UrlDeny=“on”–是否开启恶意 url 拦截
Redirect=“on”–拦截后是否重定向
CookieMatch=“off”–是否开启恶意Cookie拦截
postMatch=“off”–是否开启 POST 攻击拦截
whiteModule=“on”–是否开启 url 白名单
black_fileExt={“php”,“jsp”}–文件后缀名上传黑名单,如有多个则用英文逗号分隔。如:{“后缀名1”,“后缀名2”,“后缀名3”……}
ipWhitelist={“127.0.0.1”}–白名单 IP,如有多个则用英文逗号分隔。如:
{“127.0.0.1”,“127.0.0.2”,“127.0.0.3”……}下同
ipBlocklist={“1.0.0.1”}–黑名单 IP
CCDeny=“off”–是否开启 CC 攻击拦截
CCrate=“300/60”–CC 攻击拦截阈值,单位为秒。”300/60″代表60秒内如果同一个 IP 访问了300次则拉黑
2、配置文件中,RulePath 项对应的文件夹里存放的是具体的拦截规则。文件夹下有着相关的规则文件。作用解析如下:
args –GET 参数拦截规则
blockip –无作用
cookie –Cookie拦截规则
denycc –无作用
post –POST 参数拦截规则
returnhtml –被拦截后的提示页面(HTML)
url –url 拦截规则
user-agent –UA 拦截规则
whiteip –无作用
whiteurl –白名单网址
五、完成上述waf防火墙拦截修改后,重启Nginx设置
注意事项:
1、文件中除 returnhtml(拦截提示页面)以外,其它的内容都是正则规则,除非对正则规则的写法比较熟悉,否则就不要随便更改。
2、修改内容必须重新加载 Nginx。
至于第三方的免费防火墙插件,登陆面板安装就可以使用,你可以试试。这一种方式是开启被隐藏的nginx防火墙模块。
宝塔面板在6.x版本之前的版本中自带了Nginx防火墙功能,到了6.x之后,为了推广收费版的防火墙插件,官方把这个免费的防火墙入口给隐藏了。不过,也可以开启。
大约在NGINX配制文件第17行左右
一、开启luawaf防火墙
http
{
include mime.types;
#include luawaf.conf;
去掉#include luawaf.conf的“#”号注释。
二、保存设置并重启 Nginx
三、重新加载nginx,即开启了WAF防火墙
四、配制WAF拦截规则
1、打开面板的文件管理,进入 /www/server/nginx/waf 目录,里面的 config.lua 文件就是防火墙的配置文件。每一项的具体含义如下所示:
RulePath=”/www/server/panel/vhost/wafconf/”–waf 详细规则存放目录(一般无需修改)
attacklog =“on”–是否开启攻击日志记录(on 代表开启,off 代表关闭。下同)
logdir =”/www/wwwlogs/waf/”–攻击日志文件存放目录(一般无需修改)
UrlDeny=“on”–是否开启恶意 url 拦截
Redirect=“on”–拦截后是否重定向
CookieMatch=“off”–是否开启恶意Cookie拦截
postMatch=“off”–是否开启 POST 攻击拦截
whiteModule=“on”–是否开启 url 白名单
black_fileExt={“php”,“jsp”}–文件后缀名上传黑名单,如有多个则用英文逗号分隔。如:{“后缀名1”,“后缀名2”,“后缀名3”……}
ipWhitelist={“127.0.0.1”}–白名单 IP,如有多个则用英文逗号分隔。如:
{“127.0.0.1”,“127.0.0.2”,“127.0.0.3”……}下同
ipBlocklist={“1.0.0.1”}–黑名单 IP
CCDeny=“off”–是否开启 CC 攻击拦截
CCrate=“300/60”–CC 攻击拦截阈值,单位为秒。”300/60″代表60秒内如果同一个 IP 访问了300次则拉黑
2、配置文件中,RulePath 项对应的文件夹里存放的是具体的拦截规则。文件夹下有着相关的规则文件。作用解析如下:
args –GET 参数拦截规则
blockip –无作用
cookie –Cookie拦截规则
denycc –无作用
post –POST 参数拦截规则
returnhtml –被拦截后的提示页面(HTML)
url –url 拦截规则
user-agent –UA 拦截规则
whiteip –无作用
whiteurl –白名单网址
五、完成上述waf防火墙拦截修改后,重启Nginx设置
注意事项:
1、文件中除 returnhtml(拦截提示页面)以外,其它的内容都是正则规则,除非对正则规则的写法比较熟悉,否则就不要随便更改。
2、修改内容必须重新加载 Nginx。
至于第三方的免费防火墙插件,登陆面板安装就可以使用,你可以试试。这一种方式是开启被隐藏的nginx防火墙模块。
精选留言