OpenResty+OpenWAF的WEB防护实战

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

OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。本文介绍通过OpenResty+OpenWAF来搭建软WAF的应用,用来防护DVWA的靶机,然后我们通过攻击DVWA的靶机来看一下OpenWAF的防护效果。

一、OpenResty+OpenWAF安装

1、安装依赖

yum install gcc gcc-c++ wget GeoIP-devel git swig make perl perl-ExtUtils-Embed readline-devel zlib-devel -y

安装libcidr

cd /opt
wget http://www.over-yonder.net/~fullermd/projects/libcidr/libcidr-1.2.3.tar.xz
tar -xvf libcidr-1.2.3.tar.xz
cd /opt/libcidr-1.2.3
make && make install

升级openssl版本

cd /opt
wget -c http://www.openssl.org/source/openssl-1.1.1d.tar.gz --no-check-certificat
tar -zxvf openssl-1.1.1d.tar.gz
cd openssl-1.1.1d/
./config
make && make install

下载pcre-jit
并解压pcre-jit,后面安装OpenResty的时候引入并安装

wget https://udomain.dl.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.gz --no-check-certificate
tar -zxvf pcre-8.45.tar.gz

2、安装OpenWAF

cd /opt
git clone https://github.com/titansec/OpenWAF.git
mv /opt/OpenWAF/lib/openresty/ngx_openwaf.conf /etc
mv /opt/OpenWAF/lib/openresty/configure /opt/openresty-1.19.3.1
cp -RP /opt/OpenWAF/lib/openresty/* /opt/openresty-1.19.9.1/bundle/
cd /opt/OpenWAF/
make clean
make install
ln -s /usr/local/lib/libcidr.so /opt/OpenWAF/lib/resty/libcidr.so

3、安装OpenResty

OpenResty官网的下载地址 https://openresty.org/en/download.html
目前最新版本是1.21.4.1

cd /opt
wget https://openresty.org/download/openresty-1.21.4.1.tar.gz
tar -zxvf openresty-1.21.4.1.tar.gz
cd /opt/openresty-1.21.4.1/
./configure --with-pcre-jit --with-ipv6 --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_sub_module --with-http_geoip_module --with-openssl=/opt/openssl-1.1.1d --with-pcre=/opt/pcre-8.45
gmake && gmake install

设置nginx开机自启动服务

vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/openresty/nginx/sbin/nginx
ExecReload=/usr/local/openresty/nginx/sbin/nginx -s reload
ExecStop=/usr/local/openresty/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target
# 设置开机启动
systemctl enable nginx
# 查看服务当前状态
systemctl status nginx
# 启动nginx服务
systemctl start nginx
# 停止nginx服务
systemctl stop nginx
# 重启nginx服务
systemctl restart nginx

当我们启动nginx的时候发现启动失败了,原因是因为原来安装了apache端口是80,nginx的端口也是80,端口冲突了。解决方案要不是改nginx端口,要不就是改apache的端口。这里将apache的端口改成8080。

[root@localhost OpenWAF]# systemctl start nginx
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

查看nginx启动状态

[root@localhost OpenWAF]# systemctl status nginx
● nginx.service - nginx
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Tue 2023-04-04 04:00:44 PDT; 19s ago
Process: 42096 ExecStart=/usr/local/openresty/nginx/sbin/nginx (code=exited, status=1/FAILURE)
Apr 04 04:00:42 localhost.localdomain nginx[42096]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Apr 04 04:00:42 localhost.localdomain nginx[42096]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Apr 04 04:00:43 localhost.localdomain nginx[42096]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Apr 04 04:00:43 localhost.localdomain nginx[42096]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Apr 04 04:00:44 localhost.localdomain nginx[42096]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Apr 04 04:00:44 localhost.localdomain nginx[42096]: nginx: [emerg] still could not bind()

修改apache的端口

vim /etc/httpd/conf/httpd.conf
Listen 8080
systemctl restart httpd

OpenResty+OpenWAF的WEB防护实战

将apache的端口改成8080后,再次启动nginx就可以看到OpenResty成功启动了。

systemctl start nginx

OpenResty+OpenWAF的WEB防护实战

二、配置OpenWAF的web防护

这边DVWA靶机的地址是http://192.168.1.24:8080/DVWA/ DVWA靶机的安装见另一篇博文《CentOS7+LAMP+DVWA靶机搭建》https://blog.csdn.net/fullbug/article/details/129879670
我们需要配置OpenResty+OpenWAF来对192.168.1.24:8080进行WEB防护
参考《轻松玩转OpenWAF之入门篇》及 《深入研究OpenWAF之nginx配置》

1、nginx配置修改

在 nginx 的 http 级别添加如下两行:

include /opt/OpenWAF/conf/twaf_main.conf;
include /opt/OpenWAF/conf/twaf_api.conf;

要防护的 server 或 location 级别添加如下一行:

include /opt/OpenWAF/conf/twaf_server.conf;

OpenResty的nginx的配置文件在 /usr/local/openresty/nginx/conf/nginx.conf

具体配置参考下图:
OpenResty+OpenWAF的WEB防护实战

2、OpenWAF接入规则修改

修改/opt/OpenWAF/conf/twaf_access_rule.json文件
具体配置参考下图:
OpenResty+OpenWAF的WEB防护实战

3、测试验证

这时候我们访问http://192.168.1.24/DVWA/ ,注意是没有带8080端口的,因为是通过OpenResty+OpenWAF来反向代理了127.0.0.1的8080端口,访问http://192.168.1.24/DVWA/ 是经过了OpenWAF防护的。
这时候我们开始通过SQL注入对DVWA的靶机进行SQL注入的攻击。
OpenResty+OpenWAF的WEB防护实战

防护效果:
可以看到OpenWAF提示标识为攻击并记录,提示是有次SQL注入的攻击,并进行了防护。
OpenResty+OpenWAF的WEB防护实战

接下来我们进行一次XSS的攻击
OpenResty+OpenWAF的WEB防护实战

同样OpenWAF给出了XSS的攻击提示,并进行了防护。
OpenResty+OpenWAF的WEB防护实战

至此,本文介绍了OpenResty+OpenWAF的安装,并通过配置对DVWA的靶机进行了WEB防护,通过SQL注入及XSS的攻击,验证了OpenWAF的效果。OpenResty+OpenWAF是开源的软WAF解决方案,安装和配置相对简单,对于中小企业的web防护来说不失为一个低成本的解决方案。


作者博客:http://xiejava.ishareread.com/文章来源地址https://www.toymoban.com/news/detail-407364.html

到了这里,关于OpenResty+OpenWAF的WEB防护实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 我的Serverless实战——引领云计算的下一个十年(1),小型公司web开发

    目录 培养自己的Serverless思维与认知 Serverless的使用价值及常见的架构模式 函数计算介绍及其应用 函数的测试与部署 Serverless容器服务及部署 Serverless应用引擎 常见的业务场景及经典案例 培养自己的Serverless思维与认知 以前很多开发者都是采用的单体架构,为了保证服务的稳

    2024年04月17日
    浏览(45)
  • 前端Web实战:从零打造一个类Visio的流程图拓扑图绘图工具

    大家好,本系列从Web前端实战的角度,给大家分享介绍如何从零打造一个自己专属的绘图工具,实现流程图、拓扑图、脑图等类Visio的绘图工具。 免费好用、 专属自己的绘图工具 前端项目实战学习 如何从0搭建一个前端项目等基础框架 项目设计思路及优雅的架构技巧 开源项

    2024年02月16日
    浏览(25)
  • Java Web应用中的安全与防护

    Java Web应用是现代互联网应用的重要组成部分,它们为用户提供了丰富的功能和服务。然而,Java Web应用也面临着各种安全漏洞和攻击,这些漏洞和攻击可能导致数据泄露、信息盗用、系统破坏等严重后果。因此,Java Web应用的安全与防护是非常重要的。 在本文中,我们将从以

    2024年01月21日
    浏览(32)
  • WEB服务器的超级防护——安全WAF

          随着网络和信息技术的不断发展,特别是互联网的广泛普及和应用,网络正在逐步改变人类的生活和工作方式。越来越多的政府和企业组织建立了依赖于网络的业务信息系统,例如电子政务、网络办公等。网络也对社会各行各业产生了巨大的影响,使信息安全的重要性

    2024年02月20日
    浏览(32)
  • 开源的API Gateway项目- Kong基于OpenResty(Nginx + Lua模块)

    Kong 是一个在 Nginx 内运行的开源 API 网关和微服务抽象层。它是用于处理 API 流量的灵活、可扩展、可插入的工具。 Kong 提供了以下功能: 用户登录 :Kong 提供了多种认证插件,像 JWT、OAuth 2.0 等,可以满足用户登录需求。 Token 管理 :使用上述认证插件,Kong 可以有效地管理

    2024年01月23日
    浏览(34)
  • 基于aws构建一个web应用程序

    经验帖以及个人总结。 一. 在创建EC2主机前,可先行创建密匙以及安全组。 关于安全组: 1. 入站规则(别人访问你做的一些限制) :开放ssh 端口。是为了可以进行linux相关的连接。                                                                      开放http端口。

    2024年02月08日
    浏览(37)
  • [实战]API防护破解之签名验签

    传统的接口在传输的过程中,是非常容易被抓包进行篡改,从而进行中间人攻击。 这时候我们可以通过对参数进行签名验证,如果参数与签名值不匹配,则请求不通过,直接返回错误信息,从而防止黑客攻击或者大大增加了黑客攻击的成本。 白帽子在挖洞的时候也经常会遇

    2024年03月13日
    浏览(24)
  • eclipse创建一个基于maven的web项目

    web程序运行,需要tomcat环境。提前安装好tomcat 点击 windows -preference ,在弹出窗口的左侧选中 server - Runtime enviroment 。 点击Add ,根据安装的tomcat版本选择 tomcat的类型后,点击finish 按钮      3.配置tomcat server 点击链接创建tomcat服务器     将web程序添加到右侧列表      1)点击

    2024年02月03日
    浏览(39)
  • Web应用安全攻防战:识别十大威胁,掌握防护要点

    OWASP(Open Worldwide Application Security Project)是一家致力于应用安全威胁研究的非盈利机构。通过对超过20万个组织进行调研分析,该机构每三年左右就会发布一次《Web应用安全风险Top10》报告,这个报告已经成为全球企业开展Web应用安全防护时的重要参考。然而最近,卡巴斯基的

    2024年04月16日
    浏览(62)
  • [记录]基于Flask Web全栈开发实战(黄勇·著)

    Flask 学习 flask 项目配置 Debug模式 Host、Port配置 在pycharm中,设置debug模式和port端口号 在app.config中添加配置 加载配置文件 URL 和 视图 定义无参URL 定义有参URL 指定参数类型 语法:类型:参数名 如: @app.route(‘/blog/int:blog_id’) def blog_detail(blog_id):      return f’您查找的博客

    2024年04月13日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包