又名绵竹站长网:LNMP配置Nginx_Lua给网站服务器加入高可靠的免费WAF防护

本文参考树懒先生博客写成,文末有参考地址!

作为一个小站长,虽然网站没什么名气,也没有什么流量,但是还是会遇到一些恶意攻击,比如跨站攻击、CC攻击、DDOS攻击。

我们经常会推荐使用SSl证书,使用CDN,在一定程度上可以抵御攻击,但是遭遇了“可怕的”刷流量,那么我们的CDN流量将迅速增长,作为一个普通的小站长,十几二十块钱瞬间没有的滋味实在是不舒服。

作为一个小站站长,我们没有那么多钱购买价格昂贵的防护工具,所以只能在能力范围内给我们的小站增加防护。

如果你使用的是LNMP搭建的网站运行环境,可以使用Nginx的一个waf工具。今天就介绍下如何用LNMP配置Nginx_Lua给网站服务器加入高可靠的免费WAF防护

一、什么是WAF?

WAF就是Web应用防护系统(Web Application Firewall)翻译过来就是网站应用级入侵防御系统,他的工作原理是通过执行一系列针对HTTP(80端口)或者HTTPS(443端口)的安全策略来阻止不正经的访问,比如跨站攻击等。

网站应用级入侵防御系统

二、LNMP配置Nginx_Lua

自从军哥的LNMP更新到1.5以后LNMP配置中添加了Enable_Nginx_Lua=’y’选项,也就是支持一键安装Nginx_Lua了。如果你还是使用的lnmp1.5之前的版本,强烈建议升级到最新版,这对于新手站长简直就是福利。(lnmp1.6测试版已经放出,正式版估计也快了)

好,跟我一起操作:

1,修改Enable_Nginx_Lua选项

在默认状态中这个选项应该是“n”的,所以我们需要在服务器的/root/lnmp1.5目录下更改lnmp.conf文件中的Enable_Nginx_Lua=’n’Enable_Nginx_Lua=’y’.

这里你可以使用vi命令直接在服务器上编辑,也可以使用FTP程序把lnmp.conf文件下载到本地,通过sublime等编辑器编辑好之后,在上传覆盖源文件。

我习惯于第二种操作。修改好Nginx_Lua选项之后,还需要重新编译nginx才能生效。

2,重新编译一下NGINX

进入服务器的SSH控制台,依次执行以下命令。具体代码如下:

cd lnmp1.5
./upgrade.sh nginx

等出现如下图所示信息,接下来输入括号中的版本号,如图中所示为:1.14.0

接下来输入括号中的版本号

片刻后已经编译完成,接下来我们wget一下lua的文件到服务器,下载lua的安装包。

3、下载并配置nginx_lua

我们使用wget命令下载lua文件到服务器。在控制台执行一下代码:

wget https://github.com/loveshell/ngx_lua_waf/archive/master.zip

解压缩,并移动到我们需要的目录去,这里我们将lua复制到/usr/local/nginx/conf/waf/目录下

unzip master.zip
mv ngx_lua_waf-master/* /usr/local/nginx/conf/waf/

下面我们将服务器/usr/local/nginx/conf/waf/目录下的config.lua下载到本地,这个是WAF的配置文件,我们将对默认的配置规则进行修改。

下面将树懒新生博客完整的配置代码分享出来了,直接覆盖config.lua就可以了。再次感谢树懒先生博客。

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="on"
CCrate="500/60"
html=[[
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>网站防火墙</title>
<style>
p {
line-height:20px;
}
ul{ list-style-type:none;}
li{ list-style-type:none;}
</style>
</head>
<body style=" padding:0; margin:0; font:14px/1.5 Microsoft Yahei, 宋体,sans-serif; color:#555;">
<div style="margin: 0 auto; width:1000px; padding-top:70px; overflow:hidden;">
<div style="width:600px; float:left;">
<div style=" height:40px; line-height:40px; color:#fff; font-size:16px; overflow:hidden; background:#FF0000; padding-left:20px;">树懒先生的WAF安全防火墙</div>
<div style="border:1px dashed #cdcece; border-top:none; font-size:14px; background:#fff; color:#555; line-height:24px; height:220px; padding:20px 20px 0 20px; overflow-y:auto;background:#f3f7f9;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; color:#fc4f03;">您的请求带有不合法的参数,已被WAF安全防护自动拦截!</span></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">可能原因:您提交的内容包含危险的攻击请求</p>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:1; text-indent:0px;">如何解决:</p>
<ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">1)检查提交内容是否合法;</li>
<li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">2)立刻使用杀毒软件全盘杀毒并刷新重试;</li>
<li style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">3)如为普通网站访客,请联系 树懒先生 处理:mail@mecrr.com。</li></ul>
</div>
</div>
</div>
</body></html>
]]

这还不算完,我们看到logdir = “/usr/local/nginx/logs/hack/” 一项中我们开启了日志,所以还要最后执行一下代码,以便WAF能顺利将日志输出,如果不需要日志将attacklog一项调成off即可,然后忽略下面的代码

mkdir -p /usr/local/nginx/logs/hack/
chown -R www:www /usr/local/nginx/logs/hack/
chmod -R 755 /usr/local/nginx/logs/hack/

最后重启NGINX即可,LNMP可以执行这个代码重启lnmp restart,我们进入一个不正经的链接,便会发现被阻止了,出现如图所示的惊喜

LNMP配置Nginx_Lua给网站服务器加入高可靠的免费WAF防护

三、免费WAF防护总结

一般CDN也是有WAF功能的,不过功能稍弱,而且很多还是需要单独付费购买的,比如阿里云的。CDN的WAF在真实IP暴露的情况下也没有任何作用,所以还是在自己的主机上配置好自己的WAF功能比较靠谱点。不过这里需要说明的是在自己主机上配置WAF防护,在大量攻击的情况下,对主机的压力也会很大,所以如果你的网站已经有一定的规模,还是建议购买三方的WAF服务。

另外对主机安全这里,还是有很多需要注意的问题,地下室先生会陆续写一些文章。

这里再次感谢lnmp作者军哥的付出,让我能够使用lnmp一键安装包这样方便的环境配置工具在linux上搭建网站运行环境。也再次感谢树懒先生的问题。

lnmp官网:https://lnmp.org

树懒先生博客:https://www.mecrr.com/site/add-waf-to-your-server.html

未经允许不得转载:地下室先生博客 » 又名绵竹站长网:LNMP配置Nginx_Lua给网站服务器加入高可靠的免费WAF防护

赞 (0) 打赏作者

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏