bunkerity/bunkerweb

GitHub: bunkerity/bunkerweb

BunkerWeb 是基于 NGINX 的开源 Web 应用防火墙,提供开箱即用的安全防护能力,保护 Web 服务免受各类网络攻击。

Stars: 10143 | Forks: 573

BunkerWeb logo




GitRated rating

🌐 网站 | 🤝 面板 | 📓 文档 | 👨‍💻 演示 | 📱 演示 UI | 🧩 模板 | 🛡️ 示例
💬 聊天 | 📝 论坛 | 📝 社区 | 🗺️ 威胁地图 | 📊 状态 | 🔎 反馈

# BunkerWeb

Overview banner

BunkerWeb 是新一代开源 Web 应用防火墙 (WAF)。 作为一个功能完备的 Web 服务器(底层基于 [NGINX](https://nginx.org/)),它将保护您的 Web 服务,实现“默认安全”。BunkerWeb 作为反向代理,可以无缝集成到您现有的环境([Linux](https://docs.bunkerweb.io/1.6.9/integrations/?utm_campaign=self&utm_source=github#linux)、[Docker](https://docs.bunkerweb.io/1.6.9/integrations/?utm_campaign=self&utm_source=github#docker)、[Swarm](https://docs.bunkerweb.io/1.6.9/integrations/?utm_campaign=self&utm_source=github#swarm)、[Kubernetes](https://docs.bunkerweb.io/1.6.9/integrations/?utm_campaign=self&utm_source=github#kubernetes) 等)中,并且完全可配置(别担心,如果您不喜欢 CLI,我们提供了一个[很棒的 Web UI](https://docs.bunkerweb.io/1.6.9/web-ui/?utm_campaign=self&utm_source=github))以满足您的特定用例。换句话说,网络安全不再是件麻烦事。 BunkerWeb 的核心包含主要的[安全功能](https://docs.bunkerweb.io/1.6.9/advanced/?utm_campaign=self&utm_source=github#security-tuning),但得益于[插件系统](https://docs.bunkerweb.io/1.6.9/plugins/?utm_campaign=self&utm_source=github),可以轻松扩展更多功能。 ## 为什么选择 BunkerWeb? https://github.com/user-attachments/assets/c3fed740-28d8-4335-ab05-113a9e815b4f - **轻松集成到现有环境**:将 BunkerWeb 无缝集成到 Linux、Docker、Swarm、Kubernetes 等各种环境中。享受平滑的过渡和轻松的实施过程。 - **高度可定制**:轻松定制 BunkerWeb 以满足您的特定需求。毫不费力地启用、禁用和配置功能,根据您的独特用例自定义安全设置。 - **默认安全**:BunkerWeb 为您的 Web 服务提供开箱即用、无忧的最小安全性。从开始就体验安心和增强的保护。 - **出色的 Web UI**:通过卓越的 Web 用户界面 (UI) 更高效地掌控 BunkerWeb。通过用户友好的图形界面轻松导航设置和配置,无需使用命令行界面 (CLI)。 - **插件系统**:扩展 BunkerWeb 的能力以满足您的个人用例。无缝集成额外的安全措施,并根据您的具体要求自定义 BunkerWeb 的功能。 - **自由如“自由”**:BunkerWeb 采用自由的 [AGPLv3 许可证](https://www.gnu.org/licenses/agpl-3.0.en.html),拥抱自由和开放的原则。在支持性社区的支持下,享受使用、修改和分发软件的自由。 - **专业服务**:直接从 BunkerWeb 的维护者那里获得技术支持、定制咨询和自定义开发。访问 [Bunker Panel](https://panel.bunkerweb.io/?utm_campaign=self&utm_source=github) 了解更多信息。 ## 安全功能 非详尽的安全功能列表: - 支持透明的 **Let's Encrypt** 自动化 **HTTPS** - **最先进的 Web 安全**:HTTP 安全头、防止泄露、TLS 加固…… - 集成带有 **OWASP Core Rule Set** 的 **ModSecurity WAF** - 基于 HTTP 状态代码的异常行为**自动封禁** - 对客户端应用**连接和请求限制** - 通过要求**机器人**解决**挑战**(例如,cookie、JavaScript、captcha、hCaptcha 或 reCAPTCHA)来**拦截它们** - 使用外部黑名单和 DNSBL **拦截已知恶意 IP** - 更多功能…… 在文档的[安全调优](https://docs.bunkerweb.io/1.6.9/advanced/?utm_campaign=self&utm_source=github#security-tuning)部分了解更多关于核心安全功能的信息。 ## 演示 https://github.com/user-attachments/assets/6fc0e3c1-d353-4a84-bad0-15bf9b6623a5 受 BunkerWeb 保护的演示网站位于 [demo.bunkerweb.io](https://demo.bunkerweb.io/?utm_campaign=self&utm_source=github)。请随时访问并进行一些安全测试。 ## Web UI https://github.com/user-attachments/assets/a3ed56f8-c124-4ca9-b8b3-4be0913b3078 BunkerWeb 提供可选的[用户界面](web-ui.md)来管理您的实例及其配置。在线只读演示位于 [demo-ui.bunkerweb.io](https://demo-ui.bunkerweb.io/?utm_campaign=self&utm_source=doc),请随时自行测试。 ## BunkerWeb Cloud 不想自行托管和管理您自己的 BunkerWeb 实例?您可能会对 BunkerWeb Cloud 感兴趣,这是我们针对 BunkerWeb 的全托管 SaaS 产品。 订购您的 [BunkerWeb Cloud 实例](https://panel.bunkerweb.io/store/bunkerweb-cloud?utm_campaign=self&utm_source=doc)并获得: - 托管在我们云端的完全管理的 BunkerWeb 实例 - 所有 BunkerWeb 功能,包括 PRO 功能 - 带有仪表板和警报的监控平台 - 技术支持,协助您进行配置 如果您对 BunkerWeb Cloud 产品感兴趣,请随时[联系我们](https://panel.bunkerweb.io/contact.php?utm_campaign=self&utm_source=doc),以便我们讨论您的需求。 ## PRO 版本 想快速试用一个月的 BunkerWeb PRO?在 [BunkerWeb 面板](https://panel.bunkerweb.io/store/bunkerweb-pro?utm_campaign=self&utm_source=doc)下单时使用代码 `freetrial`,或点击[这里](https://panel.bunkerweb.io/cart.php?a=add&pid=19&promocode=freetrial&utm_campaign=self&utm_source=doc)直接应用促销代码(将在结账时生效)。 使用 BunkerWeb 时,您可以选择要使用的版本:开源版或 PRO 版。 无论是增强的安全性、更丰富的用户体验还是技术监控,BunkerWeb PRO 版本都能让您充分利用 BunkerWeb 并满足您的专业需求。 在文档或用户界面中,PRO 功能会用皇冠 crown pro icon 标注,以便与开源版本中集成的功能区分开来。 您可以随时轻松地从开源版本升级到 PRO 版本。该过程非常简单: - 在 [BunkerWeb 面板](https://panel.bunkerweb.io/store/bunkerweb-pro?utm_campaign=self&utm_source=doc)上结账时使用 `freetrial` 促销代码申请免费试用 - 连接到客户区后,复制您的 PRO 许可证密钥 - 使用 [Web UI](https://docs.bunkerweb.io/1.6.9/web-ui/#upgrade-to-pro) 或[特定设置](https://docs.bunkerweb.io/1.6.9/features/#pro)将您的许可证密钥粘贴到 BunkerWeb 中 如果您对 PRO 版本有任何疑问,请随时访问 [BunkerWeb 面板](https://panel.bunkerweb.io/knowledgebase?utm_campaign=self&utm_source=doc)或[联系我们](https://panel.bunkerweb.io/contact.php?utm_campaign=self&utm_source=doc)。 ## 专业服务 直接从项目维护者那里获取专业服务,充分利用 BunkerWeb。从技术支持到定制咨询和开发,我们在此协助您保障 Web 服务的安全。 访问 [BunkerWeb Panel](https://panel.bunkerweb.io/?utm_campaign=self&utm_source=doc),我们的专业服务专用平台,您将找到更多信息。 如果您有任何疑问,请随时[联系我们](https://panel.bunkerweb.io/contact.php?utm_campaign=self&utm_source=doc);我们将非常乐意回应您的需求。 ## 生态系统、社区和资源 关于 BunkerWeb 的官方网站、工具和资源: - [**网站**](https://www.bunkerweb.io/?utm_campaign=self&utm_source=doc):获取关于 BunkerWeb 的更多信息、新闻和文章 - [**面板**](https://panel.bunkerweb.io/?utm_campaign=self&utm_source=doc):用于订购和管理 BunkerWeb 周围专业服务(例如技术支持)的专用平台 - [**文档**](https://docs.bunkerweb.io):BunkerWeb 解决方案的技术文档 - [**演示**](https://demo.bunkerweb.io/?utm_campaign=self&utm_source=doc):BunkerWeb 演示网站,请随时尝试攻击以测试解决方案的稳健性 - [**Web UI**](https://demo-ui.bunkerweb.io/?utm_campaign=self&utm_source=doc):BunkerWeb 的 Web UI 在线只读演示 - [**威胁地图**](https://www.bunkerweb.io/threatmap/?utm_campaign=self&utm_source=doc):全球范围内被 BunkerWeb 实例阻止的实时网络攻击 社区和社交网络: - [**Discord**](https://discord.com/invite/fTf46FmtyD) - [**LinkedIn**](https://www.linkedin.com/company/bunkerity/) - [**Twitter**](https://twitter.com/bunkerity) - [**Reddit**](https://www.reddit.com/r/BunkerWeb/) # 概念

Concepts banner

您将在[文档](https://docs.bunkerweb.io/1.6.9/concepts/?utm_campaign=self&utm_source=github)中找到关于 BunkerWeb 关键概念的更多信息。 ## 集成 第一个概念是将 BunkerWeb 集成到目标环境中。我们更倾向于使用“集成”一词而不是“安装”,因为 BunkerWeb 的目标之一是无缝集成到现有环境中。 官方支持以下集成方式: - [Docker](https://docs.bunkerweb.io/1.6.9/integrations/?utm_campaign=self&utm_source=github#docker) - [Linux](https://docs.bunkerweb.io/1.6.9/integrations/?utm_campaign=self&utm_source=github#linux) - [Docker autoconf](https://docs.bunkerweb.io/1.6.9/integrations/?utm_campaign=self&utm_source=github#docker-autoconf) - [Kubernetes](https://docs.bunkerweb.io/1.6.9/integrations/?utm_campaign=self&utm_source=github#kubernetes) - [Swarm](https://docs.bunkerweb.io/1.6.9/integrations/?utm_campaign=self&utm_source=github#swarm) - [Microsoft Azure](https://docs.bunkerweb.io/1.6.9/integrations/?utm_campaign=self&utm_source=github#microsoft-azure) ## 设置 一旦 BunkerWeb 集成到您的环境中,您将需要对其进行配置以服务和保护您的 Web 应用程序。 BunkerWeb 的配置是通过我们所谓的“设置”或“变量”完成的。每个设置都由一个名称标识,例如 `AUTO_LETS_ENCRYPT` 或 `USE_ANTIBOT`。您可以为设置分配值来配置 BunkerWeb。 这是一个 BunkerWeb 配置的虚拟示例: ``` SERVER_NAME=www.example.com AUTO_LETS_ENCRYPT=yes USE_ANTIBOT=captcha REFERRER_POLICY=no-referrer USE_MODSECURITY=no USE_GZIP=yes USE_BROTLI=no ``` ## 多站点模式 多站点模式是使用 BunkerWeb 时需要理解的一个关键概念。因为目标是保护 Web 应用程序,我们本质上继承了“虚拟主机”或“vhost”的概念(更多信息请参见[这里](https://en.wikipedia.org/wiki/Virtual_hosting)),这使得可以从单个(或集群)实例提供多个 Web 应用程序服务。 默认情况下,BunkerWeb 的多站点模式是禁用的,这意味着只有一个 Web 应用程序将被服务,并且所有设置都将应用于它。典型的用例是当您只有一个应用程序需要保护时:您不必担心多站点问题,默认行为应该适合您。 启用多站点模式后,BunkerWeb 将服务和保护多个 Web 应用程序。每个 Web 应用程序由唯一的服务器名称标识,并拥有自己的一组设置。典型的用例是当您有多个应用程序需要保护,并且您希望使用单个(或根据集成方式而定的集群)BunkerWeb 实例时。 ## 自定义配置 因为仅使用设置来满足所有用例是不现实的(即使使用[外部插件](https://docs.bunkerweb.io/1.6.9/plugins/?utm_campaign=self&utm_source=github)),您可以使用自定义配置来解决您的特定挑战。 在底层,BunkerWeb 使用著名的 NGINX Web 服务器,这就是为什么您可以利用其配置系统来满足您的特定需求。自定义 NGINX 配置可以包含在不同的[上下文](https://docs.nginx.com/nginx/admin-guide/basic-functionality/managing-configuration-files/#contexts)中,例如 HTTP 或服务器(所有服务器和/或特定服务器块)。 BunkerWeb 的另一个核心组件是 ModSecurity Web 应用防火墙:您也可以使用自定义配置来修复一些误报或添加自定义规则,例如。 ## 数据库

Database model

BunkerWeb 当前配置的状态存储在后端数据库中,其中包含以下数据: - 为所有服务定义的设置 - 自定义配置 - BunkerWeb 实例 - 关于作业执行的元数据 - 缓存文件 支持以下后端数据库:SQLite、MariaDB、MySQL 和 PostgreSQL。 ## 调度器 为了使事物能够自动协同工作,一个名为调度器的专用服务负责: - 在数据库中存储设置和自定义配置 - 执行各种任务(称为作业) - 生成 BunkerWeb 可以理解的配置 - 作为其他服务(如 Web UI 或 autoconf)的中间人 换句话说,调度器是 BunkerWeb 的大脑。 # 设置