Linux下Tengine结合lua防御cc攻击案例

赞赏 2016-07-12

本文介绍一种 Tengine 结合 lua 防御 cc 攻击的案例



下载和安装 tengine 与 luajit


tengine下载地址 http://tengine.taobao.org/   选择稳定的安装包下载编译安装即可。

这里用的包是 tengine-2.1.1.tar.gz。

luajit 下载地址 http://luajit.org/download.html  选择稳定的安装包下载编译安装即可。这里用的包是LuaJIT-2.0.4.tar.gz。

安装的步骤如下:

1、安装环境需要的基础文件

yum install zlib zlib-devel openssl openssl-devel pcre pcre-devel -y

2、下载和安装 LuaJIT-2.0.4.tar.gz

wget http://luajit.org/download/LuaJIT-2.0.4.tar.gz
tar zxvf LuaJIT-2.0.4.tar.gz 
cd LuaJIT-2.0.4
make

1.png

make install PREFIX=/usr/local/luajit

出现以下红框信息显示安装成功了,可以进行下一步了

2.png

3、下载和安装 tengine-2.1.1.tar.gz

wget http://tengine.taobao.org/download/tengine-2.1.1.tar.gz
tar zxvf tengine-2.1.1.tar.gz
cd tengine-2.1.1
./configure --prefix=/opt/nginx --with-http_lua_module --with-luajit-lib=/usr/local/luajit/lib/ --with-luajit-inc=/usr/local/luajit/include/luajit-2.0/ --with-ld-opt=-Wl,-rpath,/usr/local/luajit/lib

3.png

make && make install

4.png


下载和配置 ngx_lua_waf


nginx下常见的开源 waf 有 mod_security、naxsi、ngx_lua_waf 这三个,ngx_lua_waf 性能高和易用性强,基本上零配置,而且常见的攻击类型都能防御,是比较省心的选择。

其git 地址为 https://github.com/loveshell/ngx_lua_waf

1.下载配置文件

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

2. 解压缩

unzip master.zip

3. 移动到nginx的目录下

mv ngx_lua_waf-master /opt/nginx/conf/

4. 重命名

cd /opt/nginx/conf/ 
mv ngx_lua_waf-master  waf

5. 修改 ngx_lua_waf 配置文件适应当前的 nginx 环境。修改以下文件的三行即可(修改/opt/nginx/conf/waf下的config.lua文件,将RulePath和logdir改为实际的目录:)

cat /opt/nginx/conf/waf/config.lua|head -n3
RulePath = "/opt/nginx/conf/waf/wafconf/"
attacklog = "on"
logdir = "/opt/nginx/logs/waf"


修改 tengine 的配置文件应用 ngx_lua_waf


在 nginx.conf 的 http 段添加

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

启动 tengine--nginx 服务

/opt/nginx/sbin/nginx  -t
the configuration file /opt/nginx/conf/nginx.conf syntax is ok
/opt/nginx/sbin/nginx  -s reload


测试攻防的效果


1. 任意文件读取测试示例输出:

5.png

2. sql 注入测试示例输出

6.png

登陆后阅读全文
阅读 1724 赞赏 0 有用 2 没用 0 收藏 0 分享

   



0 条留言

linux分享的头像

linux分享

每个软件都有确定的用途

相关文章

Linux下tengine环境如何屏蔽攻击ip?

安全组设置允许SSH登录到 Linux 实例

Linux 流控原理,实现,及实例

Linux 如何使用 kpartx 命令读取分区表信息

云服务器 ECS Linux /tmp 目录文件是如何做到定期清理的?

Linux Web 环境配置站点的方法

Linux 内核配置问题导致 NAT 环境访问异常

Linux Mac Window网络异常时如何抓包?

Linux 系统虚拟主机 .htaccess 如何限制某些 IP 访问?

云服务器 ECS Linux 系统如何屏蔽某个 IP 的访问?

有料推荐

这世界欠我一个这样的老公!

高校学生模仿“世界名画”摆拍,可以说是戏精本精了

iPhone X 跌破发行价,苏宁200亿入股恒大 | 财经日日评

果然是高手!这次在日本,特朗普竹杠敲得不是一般狠

资深黄牛现身说法:iPhone X价格秒变不停,就像炒股一样

长一样的双胞胎也能识别?蚂蚁金服发布「眼纹识别」技术

苏联是怎么被阿富汗拖垮的?

美团或入局「分时租赁」共享汽车,王兴要大笔投入「泛出行」领域了? | 36氪独家

你或许被“一盘番茄炒蛋”刷屏了,但有人辛酸,有人质疑

iPhone X发售前夜,黄牛与苹果公司的不安

他的文章

我是如何执行 "rm -rf ~" 的

正态分布为什么常见?(财富的分布却不符合正态分布)

Linux下窗口管理器 xmonad 的使用教程

用披萨做比喻来解释 IaaS,PaaS,SaaS 的区别

如何制作CSR(证书私钥和证书请求文件)文件?

php RedisException with message read error on connection

Windows环境下ping丢包或不通时链路测试工具推荐

Linux下ping丢包或不通时链路测试工具推荐

链路测试结果分析说明及常见链路异常场景和测试报告

SSH 登录时出现如下错误:login: Module is unknown

手机扫一扫
分享文章