从裸奔到三层防护:aaPanel + Nginx + 雷池 WAF 构建应用安全链路

发布时间:2026/8/7 6:52:34

从裸奔到三层防护:aaPanel + Nginx + 雷池 WAF 构建应用安全链路
一个真实记录如何把 Python 项目从IP:3210直接暴露变成 WAF→Nginx→App 三层防护的完整过程。---------------------AI角色扮演网站安全加固实战篇二背景继 AI 角色扮演网站安全加固实战篇一之后我又把这个项目搬到了本地的一台老惠普本上刷了个 Linux Mint 22.3 LTS基于 Ubuntu 24.04 LTS当家庭服务器。这个 Python FastAPI 项目通过 aaPanel 面板部署图省事直接 IP:3210 裸奔访问。但这台机器就挂在家庭 WiFi 下跑着同一个局域网、甚至能摸到这个 IP 的人都可以直接打到应用端口。万一碰上恶意扫描、SQL 注入、暴力破解就凭代码里那点安全中间件分分钟被穿成筛子。这波操作模拟的就是最真实的业务防御场景同时也在模拟真实公网业务的防御。补充下原python项目架构之前忘记提及了技术栈层技术Web 框架FastAPI 0.115服务器uvicorn 0.30数据库SQLite (aiosqlite, WAL 模式)认证JWT (HS256, Cookie, 30天过期)HTTP 客户端aiohttp (调用外部 AI API)模板纯 HTML (templates 目录)静态资源FastAPI StaticFiles项目文件结构aichat/ ├── main.py ← 全部业务逻辑单文件 ├── data.db ← SQLite 数据库自动创建 ├── .env ← 环境变量SECRET_KEY / HOST / PORT ├── requirements.txt ← Python 依赖 ├── templates/ │ ├── chat.html ← 聊天主页面 │ ├── login.html ← 登录/注册页 │ └── settings.html ← 设置页 └── static/ ← CSS / JS 等静态资源这次需求很清楚基于 aaPanel 配置 Nginx 反向代理与 UFW 端口访问控制接入雷池 WAF 实现 HTTP 层防护构建适配局域网 IP端口访问模式的应用安全链路。翻译成人话外面的人只能走正门某个指定端口正门有安检WAF 查恶意请求再由传达室Nginx转交到真正干活的人Python 应用躲在内网。直通的后门端口3210焊死。最终架构局域网用户 → 雷池 WAF (:3211) → Nginx (:8081) → Python App (127.0.0.1:3210) HTTP 层攻击检测 反向代理限流 业务逻辑(外部不可达)每个端口谁负责、外面能不能访问端口服务外部可访问3211雷池 WAF唯一入口✅9443雷池管理面板✅8081Nginx 反向代理❌ 仅 127.0.0.13210Python 应用❌ 仅 127.0.0.1实施过程第1步加固应用自身让 Python 应用只监听本机回环地址放弃对外暴露。.env加一行HOST127.0.0.1main.py末尾启动参数加代理头支持uvicorn.run(app,hostHOST,portPORT,proxy_headersTrue,forwarded_allow_ips127.0.0.1)同时加了个中间件解析X-Forwarded-For经过 WAF/Nginx 后还能拿到真实客户端 IP。第2步aaPanel 配置 Nginx 反向代理在 aaPanel 新建站点端口填8081绕开 aaPanel 保留端口的限制。Nginx 配置upstream aichat_backend{# 应用只监听 127.0.0.1:3210不对外暴露server127.0.0.1:3210fail_timeout10smax_fails3;keepalive32;}# ---------- 限流区域 ----------# 常规请求每秒 30 个对 AI 聊天够用limit_req_zone$binary_remote_addrzoneaichat_limit:10mrate30r/s;# 登录接口每分钟 10 个防暴力破解limit_req_zone$binary_remote_addrzoneaichat_login:10mrate10r/m;# ---------- 服务器块 ----------server{# aaPanel 默认会生成 listen 80此处显式声明供 WAF 转发的端口listen8081;server_name _192.168.124.27;# 接受任意域名/IP 访问局域网场景# 日志aaPanel 通常已有日志配置按需调整access_log /www/wwwlogs/aichat_access.log;error_log /www/wwwlogs/aichat_error.log;# 上传限制聊天一般不需要大文件调小防滥用client_max_body_size 10m;client_body_buffer_size 128k;client_header_buffer_size 4k;large_client_header_buffers48k;# 超时SSE 流式响应需较长超时proxy_read_timeout 300s;proxy_send_timeout 300s;proxy_connect_timeout 10s;keepalive_timeout65;# ---------- 安全头 ----------add_header X-Content-Type-Optionsnosniffalways;add_header X-Frame-OptionsDENYalways;add_header X-XSS-Protection1; modeblockalways;add_header Referrer-Policystrict-origin-when-cross-originalways;# 隐藏 Nginx 版本号server_tokens off;# ---------- 主反向代理 ----------location /{# 限流limit_reqzoneaichat_limitburst50nodelay;proxy_pass http://aichat_backend;# ---- 关键传递客户端真实信息给后端 ----proxy_set_header Host$host;proxy_set_header X-Real-IP$remote_addr;# 追加本机 IP 到 X-Forwarded-ForWAF 已将客户端 IP 放在此头proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto$scheme;proxy_set_header X-Forwarded-Host$host;proxy_set_header X-Forwarded-Port$server_port;# ---- WebSocket / SSE 支持 ----proxy_http_version1.1;proxy_set_header Upgrade$http_upgrade;proxy_set_header Connectionupgrade;# ---- 缓冲流式响应关闭缓冲----proxy_buffering off;proxy_cache off;# ---- 错误处理 ----proxy_next_upstream errortimeoutinvalid_header http_500 http_502 http_503;proxy_next_upstream_tries2;}# ---------- 登录接口限流加强 ----------location /api/login{limit_reqzoneaichat_loginburst5nodelay;proxy_pass http://aichat_backend;proxy_set_header Host$host;proxy_set_header X-Real-IP$remote_addr;proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto$scheme;proxy_http_version1.1;}# ---------- 拒绝敏感文件访问 ----------location ~*\.(db|sqlite|sqlite3|env|pyc|py|git|svn)${deny all;return404;}# ---------- 健康检查 ----------location /health{access_log off;return200OK;add_header Content-Type text/plain;}}第3步安装雷池 WAF# 下载脚本wgethttps://waf-ce.chaitin.cn/release/latest/setup.sh# 如果 wget 报证书错就用这个curl-fsSLkhttps://waf-ce.chaitin.cn/release/latest/setup.sh-osetup.sh# 给执行权限chmodx setup.sh# 用 bash 运行注意直接用 bash 命令sudobashsetup.sh后续根据安装引导选Y即可可先按引导说的暂时关闭防火墙后续再开放对应端口然后打开防火墙也不迟。登录管理面板IP:9443建站点上游填127.0.0.1:8081监听端口3211开启攻击防护和CC防护上图为添加我的AI聊天网站截图上图为cc防护配置截图第4步UFW 防火墙配置sudoufw allow9443/tcp# 雷池管理sudoufw deny3210/tcp# 关闭端口封死应用直连sudoufw deny8081/tcp# 关闭端口封死 Nginx 直连sudoufwenable踩坑记录坑1aaPanel 不让用 8080 端口aaPanel 自己占用了 8080新建站点填不了。换成8081解决。端口号不重要只要整个链路一致就行。坑2配置 Nginx 后页面样式全丢Nginx 配置里我错误加了个/static/拦截块导致能访问网页但是格式全丢变成一大堆文字了。这是典型的过早优化——想着让 Nginx 直接托管静态文件提升性能但路径没搞清楚就先加上了。删掉这个块让静态文件透传给 Python 处理立刻恢复。教训先把主链路调通性能优化放最后。验证# 走正门经过 WAF Nginxcurlhttp://服务器IP:3211/ → ✅ 正常页面# 走后门直接摸应用curlhttp://服务器IP:3210/ → ❌ 超时/拒绝# 摸 Nginxcurlhttp://服务器IP:8081/ → ❌ 超时/拒绝总结整个方案让它实现了每一层只做一件事UFW— 只管端口里面跑的一概不管雷池 WAF— 只管 HTTP 层恶意流量不操心路由Nginx— 只管代理转发和限流不操心安全检测Python 应用— 只管业务逻辑躲在最后面套在一起就是一条完整的防护链。任何一层挂了另外两层还在。

相关新闻

Electron菜单与托盘开发实战:跨平台桌面应用的核心交互

Electron菜单与托盘开发实战:跨平台桌面应用的核心交互

2026/8/7 6:52:34

1. 项目缘起:为什么Electron的菜单与托盘值得单独拎出来讲?最近在折腾一个跨平台的桌面小工具,用Electron做的。项目做到一半,我发现一个挺有意思的现象:很多开发者,包括我自己一开始,对Electro…

CSS color属性深度解析:从基础语法到现代色彩空间实战

CSS color属性深度解析:从基础语法到现代色彩空间实战

2026/8/7 6:42:34

1. 项目概述:从“color”开始,理解CSS的基石 在任何一个网页上,文字都是信息传递最核心的载体。而文字的颜色,则是塑造视觉层次、传递情绪、引导用户视线的第一道关卡。你可能觉得,给文字上个颜色,不就是敲…

AP-2118A-S-PBF 电子板

AP-2118A-S-PBF 电子板

2026/8/7 6:42:34

AP-2118A-S-PBF 电子板是一款用于工业或通信设备中的关键电路组件,以下为其核心特点与应用领域概述。产品特点 采用高品质元器件,确保长期稳定运行。 具备良好的抗干扰设计,适应复杂电磁环境。 支持多种信号接口,方便与系统其他模…

2026最新视频重点整理工具口碑推荐 | 经过筛选的实用选择建议

2026最新视频重点整理工具口碑推荐 | 经过筛选的实用选择建议

2026/8/7 7:42:36

2026年经过筛选的视频重点整理实用工具中,听脑在录音类视频的重点提取整理场景适配度靠前,其余工具各有对应适配场景。适合需要整理会议、访谈、课堂类视频重点的效率工具爱好者,核心依据是其覆盖从转写到重点提取、待办梳理的完整流程。不适…

BongoCat | 爆火全网

BongoCat | 爆火全网

2026/8/7 7:42:36

链接: https://pan.baidu.com/s/1D4d2ND68OxxeuyrUQonkcw 提取码: pe5s一个基于 Tauri 开发的跨平台桌面应用程序,主要提供一只可爱的猫咪形象,可根据用户的键盘或鼠标操作进行互动。在前段其实分享过这款工具,但是是经过修改的老版本&#x…

C++ 多态:概念,定义及实现以及原理

C++ 多态:概念,定义及实现以及原理

2026/8/7 7:42:36

目录 一.多态的概念 1.1静多态 1.2动多态(重点) 二.多态的定义及实现 2.1 多态的构成条件 2.1.1 虚函数 2.1.2 实现多态还有两个必须重要条件 2.1.3 虚函数的重写/覆盖 2.1.4 多态场景的一个选择题(腾讯面试题) 2.1.5 虚…

Java SPI 从入门到源码精通:一篇彻底终结服务发现机制(附SPI坑点)

Java SPI 从入门到源码精通:一篇彻底终结服务发现机制(附SPI坑点)

2026/8/7 7:42:36

前言在复杂的软件系统中,模块间的解耦是架构设计的核心诉求。SPI(Service Provider Interface)正是 Java 官方为此提供的内置服务发现机制,允许接口定义方与实现方在编译期分离 —— 编译期依赖的是接口声明,而非具体实…

[开源]同城二手交易平台:Spring Boot + Vue 后端、Vue3 双前端,部署即用

[开源]同城二手交易平台:Spring Boot + Vue 后端、Vue3 双前端,部署即用

2026/8/7 7:42:36

从零手写「同城二手闲置平台」全套源码开源了:Spring Boot Vue3 前后端分离实战 大家好,我是专注于全栈项目实战的博主。今天给大家分享一个我完整开发并部署上线的开源项目——心享生活(xinxin-life)本地生活服务平台&#xff0…

STM32 FLASH闪存原理与实战:从基础操作到IAP应用

STM32 FLASH闪存原理与实战:从基础操作到IAP应用

2026/8/7 7:32:36

1. 项目概述:深入理解STM32的FLASH闪存 搞STM32开发,FLASH闪存绝对是一个绕不开的核心话题。它不仅是存放我们代码的“家”,更是实现产品功能升级、数据掉电保存等高级特性的关键硬件资源。很多朋友在项目初期可能只关心代码逻辑,…

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

2026/8/6 19:19:00

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am…

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

2026/8/5 6:02:27

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架…

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

2026/8/5 8:19:55

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,…

CAD图库管理:从文件归档到设计资产管理的效率革命

CAD图库管理:从文件归档到设计资产管理的效率革命

2026/8/7 0:02:15

你肯定遇到过这种情况:打开一个老项目,想找某个特定的图块——比如一个标准的门、一个特定的设备符号,或者一个公司logo。你记得它就在某个DWG文件里,或者曾经从某个同事那里拷来过。于是,你开始在一堆命名混乱的文件夹…

5分钟掌握Wand-Enhancer:2026年终极WeMod专业版免费解锁指南

5分钟掌握Wand-Enhancer:2026年终极WeMod专业版免费解锁指南

2026/8/7 0:02:15

5分钟掌握Wand-Enhancer:2026年终极WeMod专业版免费解锁指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer Wand-Enhancer是一款功能强…

“Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求

“Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求

2026/8/7 0:02:15

“Quality Control(质量控制)”在软件工程中通常指通过一系列活动确保软件产品符合预定的质量标准和用户需求。而“软件测试”是质量控制的关键手段之一,属于QC范畴下的具体实践,其目标是发现缺陷、验证功能正确性、评估软件质量属…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/6 5:43:30

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/4 14:25:14

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/4 15:11:03

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…