NG+WAF实现应用安全访问

这篇具有很好参考价值的文章主要介绍了NG+WAF实现应用安全访问。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、基本概念

什么是waf?

Web应用防火墙(waf)是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品,WAF是一种工作在应用层的、通过特定的安全策略来专门为Web应用提供安全防护的产品。

什么是ngx_lua_waf?

ngx_lua_waf是一个基于ngx_lua的web应用防火墙,Nginx支持开启waf模块,主要功能有:

支持IP白名单和黑名单功能,直接将黑名单的IP访问拒绝(新增cdip功能支持ip段)
支持URL白名单,将不需要过滤的URL进行定义
支持User-Agent的过滤,匹配自定义规则中的条目,然后进行处理
支持CC攻击防护,单个URL指定时间的访问次数,超过设定值(新增针对不同域名)
支持Cookie过滤,匹配自定义规则中的条目,然后进行处理
支持URL过滤,匹配自定义规则中的条目,如果用户请求的URL包含这些
支持URL参数过滤,原理同上
支持日志记录,将所有拒绝的操作,记录到日志中去
新增支持拉黑缓存(默认600秒)

二、为啥要做NG+WAF

原有网络架构中硬件waf是侧挂在防火墙上,在现网防护过程中,请求中https解析,攻击防护等操作会经常出现大量的占用cpu的使用情况,导致waf的cpu利用率居高不下,严重时甚至会影响正常业务的使用。 

Nginx加载waf插件后,客户端流量先经防火墙,再到LVS四层负载均衡分发到应用层Nginx上 ,然后将请求流量先传到WAF,WAF通过检测后,再允许Web节点的响应返回 。Nginx还可根据地址端口配置,分发到不同的WAF上;不同Nginx流量也可以分发到同一个WAF。如果WAF发生故障超时后Nginx直接响应,不会造成业务中断 。

三、安装加载ngx_lua_waf模块

1、安装系统依赖软件包

yum -y install gcc gcc-c++ autoconf automake make unzip
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel

2、下载ng支持模块

安装过程中需要的LuaJIT、lua-nginx-module和ngx_dev_kit模块、以及nginx和waf模块放在资源中,可下载离线安装。

https://download.csdn.net/download/vincent0920/88752133

3、将下载的离线包拷贝至/usr/local/src目录中

4、安装LuaJIT2.0
LuaJIT是Lua的即时编译器,简单来说,LuaJIT是一个高效的Lua虚拟机。

# 进入目录
cd /usr/local/src/ 
# 解压
tar xf LuaJIT-2.0.5.tar.gz && cd LuaJIT-2.0.5
# 编译
make
# 安装
make install PREFIX=/usr/local/lj2
# 建立软连接
ln -s /usr/local/lj2/lib/libluajit-5.1.so.2 /lib64/
# 添加环境变量
export LUAJIT_LIB=/usr/local/lj2/lib/
export LUAJIT_INC=/usr/local/lj2/include/luajit-2.0/

5、安装ngx_devel_kit
kit模块是一个拓展nginx服务器核心功能的模块,第三方模块开发可以基于它来快速实现。

# 进入目录
cd /user/local/src/
# 解压
unzip xf ngx_devel_kit.gz

6、安装lua-nginx-module
ngx_lua_module 是一个nginx http模块,它把 lua 解析器内嵌到 nginx,用来解析并执行lua 语言编写的网页后台脚本。

安装

# 进入目录
cd /user/local/src/
# 解压
unzip  lua-nginx-module.gz

7、 安装Nginx

# 进入目录
cd /user/local/src/
# 解压
tar xf nginx-1.21.0.tar.gz
# 进入nginx目录
cd nginx-1.21.0
 
# 编译
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-pcre --add-module=/usr/local/src/lua-nginx-module --add-module=/usr/local/src/ngx_devel_kit --with-stream
 
# 安装
make && make install


 # 添加nginx配置,在server块里添加下面内容
# vim /usr/local/nginx/conf/nginx.conf
 
location /lua {
    default_type 'text/plain';
 
    content_by_lua 'ngx.say("hello, lua")';
}
 
# 检查语法
# /usr/local/nginx/sbin/nginx -t
NG+WAF实现应用安全访问,经验分享,安全,网络
# 启动
# nginx
# 测试
curl 127.0.0.1:80/lua 

NG+WAF实现应用安全访问,经验分享,安全,网络

8、安装ngx_lua_waf

# 进入目录
cd /user/local/src/
#解压目录
unzip master.zip -d /usr/local/nginx/conf/
# 更改目录名
mv /usr/local/nginx/conf/ngx_lua_waf-master /usr/local/nginx/conf/waf

# 在nginx.conf的http段添加

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

# 在nginx.conf最外层添加用户运行
user www;

#操作系统新增www用户

#useradd www
 
# 创建日志目录
mkdir /usr/local/nginx/logs/hack
chown www /usr/local/nginx/logs/hack 

9、waf规则文件介绍

/usr/local/nginx/conf/waf/wafconf

NG+WAF实现应用安全访问,经验分享,安全,网络

 args里面的规则get参数进行过滤的
cookie是对请求过滤的cookie过滤
url是只在get请求url过滤的规则
post是只在post请求过滤的规则
whiteurl是白名单,里面的url匹配到不做过滤
user-agent是对user-agent的过滤规则

/usr/local/nginx/conf/waf/ config.lua

# 规则存放路径
RulePath = "/usr/local/nginx/conf/waf/wafconf/"
# 是否开启攻击信息记录,需要配置logdir
attacklog = "on"
# log存储目录,该目录需要用户自己新建,切需要nginx用户的可写权限
logdir = "/usr/local/nginx/logs/hack/"
# 是否拦截url访问
UrlDeny="on"
# 是否拦截后重定向
Redirect="on"
# 是否拦截cookie攻击
CookieMatch="on"
# 是否拦截post攻击
postMatch="on"
# 是否开启URL白名单
whiteModule="on"
# 填写不允许上传文件后缀类型
black_fileExt={"php","jsp"}
# ip白名单,多个ip用逗号分隔
ipWhitelist={"127.0.0.1"}
# ip黑名单,多个ip用逗号分隔
ipBlocklist={"192.168.10.1"}
# 是否开启拦截cc攻击(需要nginx.conf的http段增加lua_shared_dict limit 10m;)
CCDeny="off"
# 设置cc攻击频率,单位为秒.
# 默认1分钟同一个IP只能请求同一个地址100次
CCrate="100/60"
# 告警内容
html= []

10、启动测试验证

# 加载Nginx
# nginx -s reload 

#访问带有参数的URL

NG+WAF实现应用安全访问,经验分享,安全,网络

四、经验总结

在NG+WAF使用过程中,可以做到接收方向的流量全检测,但是响应方向的流量暂不支持检测,也不支持防篡改功能, http flood功能,无法做反向探测。改造后的架构对性能影响较小,默认1秒超时,若超时waf依然没有响应,nginx自动转发.对nginx的压力暂时未达到瓶颈,且在当前架构中nginx支持横向扩容,所以不会影响nginx的并发。
同时nginx和waf之间的交互对http/1.1流量利用率有了提高,且所有的流量解析工作都是nginx完成,大大降低了waf的工作量。另外通过XXF头来记录源地址,保证了溯源的顺利进行。

     There are many things that can not be broken!

     如果觉得本文对你有帮助,欢迎点赞、收藏、评论!文章来源地址https://www.toymoban.com/news/detail-800750.html

到了这里,关于NG+WAF实现应用安全访问的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 移动应用安全策略不足:未对通过移动应用访问网络的安全进行适当管理

    随着移动互联网的快速发展,越来越多的企业和个人选择通过移动应用来访问网络资源。然而,移动应用安全策略的不足,往往导致数据泄露、恶意攻击等问题。本文将针对这一问题进行分析并提出相应的解决方案。 1. 数据泄露 由于移动设备缺乏与PC机一样的物理隔离机制,

    2024年02月01日
    浏览(49)
  • 部署WAF安全应用防火墙(openresty部署)

    1.1 什么是WAF Web应用防护系统 (也称:网站应用级入侵防御系统 。英文:Web Application Firewall,简称: WAF)。利用国际上公认的一种说法: Web应用 防火墙 是通过执行一系列针对HTTP/HTTPS的 安全策略 来专门为Web应用提供保护的一款产品 。 1.2 WAF的功能 支持IP白名单和黑名单功能,

    2024年02月05日
    浏览(38)
  • WAF(网络应用防火墙)是什么

    WAF全称为 ( Web Application Firewall ) 网络应用防火墙,是一种HTTP入侵检测和防御系统 传统的防火墙,处于网络分层的第三层或者第四层,用来过滤特定的ip地址和端口,而WAF则处于第七层应用层,可以看到应用层的报文内容。用来实现更加负责深入和细致的审核和过滤。 IP 黑名

    2024年02月10日
    浏览(41)
  • Java 应用部署包优化经验分享

    背景 最近接手了一个 2018 年的老项目,因为太久远了,功能上的代码不敢乱动,虽然是老项目,但最近一年也在持续加功能,功能不稳定,于是我就进入了救火式改 Bug 的状态。 功能不能妄动,但是这个项目还有一个问题,打包模块打出的全量包部署不起来。拿到这个项目的

    2024年01月21日
    浏览(83)
  • 面试经验分享 | 某康安全开发工程师

    DOM型xss和别的xss最大的区别就是它不经过服务器,仅仅是通过网页本身的JavaScript进行渲染触发的。 平常用的多的是MySQL数据库,像Oracle数据库也有了解,但是用的不多。 我的研究方向是自然语言处理,具体的领域是虚假信息检测。我的小论文中采用的数据集是twitter15和twit

    2024年04月15日
    浏览(56)
  • Stable Diffusion +EbSynth应用实践和经验分享

    Ebsynth应用 1.安装ffmpeg 2.安装pip install transparent-background,下载模型https://www.mediafire.com/file/gjvux7ys4to9b4v/latest.pth/file 放到C:Users自己的用户名.transparent-background加一个ckpt_base.pth文件 3.秋叶安装ebsynth插件,重启webui 填写项目基本信息 4.对应步骤1,运行第一步分割mp4,这里面最好

    2024年02月13日
    浏览(41)
  • 7个工程应用中数据库性能优化经验分享

    摘要: 此篇文章分别从sql执行过程、执行计划、索引数据结构、索引查询提速原理、聚焦索引、左前缀优化原则、自增主键索引这些角度谈一谈我们对数据库优化的理解。 本文分享自华为云社区《工程应用中数据库性能优化经验小结》,作者: 叶工 。 现阶段交付的算法产

    2024年02月06日
    浏览(50)
  • GMSL2相机调试经验分享及嵌入式应用

    GMSL2相机调试经验分享及嵌入式应用 在嵌入式系统开发中,相机的调试和应用是一项重要且复杂的任务。本文将分享一些关于GMSL2相机调试的经验,并介绍如何将其应用到嵌入式系统中。 GMSL2相机简介 GMSL2(Gigabit Multimedia Serial Link)是一种高速串行数据传输协议,常用于连接

    2024年02月04日
    浏览(103)
  • 深度学习实战应用:分享一些深度学习在实际问题中的应用案例和经验

    目录 一、引言 二、案例一:计算机视觉——图像分类

    2024年02月02日
    浏览(38)
  • 从零开始搭建家庭网络:软路由实战经验分享(一)

    最近入门了软路由,研究了半个月,一步一步从网络小白到最后自己搭建了家庭局域网络,现在给大家分享一下我搭建软路由的经验。 既然有软路由,那么相对的肯定有硬路由:目前我们网上买到的路由器,就是硬路由,这种从一开始就是 按照路由器设计规范设计出来的硬

    2024年02月02日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包