Nginx集成Naxsi防火墙
前言
因工作原因,接触到了WAF,今天部署了一下Naxsi,记录一下
GitHub
正文
环境
Centos 7
下载
更新yum
yum update -y
安装必要依赖
yum install gcc gcc-c++ cmake ncurses ncurses-devel libxml2 libxml2-devel zlib zlib-devel gd gd-devel openssl openssl-devel curl curl-devel libtool pcre pcre-devel wget unzip vim
下载Nginx
可使用最新版
wget http://nginx.org/download/nginx-1.17.8.tar.gz
下载Naxsi
可使用最新版
wget https://github.com/nbs-system/naxsi/archive/0.56.tar.gz
解压
tar -xvzf nginx-1.17.8.tar.gz
tar -xvzf 0.56.tar.gz
编译安装带插件的Nginx
cd nginx-1.17.8
注意 --add-module 后面跟的路径
./configure --prefix=/opt/nginx --add-module=/root/naxsi/naxsi-0.56/naxsi_src --user=nginx --group=nginx --with-http_ssl_module --with-http_geoip_module --without-mail_pop3_module --without-mail_smtp_module --without-mail_imap_module --without-http_uwsgi_module --without-http_scgi_module
make
make install
mkdir /var/log/nginx
安装Naxsi插件
cp /root/naxsi/naxsi-0.56/naxsi_config/naxsi_core.rules /opt/nginx/conf/
vim /opt/nginx/conf/naxsi.rules
写入以下内容保存
SecRulesEnabled;
DeniedUrl "/RequestDenied";
## check rules
CheckRule "$SQL >= 8" BLOCK;
CheckRule "$RFI >= 8" BLOCK;
CheckRule "$TRAVERSAL >= 4" BLOCK;
CheckRule "$EVADE >= 4" BLOCK;
CheckRule "$XSS >= 8" BLOCK;
上面的内容是拦截的规则, naxsi的流程是将每个请求URL解析,发现一个可疑处增加一些分数,从2到8分都有,然后根据此文件的规则确定规则
比如 CheckRule "$SQL >= 8" BLOCK; 的意思是如果SQL部分分数大于等于8返回错误的状态码(404)
更多详细可看 Naxsi规则简单说明
开启Naxsi插件
vim /opt/nginx/conf/nginx.conf
修改为
user nginx nginx;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
include /opt/nginx/conf/naxsi_core.rules;
default_type application/octet-stream;
access_log off;
error_log /var/log/nginx/error.log;
sendfile on;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
gzip_disable "MSIE [1-6].(?!.*SV1)";
server {
listen 80;
server_name localhost;
location / {
include /opt/nginx/conf/naxsi.rules; # 开启插件
proxy_pass http://127.0.0.1:3456; # 通过后转发到内部监听业务地址
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
开启Nginx
测试
/opt/nginx/sbin/nginx -t
启动
/opt/nginx/sbin/nginx
测试
使用Post测试
访问业务地址
比如一个Python的接口,路由是 / ,接收Post和Get请求,直接返回 helloworld
访问时带上SQL注入
http://x.x.x.x/?q="><script>alert(1)</script>
返回404代表已成功拦截

去掉sql注入访问返回200

Nginx集成Naxsi防火墙的更多相关文章
- 烂泥:php5.6源码安装及php-fpm配置与nginx集成
本文由秀依林枫提供友情赞助,首发于烂泥行天下. LNMP环境的搭建中,现在只有php没有源码安装过.这篇文章就把这个介绍下. 注意本篇文章使用的centos 6.5 64bit. 登陆centos下载 ...
- NGINX的奇淫技巧 —— 5. NGINX实现金盾防火墙的功能(防CC)
NGINX的奇淫技巧 —— 5. NGINX实现金盾防火墙的功能(防CC) ARGUS 1月13日 发布 推荐 0 推荐 收藏 2 收藏,1.1k 浏览 文章整理中...... 实现思路 当服务器接收 ...
- 烂泥:KVM、kickstart与nginx集成
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 前几篇文章介绍了FTP.NFS与KVM.kickstart集成的案例,从这篇文章开始,我们来介绍HTTP方式与KVM.kickstart集成. HTTP ...
- 为了解决linux配置Nginx 只能关闭防火墙才能访问的问题
使用Nginx和iptables做访问权限控制(IP和MAC) 之前配置的服务器,相当于对整个内网都是公开的,而且,除了可以通过80端口的nginx来间接访问各项服务,也可以绕过nginx,直 ...
- Nginx使用naxsi防xss、防注入攻击配置
== 对于nginx有相应模块来完成WAF构建,此处使用的是naxsi模块. == 一.安装前提 .必须安装了nginx并可提供基本服务(这个是添加模块儿的前提,自己google吧): .下载naxs ...
- windows下Nacos集群搭建与nginx集成
前言: nacos集群至少需要三个(一般为奇数个)nacos实 例,其前面顶nginx,外界入口从nginx入 一.windows下Nacos集群搭建 将Nacos的解压包复制分成3份,分别是: na ...
- Identity Server 4 从入门到落地(十二)—— 使用Nginx集成认证服务
前面的部分: Identity Server 4 从入门到落地(一)-- 从IdentityServer4.Admin开始 Identity Server 4 从入门到落地(二)-- 理解授权码模式 ...
- 使用docker+consul+nginx集成分布式的服务发现与注册架构
一.环境说明: 1.一台虚拟机,该系统已经装好了docker: ip 192.168.10.224 虚拟网卡,与主机互通 操作系统rhel6 内核 2.6.32 64位 docker版本 1.7.1 ...
- JBOSS EAP实战(2)-集群、NGINX集成、队列与安全
JBOSS HTTP的Thread Group概念 JBOSS是一个企业级的J2EE APP Container,因此它和任何一种成熟的企业级中间件一样具有Thread Group的概念.所谓Thre ...
随机推荐
- Java获取不到请求的真实IP
问题 最近在写博客浏览量的时候,设计了这么一个逻辑:同一个IP浏览一遍文章,5分钟内不刷新次数.就需要在服务器端得到用户的真实IP,我代码是这样写的(从网上找的方法): public static S ...
- 【Codeforces 1083C】Max Mex(线段树 & LCA)
Description 给定一颗 \(n\) 个顶点的树,顶点 \(i\) 有点权 \(p_i\).其中 \(p_1,p_2,\cdots, p_n\) 为一个 \(0\sim (n-1)\) 的一个 ...
- centos 7.5搭建oracle DG
一.背景 1.IP分配 主库:192.168.12.5 node1 备库:192.168.12.6 node2 2.环境 主库已安装数据库软件,已建库,并有业务数据 备库已安装数据库软件,未建库 二. ...
- pandas的学习6-合并concat
import pandas as pd import numpy as np ''' pandas处理多组数据的时候往往会要用到数据的合并处理,使用 concat是一种基本的合并方式. 而且conca ...
- 【基础】CentOS6如何将命令行模式下安装图形界面
系统版本:这里我使用的系统是CentOS6.9 安装方式:安装方式为yum源安装 1.配置yum源仓库 # 在配置之前最好把我们自己的yum仓库文件备份一下: cp /etc/yum.repos.d/ ...
- Python操作PDF-文本和图片提取(使用PyPDF2和PyMuPDF)
PDF文件格式 如今,可移植文档格式(PDF)属于最常用的数据格式.在1990年,PDF文档的结构由Adobe定义.PDF格式的思想是,对于通信过程中涉及的双方(创建者,作者或发送者以及接收者)而言, ...
- js对flv提取h264、aac音视频流
FLV提取里面的h264视频流 FLV和MP4支持的编码 流媒体和媒体文件的区别 流媒体是指将一连串的多媒体资料压缩后,经过互联网分段发送资料,在互联网上即时传输影音以供观赏的一种技术与过程,此技术使 ...
- CentOS7下常用安装服务软件源码编译安装方式的介绍
简介:介绍源码编译安装软件包的管理 源码安装优点:编译安装过程,可以设定参数,指定安装目录,按照需求进行安装,指定安装的版本,灵活性比较大. 源码安装的缺点:需要对依赖包一个一个的进行安装,不敢随便升 ...
- 高性能、低成本的高防 IP 产品能现实吗?
DDoS 攻击是网络攻击最常用的方式之一,也是企业发展道路上的阻碍.作为业务发展的巨大隐形"地雷",企业想要自建 DDoS 防御的技术门槛很高,且建设周期不可控.这给予了安全厂商海 ...
- [leetcode]79.Search Word 回溯法
/** * Given a 2D board and a word, find if the word exists in the grid. The word can be constructed ...