资讯专栏INFORMATION COLUMN

Linux运维:安全防护OpenResty

B0B0 / 1010人阅读

摘要:用于方便地搭建能够处理超高并发扩展性极高的动态应用服务和动态网关。支持攻击防护,单个指定时间的访问次数,超过设定值,直接返回。支持过滤,匹配自定义规则中的条目,然后进行处理返回。支持日志记录,将所有拒绝的操作,记录到日志中去。

1 OpenResty简介

OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

2 OpenSty安装
系统环境说明:
[root@jranson ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
[root@jranson ~]# uname -r
3.10.0-693.21.1.el7.x86_64

安装步骤:
1、安装依赖包
yum install -y readline-devel pcre-devel openssl-devel  openssl-devel gcc 

2、下载软件包
wget https://openresty.org/download/ngx_openresty-1.9.3.2.tar.gz --no-check-certificate

3、解压
tar -zxvf ngx_openresty-1.9.3.2.tar.gz

4、进入目录,初始化
cd ngx_openresty-1.9.3.2
./configure --prefix=/usr/local/openresty --with-luajit --with-http_stub_status_module --with-pcre --with-pcre-jit

5、编译安装
gmake
gmake install
3 功能列表

支持白名单和黑名单功能,直接将黑名单的IP访问拒绝。

支持URL白名单,将不需要过滤的URL进行定义。

支持User-Agent的过滤,匹配自定义规则中的条目,然后进行处理(返回403)。

支持CC攻击防护,单个URL指定时间的访问次数,超过设定值,直接返回403。

支持Cookie过滤,匹配自定义规则中的条目,然后进行处理(返回403)。

支持URL过滤,匹配自定义规则中的条目,如果用户请求的URL包含这些,返回403。

支持URL参数过滤,原理同上。

支持日志记录,将所有拒绝的操作,记录到日志中去。

日志记录为JSON格式,便于日志分析,例如使用ELKStack进行攻击日志收集、存储、搜索和展示。

4 配置waf规则
1、克隆git项目
git clone https://github.com/unixhot/waf.git

2、拷贝至nginx配置文件目录下
cp -a ./waf/waf /usr/local/openresty/nginx/conf/

3、编辑nginx配置文件,配置规则
vim /usr/local/openresty/nginx/conf/nginx.conf

4、在http块配置里面添加下列配置
http{
    lua_shared_dict limit 50m;
    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/access.lua";

5、waf/config.lua文件可以自定义规则,错误信息等。



6、检查语法,启动openresty
/usr/local/openresty/nginx/sbin/nginx -t
/usr/local/openresty/nginx/sbin/nginx
5 测试

在浏览器输入ip/a.sql,如果没有定义规则之前的web服务器,用户浏览器会弹出一个下载文件的页面。定义完规则的web服务器会自动匹配到规则,然后拒绝访问,或者重定向到错误页面等等。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/63136.html

相关文章

  • PHPer书单

    摘要:想提升自己,还得多看书多看书多看书下面是我收集到的一些程序员应该看得书单及在线教程,自己也没有全部看完。共勉吧当然,如果你有好的书想分享给大家的或者觉得书单不合理,可以去通过进行提交。讲师温铭,软件基金会主席,最佳实践作者。 想提升自己,还得多看书!多看书!多看书!下面是我收集到的一些PHP程序员应该看得书单及在线教程,自己也没有全部看完。共勉吧!当然,如果你有好的书想分享给大家的或者...

    jimhs 评论0 收藏0
  • 京东云罗玉杰:OpenResty 在直播场景中的应用

    摘要:年月日,社区联合又拍云,举办全国巡回沙龙北京站,京东云技术专家罗玉杰在活动上做了在直播场景中的应用的分享。项目功能基于协议将文件上传至云存储。 2019 年 3 月 23 日,OpenResty 社区联合又拍云,举办 OpenResty × Open Talk 全国巡回沙龙·北京站,京东云技术专家罗玉杰在活动上做了《 OpenResty 在直播场景中的应用 》的分享。 OpenRest...

    sunnyxd 评论0 收藏0
  • 极验高并发验证服务背后的技术实现

    摘要:像极验这样高并发量同时需要高扩展性的验证服务企业来说,使用协程处理是降低并发开销最合适的方法。其次极验利用过滤非法请求,以及限制不同账户并发。能够比较便捷地搭建处理超高并发高扩展性的动态服务。极验通过以上三个技术手段,来解决高并发问题。 极验目前的用户超过7万家网站,日均验证量1亿次,作为一家专注于验证安全服务的公司,极验所要面临的并发压力主要表现在以下几点: 日益增加的用户并发量。...

    DevWiki 评论0 收藏0
  • RemoteTail-集群日志同步查看小工具

    摘要:两台服务器中的项目均将日志写到文件系统的文件。就是为了解决这种问题的,开发人员可以使用它同步显示两台多台服务器的日志信息。 RemoteTail 是一款支持同步显示多台远程服务器的日志文件内容更新的工具,使用它可以让你同时监控多台服务器中某个(某些)日志文件的变更,将多台服务器的tail -f xxx.log命令的输出合并展示。 showImg(https://segmentfault...

    张春雷 评论0 收藏0
  • 个推基于Docker和Kubernetes的微服务实践

    摘要:个推针对服务场景,基于和搭建了微服务框架,提高了开发效率。三容器化在微服务落地实践时我们选择了,下面将详细介绍个推基于的实践。 2016年伊始Docker无比兴盛,如今Kubernetes万人瞩目。在这个无比需要创新与速度的时代,由容器、微服务、DevOps构成的云原生席卷整个IT界。个推针对Web服务场景,基于OpenResty和Node.js搭建了微服务框架,提高了开发效率。在微服...

    yibinnn 评论0 收藏0

发表评论

0条评论

B0B0

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<