网站首页 > 技术教程 正文
能够浏览我的这篇文章,相信你已经对 Nginx 不陌生了,所以这里就不再赘述 Nginx 的安装和配置了,我们直接从 Nginx 和 Naxsi 的集成来讲,如果你对 Nginx 还比较陌生,不知道配置文件在哪里或者不知道如何编译,那这篇文章不太适合你,还请先熟悉 Nginx 的安装和配置编译。
我为什么需要 WAF 呢?随着网站上线时间变长,各种扫描攻击也日益增多,为了能安心一点,所以就希望能有个 WAF防火墙抵挡大部分攻击扫描,但是硬件 WAF防火墙虽然好,价格也十分昂贵,中小型企业或者创业团队肯定没有资金来购买昂贵的安全设备的,但是 Nginx + Naxsi 就可以构建一个免费的软件 WAF防火墙,所以我开始尝试使用 Naxsi 来实现我的 WAF防火墙。
在开始之前,我们先了解一下都需要准备的环境(我所演示的操作均在Linux环境下):
- Nginx:http://nginx.org/en/download.html
- Naxsi:https://github.com/nbs-system/naxsi
- Linux环境我安装了:crontabs gcc gcc-c++ glibc libpcre3-dev make zlib autoconf openssl openssl-devel wget libxslt-devel gd gd-devel GeoIP GeoIP-devel pcre pcre-devel
一、下载和安装各项依赖和包
1、我使用的Centos7,所以直接使用 yum 安装:
yum -y install crontabs gcc gcc-c++ glibc libpcre3-dev make zlib autoconf openssl openssl-devel wget libxslt-devel gd gd-devel GeoIP GeoIP-devel pcre pcre-devel
2、下载 Nginx:
wget -P /usr/local/src/ http://nginx.org/download/nginx-1.16.0.tar.gz
3、下载 Naxsi:
wget -P /usr/local/src/ https://github.com/nbs-system/naxsi/archive/untagged-afabfc163946baa8036f.tar.gz
4、解压 Nginx 和 Naxsi:
tar vxf nginx-1.16.0.tar.gz tar vxf untagged-afabfc163946baa8036f.tar.gz
注意,untagged-afabfc163946baa8036f.tar.gz 就是下载的 Naxsi,解压后就是下文中的 naxsi 文件夹
5、新建 Nginx 的工作目录
mkdir /usr/local/nginx
6、配置 Nginx 的各个模块,在此处添加 Naxsi 模块,注意下文中的 “../naxsi/” 就是 Naxsi 解压的文件夹
cd nginx-1.16.0/ ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --add-module=../naxsi/naxsi_src \ --with-http_stub_status_module\ --with-http_gzip_static_module\ --with-http_realip_module\ --with-http_ssl_module
7、编译安装
make modules make make install
8、复制 Naxsi 的核心规则文件到指定位置
cp ../naxsi/naxsi_config/naxsi_core.rules /etc/nginx/naxsi_core.rules
二、配置 Nginx 的配置文件 nginx.conf
1、在 http 节点处
http { #上下文省略 include /etc/nginx/naxsi_core.rules; # 此处加载 naxsi 核心规则文件 #上下文省略 }
2、在 server 节点处
server { #上下文省略 # 启用Naxsi模块 SecRulesEnabled; # 启用学习模式,即拦截请求后不拒绝访问,只将触发规则的请求写入日志 #LearningMode; #enable learning mode LibInjectionSql; #enable libinjection support for SQLI LibInjectionXss; #enable libinjection support for XSS # 拒绝访问时展示的页面 DeniedUrl "/RequestDenied"; # 检查规则 CheckRule "$SQL >= 8" BLOCK; CheckRule "$RFI >= 8" BLOCK; CheckRule "$TRAVERSAL >= 4" BLOCK; CheckRule "$EVADE >= 4" BLOCK; CheckRule "$XSS >= 8" BLOCK; error_log logs/naxsi.log; # 配置拦截后拒绝访问时展示的页面,这里直接返回403。 location /RequestDenied { return 403; } #上下文省略 }
这里说下 LearningMode 学习模式,如果把这个放出来,启用学习模式的话,就不会拦截攻击,只是把攻击请求写入 error_log 日志里面,所以我们需要它拦截攻击,就需要把这个注释掉。
三、重启 Nginx,验证是否能拦截攻击请求
/usr/local/nginx/sbin/nginx -t /usr/local/nginx/sbin/nginx -s reload
验证方法也很简单,执行类似这样的请求:
http://localhost/?id=<>
如果显示的是 403 禁止访问,那么就是成功了!
猜你喜欢
- 2024-10-13 一次Nignx的502页面的错误记录(一次nignx的502页面的错误记录怎么办)
- 2024-09-28 Linux环境通过Dockerfile创建Nginx镜像
- 2024-09-28 你可能忽略的macOS下brew安装nginx细节解读,干货
- 2024-09-28 centos7安装fastdfs集群+nginx1.18(生产环境)
- 2024-09-28 linux安装nginx(linux安装软件的三种方式)
- 2024-09-28 linux安装nginx,实现nginx负载均衡,图片服务器
- 2024-09-28 大数据离线项目实践之nginx服务器搭建
- 2024-09-28 Nginx静态服务器与负载均衡配置(nginx静态资源配置)
- 2024-09-28 离线项目实践之nginx服务器搭建(nginx离线安装与配置详解)
- 2024-09-28 安装Nginx的几种方式(nginx安装与配置详解)
你 发表评论:
欢迎- 最近发表
-
- Win10 TH2正式版官方ESD映像转换ISO镜像方法详解
- 使用iso镜像升级到Windows 10的步骤
- macOS Ventura 13.2 (22D49) Boot ISO 原版可引导镜像
- 安利一个用ISO镜像文件制作引导U盘的的小工具RUFUS
- CentOS 7使用ISO镜像配置本地yum源
- 用于x86平台的安卓9.0 ISO镜像发布下载:通吃I/A/N、完全免费
- AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术
- Rufus写入工具简洁介绍与教程(写入模式)
- 新硬件也能安装使用了,Edge版Linux Mint 21.3镜像发布
- 开源工程师:Ubuntu应该抛弃32位ISO镜像
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)