一、安装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),效果如下:

进入拦截日志目录检看拦截记录如下:

OpenResty安装使用教程(CentOS 6)的更多相关文章

  1. Centos安装elasticsearch教程

    elasticsearch安装是ytkah在做laravel电商站内搜索要实现的,通过自己的搜索和学习能力不算很费力解决了.下面就整理一下安装elasticsearch教程,服务器是Centos 7, ...

  2. (转载)Centos下Elasticsearch安装详细教程

    原文地址:http://www.cnblogs.com/sunny1009/articles/7874251.html Centos下Elasticsearch安装详细教程 1.Elasticsear ...

  3. CentOS 6.5 安装 php7 教程 包很重要使用lnmp1.4里面的包

    ./configure \ --prefix=/usr/local/php-7.0.1 \ --with-mysql=mysqlnd \ --with-pdo-mysql=mysqlnd \ --wi ...

  4. CENTOS --5分钟搞定Nginx安装的教程

    1. 安装gcc(centos 7之后一般已自带,可以在第6步失败后再安装) yum install gcc gcc-c++ 2. 安装pcre yum install -y pcre pcre-de ...

  5. Centos安装smokeping教程

    Centos安装smokeping教程 一 .安装基本依赖包 ntpdate time.windows.com #64bit rpm -Uhv http://apt.sw.be/redhat/el6/ ...

  6. Centos下Elasticsearch安装详细教程

    Centos下Elasticsearch安装详细教程 1.Elasticsearch简介 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于 ...

  7. Zabbix3.x安装图解教程

    准备知识: Zabbix3.x比较之前的2.0界面有了很大的变化,但是安装部署过程与2.x基本完全一样. 1.Zabbix2.x安装图解教程 http://www.osyunwei.com/archi ...

  8. Zabbix安装图解教程

    说明: 操作系统:CentOS IP地址:192.168.21.127 Web环境:Nginx+MySQL+PHP zabbix版本:Zabbix 2.2 LTS 备注:Linux下安装zabbix需 ...

  9. Screen命令安装使用教程

    在安装lnmp之前,我们一般先运行一下Screen程序,因为screen好像一个容器一样,把lnmp的安装过程保护了起来.以CentOS中安装lnmp为例,程序下载.编译都需要比较长的时间,如果中途遇 ...

随机推荐

  1. Oracle——trunc()函数的使用

    trunc是oracle数据库中一种格式化函数. 1.处理日期 1.1.当年第一天: SELECT TRUNC(SYSDATE,'YYYY') FROM DUAL; SELECT TRUNC(SYSD ...

  2. 选择排序(Python实现)

    目录 1. for版本--选择排序 2. while版本--选择排序 3.测试用例 4. 算法时间复杂度分析 1. for版本--选择排序 def select_sort_for(a_list): ' ...

  3. 详细解读html中的Map,area标签

    一.定义 定义一个客户端图像映射.图像映射(image-map)指带有可点击区域的一幅图像. 二.使用 <!--定义一个图像 他的边框为0(border) usemap(指定该图像被用作图像地图 ...

  4. React之ant design的table表格序号连续自增

    render(text,record,index){     return(       <span>{(pagination.current-1)*10+index+1}</spa ...

  5. rosetta对称性文件(rosetta symmetry file)的产生及应用

    针对对称性PDB 3UKM,使用make_symmdef_file.pl脚本,可以执行产生对称单元及对称文件: $> $ROSETTA3/src/apps/public/symmetry/mak ...

  6. hdu4777 树状数组

    题意:给了n个数,然后又m次查询,询问[L,R] 内有多少个数与其他的数不互质. 解: 我们首先可以通过处理得出每个数的有效区间,LR 就是 左边L位置上的数 和他不互质, 右边R位置上的数和不互质, ...

  7. WIFI CAT ET III Adapter Caterpillar ET3 New Arrival

    The old bluetooth cat et adatper iii has stopped production, and you can get the new WIFI CAT Caterp ...

  8. Got error -1 when reading table

    环境:Percona Server for MySQL 5.5.18 模拟三个Terminal,实现当引用锁定表的查询被杀死时,错误日志中出现的Got error -1 when reading ta ...

  9. 【题解】JSOIWC2019 Round 5

    题面: 题解: T1: 算法1: 枚举每个灯塔的方向,并分别判断是否有解.时间复杂度O(K*4^K). 预计得分:50-70分 算法2: 不难发现,当k≥4的时候一定有解,将最靠左的两个下面的朝右上. ...

  10. opencv学习之路(23)、轮廓查找与绘制(二)——访问轮廓每个点

    一.简介 二.画出每个轮廓的每个点 #include "opencv2/opencv.hpp" using namespace cv; void main() { Mat src= ...