Tengine 3.1.0 安装与 WAF 配置教程 (基于 Nginx 升级)

Tengine 3.1.0升级实战:基于Nginx兼容接入ModSecurity WAF全流程 Web服务器是业务流量的第一道关口,其安全防护能力直接决定应用的整体风险水位。Nginx凭借高性能与灵活的模块机制成为主流Web服务器,而Tengine作为其增强分支,在保持配置语法和模块机制全面兼容的同时,提供了动态模块加载、内置健康检查等扩展能力,让系统平滑升级成为可能。Tengine的可插拔模块设计,为接入ModSecurity这一老牌开源Web应用防火墙(WAF)引擎提供了理想载体:无需改动业务代码,通过load_module动态挂载安全引擎,即可为每个请求建立检测屏障。配合CRS通用规则集,可识别 阅读详情

Tengine 3.1.0 安装与 WAF 配置教程 (基于 Nginx 升级)

0. 约定

文中所有的域名以 <domain> 显示

1. 准备工作

1.1 备份现有 Nginx 配置

cp -r /etc/nginx /etc/nginx_backup
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_backup

1.2 安装必要依赖

apt update
apt upgrade -y
apt-get install -y build-essential autoconf automake libtool pkg-config libpcre2-dev libmodsecurity3 libmodsecurity-dev libmaxminddb-dev libpcre3 libpcre3-dev

2. 下载 Tengine 和模块

2.1 下载 Tengine 3.1.0

cd /data/downloads/
curl -OL https://tengine.taobao.org/download/tengine-3.1.0.tar.gz
tar zxf tengine-3.1.0.tar.gz

2.2 下载所需模块

cd /opt/
curl -OL https://github.com/owasp-modsecurity/ModSecurity-nginx/releases/download/v1.0.4/ModSecurity-nginx-v1.0.4.tar.gz
tar zxf ModSecurity-nginx-v1.0.4.tar.gz

curl -OL https://github.com/leev/ngx_http_geoip2_module/archive/refs/tags/3.4.tar.gz
tar zxf 3.4.tar.gz
mv ngx_http_geoip2_module-3.4 /opt/

curl -OL https://github.com/openresty/headers-more-nginx-module/archive/refs/tags/v0.37.tar.gz
tar zxf v0.37.tar.gz
mv headers-more-nginx-module-0.37 /opt/

2.3 下载 OWASP Core Rule Set

curl -OL https://github.com/coreruleset/coreruleset/releases/download/v4.15.0/coreruleset-4.15.0-minimal.tar.gz
tar zxf coreruleset-4.15.0-minimal.tar.gz
mv coreruleset-4.15.0 /etc/nginx/modsec

2.4 暂时删除有问题的规则

mv /etc/nginx/modsec/crs/rules/REQUEST-922-MULTIPART-ATTACK.conf /etc/nginx/modsec/crs/rules/REQUEST-922-MULTIPART-ATTACK.conf.bak

3. 编译安装 Tengine

3.1 配置编译选项

cd /data/downloads/tengine-3.1.0
./configure \
    --prefix=/usr/local/nginx \
    --conf-path=/etc/nginx/nginx.conf \
    --http-log-path=/var/log/nginx/access.log \
    --error-log-path=/var/log/nginx/error.log \
    --lock-path=/var/lock/nginx.lock \
    --pid-path=/run/nginx.pid \
    --modules-path=/usr/lib/nginx/modules \
    --http-client-body-temp-path=/var/lib/nginx/body \
    --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
    --http-proxy-temp-path=/var/lib/nginx/proxy \
    --http-scgi-temp-path=/var/lib/nginx/scgi \
    --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \
    --with-debug \
    --with-pcre-jit \
    --with-http_ssl_module \
    --with-http_stub_status_module \
    --with-http_realip_module \
    --with-http_auth_request_module \
    --with-http_v2_module \
    --with-http_dav_module \
    --with-http_slice_module \
    --with-threads \
    --with-http_addition_module \
    --with-http_gunzip_module \
    --with-http_gzip_static_module \
    --with-http_sub_module \
    --with-stream \
    --add-module=/opt/ngx_http_geoip2_module-3.4 \
    --add-module=/opt/headers-more-nginx-module-0.37 \
    --add-module=/opt/ModSecurity-nginx-v1.0.4

3.2 编译并安装

make
sudo make install

4. 配置 ModSecurity WAF

4.1 创建 ModSecurity 配置文件

mkdir -p /etc/nginx/modsec
cp /etc/nginx/modsec/crs-setup.conf.example /etc/nginx/modsec/crs-setup.conf

4.2 创建主配置文件

cat > /etc/nginx/modsec/main.conf <<EOF
# 基本配置
SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess On
SecResponseBodyMimeType text/plain text/html text/xml
SecResponseBodyLimit 524288
SecResponseBodyLimitAction ProcessPartial
SecTmpDir /tmp/
SecDataDir /tmp/
SecAuditEngine RelevantOnly
SecAuditLogRelevantStatus "^(?:5|4(?!04))"
SecAuditLogParts ABIJDEFHZ
SecAuditLogType Serial
SecAuditLog /var/log/nginx/modsec_audit.log
SecDebugLog /var/log/nginx/modsec_debug.log
SecDebugLogLevel 0
SecDefaultAction "phase:1,log,auditlog,pass"
SecDefaultAction "phase:2,log,auditlog,pass"

# 包含 CRS 规则
Include /etc/nginx/modsec/crs/crs-setup.conf
Include /etc/nginx/modsec/crs/rules/*.conf
EOF

4.3 配置 Nginx 加载 ModSecurity

在 /etc/nginx/nginx.conf 顶部添加:

load_module /usr/lib/nginx/modules/ngx_http_modsecurity_module.so;
load_module /usr/lib/nginx/modules/ngx_http_geoip2_module.so;
load_module /usr/lib/nginx/modules/ngx_http_headers_more_filter_module.so;
load_module /usr/lib/nginx/modules/ngx_stream_geoip2_module.so;

在 http 块中添加:

# ModSecurity 基本配置
modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/main.conf;

5. 配置虚拟主机 WAF 规则

示例配置 (/etc/nginx/conf.d/<domain>.conf):

server {
    listen 443 ssl;
    server_name <domain>;
    ssl_certificate certs/<domain>_nginx/<domain>_bundle.crt;
    ssl_certificate_key certs/<domain>.cn_nginx/<domain>.key;

    modsecurity on;
    more_clear_headers 'Server';

    # 自定义错误页面
    error_page 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 /40x.html;
    location = /40x.html {
        internal;
        root /etc/nginx/err_page/;
    }

    # 根路径返回 404 并触发自定义页面
    location = / {
        try_files /nonexistent-file @notfound;
    }
    location @notfound {
        return 404;
    }
}

6. 测试并重启服务

6.1 测试配置

nginx -t

6.2 重启服务

service nginx restart

7. 验证 WAF 是否工作

7.1 检查日志

tail -f /var/log/nginx/modsec_audit.log

7.2 测试 WAF 规则

curl -k "https://<domain>/?param=../../etc/passwd"
Tengine(Nginx)的部署与核心配置实战 本文详细介绍了Tengine(Nginx的增强版)的部署与核心配置实战,包括环境准备、安装指南、性能调优、安全加固及生产环境最佳实践。通过具体案例和配置示例,帮助开发者高效部署和优化Tengine,提升高并发场景下的Web服务器性能。 阅读详情

相关推荐

雷池社区版WAF安装避坑指南:当Docker遇到宝塔面板时的5个常见错误

本文详细介绍了在宝塔面板环境中安装雷池社区版WAF的避坑指南,特别针对Docker与宝塔面板共存时的5个常见错误提供了解决方案。内容包括环境准备、分步安装流程、端口冲突解决及高级配置优化,帮助用户高效部署WAF防护系统。

weixin_29233857的博客 393

Tengine-3.1.0的编译安装

tengine 3.1.0的编译安装

ssssola的博客 2741

NGINX高危漏洞CVE-2026-42945深度解析与应急响应指南

HTTP请求处理是Web服务器的基础功能,其核心在于对请求头等数据的解析与内存管理。NGINX采用内存池机制提升性能,但在特定条件下,预分配空间与实际处理后的数据大小计算可能出现不匹配,导致堆缓冲区溢出。这类内存安全漏洞危害极大,攻击者可能通过覆盖相邻的关键数据结构(如函数指针),劫持程序控制流,最终实现远程代码执行,从而完全控制服务器。在Web服务器、反向代理、API网关等广泛的应用场景中,此类漏洞威胁着服务可用性与数据安全。近期曝光的CVE-2026-42945正是这样一个潜伏于NGINX核心代码长达1

cojm55771的博客 444

安装与配置 Tengine 及自动脚本

Tengine 是一个基于 Nginx 的高性能 Web 服务器。本文将介绍如何下载、安装 Tengine,并配置自动启动脚本,使其在系统启动时自动运行。

灿嘿嘿的博客分享 3091

Nginx正则表达式DoS漏洞CVE-2024-38077:原理、复现与纵深防御实战

正则表达式是Web服务器配置中用于路由匹配和请求处理的常见技术,其核心原理是通过模式匹配引擎解析字符串。然而,当正则表达式设计存在缺陷时,特定输入可能触发引擎的灾难性回溯,导致CPU计算资源被耗尽,形成拒绝服务攻击。这种技术风险在Nginx等高性能Web服务器中尤为关键,因为其配置广泛使用正则表达式进行location匹配。从技术价值看,理解正则表达式回溯机制有助于构建更健壮的服务架构,避免单点请求导致整个服务不可用。应用场景主要涉及Web服务器的安全配置审计、应急响应和性能优化。本文聚焦于Nginx的CV

weixin_30340819的博客 631

NGINX高危RCE漏洞CVE-2026-42945深度解析与修复指南

缓冲区溢出是软件安全领域长期存在的经典漏洞类型,其核心原理是程序向预先分配的内存边界之外写入数据,从而破坏相邻内存区域的正常结构。在C语言等手动管理内存的语言中,若缺乏严格的边界检查,攻击者可通过精心构造的输入数据触发溢出,进而覆盖关键的函数指针或返回地址,最终实现控制流劫持与远程代码执行。这类漏洞的技术价值在于其危害性极高,常被用于渗透测试与高级持续性威胁攻击,是攻防对抗的焦点。其典型应用场景广泛存在于Web服务器、网络协议栈及系统服务等底层基础设施中。本文聚焦于一个在NGINX中潜伏18年的高危整数溢出

weixin_34187862的博客 364

今日最佳WAF雷池社区版,tengine问题解决办法

很多第一次使用雷池社区版的朋友会碰到tengine相关的问题 其实官方文档都有记录怎么排除,这里都单独把tengine的排查方法再说一下

caomengde233的博客 585

正则回溯绕过WAF:从SQL注入与RCE原理到CTF实战

SQL注入和远程命令执行(RCE)是Web安全领域最核心的漏洞类型,其本质在于用户输入被误当作代码执行,从而威胁数据与系统安全。为防御此类攻击,Web应用防火墙(WAF)应运而生,它通常依赖正则表达式规则来识别和拦截恶意流量。然而,正则表达式引擎在处理复杂模式时采用的回溯算法,可能成为其软肋。攻击者通过构造特定的超长或复杂字符串,可诱导WAF进行指数级回溯,消耗大量资源,导致匹配超时或失败,从而实现绕过。这种正则回溯绕过技术,在CTF竞赛和高级渗透测试中,常被用于突破对SQL注入、RCE等关键字的过滤,体现

weixin_33693070的博客 592

Linux 运维知识梳理(5)Nginx 详解

架构图 软件版本 软件 版本 CentOS 7.9 Nginx 1.20.2 PHP 7.4.4 Mysql 5.7.35 简介 CentOS CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Ha

刘李404not_found的博客 3808

NGINX高危漏洞CVE-2026-42945深度剖析:18年逻辑缺陷的复现与修复指南

堆缓冲区溢出是Web服务器中常见的内存安全漏洞,通常由不安全的字符串操作函数或逻辑缺陷引发。其原理在于程序向分配的堆内存区域写入数据时,超出了预定的边界,覆盖了相邻的内存区域,可能导致进程崩溃、信息泄露或远程代码执行。这类漏洞的技术价值在于,攻击者往往能利用其绕过系统安全机制,直接威胁服务器安全。在Web服务器、反向代理等应用场景中,此类漏洞影响尤为广泛。本文聚焦于NGINX中一个潜伏18年的逻辑漏洞(CVE-2026-42945),它源于`ngx_http_rewrite_module`模块内部`is_a

weixin_33834075的博客 437

NGINX高危漏洞CVE-2026-42945深度解析:从Chunked编码缺陷到RCE利用链

HTTP协议中的Chunked传输编码是一种在未知内容大小时流式传输数据的核心机制,它通过分块方式提升传输效率。其工作原理是将数据划分为多个带有大小标识的块,由服务器按序解析和重组。这一机制的技术价值在于支持动态内容生成和长连接优化,广泛应用于代理服务器、API网关和流媒体服务等场景。然而,底层解析逻辑的微小缺陷可能导致严重的安全问题。近期曝光的NGINX高危漏洞CVE-2026-42945,正是源于对Chunked编码中块大小解析的歧义处理,攻击者可利用此缺陷构造恶意请求,通过内存破坏、信息泄露等步骤,最

weixin_33924220的博客 498

网盘直链下载助手 LinkSwift 完整使用指南:九大网盘直链快速获取教程

LinkSwift(网盘直链下载助手)是一个免费的浏览器用户脚本,在网盘页面上调用各家服务商的公开 API,把文件的真实下载地址解析出来,覆盖百度网盘、阿里云盘、123云盘在内的九大网盘。装好后,在网盘页面上三次点击就能拿到可供下载器使用的直链或命令行。 ## 🎯 它适合谁,覆盖哪些网盘 适合这样的用户:办公电脑装不了网盘客户端,又不想为每个网盘单独装一遍 App,只想把文件拿下来。脚本直接

gitblog_00348的博客 181

在CentOS下编译安装Tengine服务器

确保没有出现任何错误后,继续执行make命令编译源代码,并使用sudo make install命令将编译后的二进制文件安装到系统中。您现在可以根据自己的需求进行进一步的配置和定制,以满足您的Web服务器需求。访问Tengine的官方网站(http://tengine.taobao.org/)并下载最新的稳定版本的源代码。将下载的压缩文件解压到您选择的目录中。Tengine是一个基于Nginx开发的高性能Web服务器,本文将详细介绍在CentOS操作系统下编译安装Tengine服务器的步骤和相关源代码。

IqFlask的博客 518

Nginx保姆级教学二

Nginx保姆级别的教学,全是0基础干货

小郑 536

tengine 3.1.0

tengine 3.1.0最新版本

tengine_waf:Tengine_waf,具有WAF防火墙功能的te​​ngine系统,防止网络攻击和cc攻击的功能,小巧灵便,简单可依赖

Tengine WAFF 基于tengine的防攻击模块,最初我尝试了mod-security,但有一个bug,在大并发的时候狂吃内存,直到拖垮应用,不后来转向ngx_lua_waf(感谢loveshell),并在此基础上做了改良,觉得效果不错,就推荐给大家。 一,部署 部署简单,拿来就能用。整个工程是基于centos6.x,已经编译好了。 如果是其他系统,需要重新编译一遍,参考loveshell的编译步骤。 (1) 下载 到/usr/local/ 目录 (2) chown –R nobody:nobody /usr/local/tengine (3) cp –r /usr/local/tengine/lib/* /usr/lib64/ (4) 配置 /usr/local/tengine/conf/server/ 站点 参照模板,比普通的vhosts配置只在location

K8s 网关选型初判:Nginx 还是 Envoy?

本文将从性能和成本、可靠性、安全性 3 方面,对两大开源实现进行比对,希望对正在做 K8s 网关选型的企业有所借鉴。

阿里巴巴云原生的博客 1453

tengine淘宝Web服务器 v3.1.0.zip

tengine淘宝Web服务器 v3.1.0.zip

上一篇: ubuntu24.04.2安装docker自动化脚本
下一篇: CPP-L1备课记录
相信光的疯子
博客等级 码龄18年 91粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值