bunkerweb README

The project's README from github.com/bunkerity/bunkerweb. As one markdown file: README.md.

BunkerWeb logo




GitRated rating Plumber CI/CD security score
Star History Rank

🌐 Website | 🤝 Panel | 📓 Documentation | 👨‍💻 Demo | 📱 Demo UI | 🧩 Templates | 🛡️ Examples
💬 Chat | 📝 Forum | 📝 Community | 🗺️ Threatmap | 📊 Status | 🔎 Feedback

🛡️ Make security by default great again!

BunkerWeb

Overview banner

BunkerWeb is a next-generation, open-source Web Application Firewall (WAF).

Being a full-featured web server (based on NGINX under the hood), it will protect your web services to make them "secure by default." BunkerWeb integrates seamlessly into your existing environments (Linux, Docker, Swarm, Kubernetes, …) as a reverse proxy and is fully configurable (don't panic, there is an awesome web UI if you don't like the CLI) to meet your own use cases. In other words, cybersecurity is no longer a hassle.

BunkerWeb contains primary security features as part of the core but can be easily extended with additional ones thanks to a plugin system.

Why BunkerWeb?

https://github.com/user-attachments/assets/c3fed740-28d8-4335-ab05-113a9e815b4f

Security features

A non-exhaustive list of security features:

Learn more about the core security features in the security tuning section of the documentation.

Demo

https://github.com/user-attachments/assets/6fc0e3c1-d353-4a84-bad0-15bf9b6623a5

A demo website protected with BunkerWeb is available at demo.bunkerweb.io. Feel free to visit it and perform some security tests.

Web UI

https://github.com/user-attachments/assets/a3ed56f8-c124-4ca9-b8b3-4be0913b3078

BunkerWeb offers an optional user interface to manage your instances and their configurations. An online read-only demo is available at demo-ui.bunkerweb.io, feel free to test it yourself.

BunkerWeb Cloud

Don't want to self-host and manage your own BunkerWeb instance(s)? You might be interested in BunkerWeb Cloud, our fully managed SaaS offering for BunkerWeb.

Order your BunkerWeb Cloud instance and get access to:

If you are interested in the BunkerWeb Cloud offering, don't hesitate to contact us so we can discuss your needs.

PRO version

Want to quickly test BunkerWeb PRO for one month? Use the code freetrial when placing your order on the BunkerWeb panel or by clicking here to directly to apply the promo code (will be effective at checkout).

When using BunkerWeb, you have the choice of the version you want to use: open-source or PRO.

Whether it's enhanced security, an enriched user experience, or technical monitoring, the BunkerWeb PRO version allows you to fully benefit from BunkerWeb and meet your professional needs.

In the documentation or the user interface, PRO features are annotated with a crown crown pro icon to distinguish them from those integrated into the open-source version.

You can upgrade from the open-source version to the PRO one easily and at any time. The process is straightforward:

Do not hesitate to visit the BunkerWeb panel or contact us if you have any questions regarding the PRO version.

Professional services

Get the most out of BunkerWeb by getting professional services directly from the maintainers of the project. From technical support to tailored consulting and development, we are here to assist you in the security of your web services.

You will find more information by visiting the BunkerWeb Panel, our dedicated platform for professional services.

Don't hesitate to contact us if you have any questions; we will be more than happy to respond to your needs.

Ecosystem, community, and resources

Official websites, tools, and resources about BunkerWeb:

Community and social networks:

Concepts

Concepts banner

You will find more information about the key concepts of BunkerWeb in the documentation.

Integrations

The first concept is the integration of BunkerWeb into the target environment. We prefer to use the word "integration" instead of "installation" because one of the goals of BunkerWeb is to integrate seamlessly into existing environments.

The following integrations are officially supported:

Settings

Once BunkerWeb is integrated into your environment, you will need to configure it to serve and protect your web applications.

The configuration of BunkerWeb is done by using what we call the "settings" or "variables." Each setting is identified by a name such as AUTO_LETS_ENCRYPT or USE_ANTIBOT. You can assign values to the settings to configure BunkerWeb.

Here is a dummy example of a BunkerWeb configuration:

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

Multisite mode

The multisite mode is a crucial concept to understand when using BunkerWeb. Because the goal is to protect web applications, we intrinsically inherit the concept of "virtual host" or "vhost" (more info here) which makes it possible to serve multiple web applications from a single (or a cluster of) instance.

By default, the multisite mode of BunkerWeb is disabled, which means that only one web application will be served and all the settings will be applied to it. The typical use case is when you have a single application to protect: you don't have to worry about the multisite, and the default behavior should be the right one for you.

When multisite mode is enabled, BunkerWeb will serve and protect multiple web applications. Each web application is identified by a unique server name and has its own set of settings. The typical use case is when you have multiple applications to protect and you want to use a single (or a cluster depending on the integration) instance of BunkerWeb.

Custom configurations

Because meeting all the use cases only using the settings is not an option (even with external plugins), you can use custom configurations to solve your specific challenges.

Under the hood, BunkerWeb uses the notorious NGINX web server, that's why you can leverage its configuration system for your specific needs. Custom NGINX configurations can be included in different contexts like HTTP or server (all servers and/or specific server block).

Another core component of BunkerWeb is the ModSecurity Web Application Firewall: you can also use custom configurations to fix some false positives or add custom rules, for example.

Database

Database model

The state of the current configuration of BunkerWeb is stored in a backend database which contains the following data:

The following backend databases are supported: SQLite, MariaDB, MySQL, and PostgreSQL.

Scheduler

To make things automagically work together, a dedicated service called the scheduler is in charge of:

In other words, the scheduler is the brain of BunkerWeb.

Setup

Linux

Linux banner

List of supported Linux distros:

You will find more information in the Linux section of the documentation.

Docker

Docker banner

We provide ready-to-use prebuilt images for x64, x86, armv7, and arm64 platforms on Docker Hub.

Docker integration key concepts are:

You will find more information in the Docker integration section of the documentation.

Docker autoconf

Docker autoconf banner

The downside of using environment variables is that the container needs to be recreated each time there is an update, which is not very convenient. To counter that issue, you can use another image called autoconf which will listen for Docker events and automatically reconfigure BunkerWeb in real-time without recreating the container.

Instead of defining environment variables for the BunkerWeb container, you simply add labels to your web applications containers and the autoconf will "automagically" take care of the rest.

You will find more information in the Docker autoconf section of the documentation.

Kubernetes

Kubernetes banner

The autoconf acts as an Ingress controller and will configure the BunkerWeb instances according to the [Ingress resources](https://kubernetes.i

bunkerweb (bunkerity/bunkerweb)

Searching Database…

11.1K ·GitHub
Что это такое?BunkerWeb — это веб-фаервол (WAF) с открытым исходным кодом нового поколения, построенный как полнофункциональный веб-сервер на базе NGINX. Он защищает ваши веб-приложения и API по принципу «безопасно по умолчанию» и встраивается в существующую инфраструктуру как обратный прокси.
Это библиотека, которую я подключаю, или отдельный сервер, который я развёртываю?Это отдельный обратный прокси-сервер (WAF на базе NGINX), который вы запускаете перед своими веб-приложениями. Есть необязательный веб-интерфейс и служба планировщика, которая управляет конфигурацией. Это не библиотека кода.
Как это запустить?Выберите интеграцию, подходящую для вашей среды: установите пакеты на поддерживаемых дистрибутивах Linux, запустите готовые образы Docker (с контейнером планировщика), используйте образ Docker «autoconf» для автонастройки по меткам или разверните на Swarm, Kubernetes или Azure.
Что мне нужно, помимо самого BunkerWeb, чтобы его запустить?Нужна одна из поддерживаемых платформ (определённые версии дистрибутивов Linux, Docker, Swarm или Kubernetes) и база данных на бэкенде для хранения состояния конфигурации; поддерживаются SQLite, MariaDB, MySQL и PostgreSQL.
Означает ли использование образа Docker, что мне придётся пересоздавать контейнер при каждом изменении конфигурации?При обычной интеграции с Docker — да: изменения переменных окружения требуют пересоздания контейнера. Отдельный образ «autoconf» этого избегает: он отслеживает события Docker и переконфигурирует сервис в реальном времени на основе меток контейнеров.
Это для владельцев одного сайта или можно защитить сразу несколько сайтов?Поддерживается режим «мультисайт», в котором один экземпляр BunkerWeb (или кластер) может обслуживать и защищать несколько веб-приложений, каждое со своим именем сервера и настройками; по умолчанию защищено только одно приложение.
Где это работает — на физических серверах, в контейнерах или в оркестраторах?Работает на определённых дистрибутивах Linux (Debian, Ubuntu, Fedora, RHEL/CentOS/Rocky/AlmaLinux), в виде контейнеров Docker (образы для x64, x86, armv7, arm64), в Docker Swarm, в Kubernetes (через Ingress-контроллер) и в Microsoft Azure.
Всё бесплатно или где-то есть платная подписка?Ядро бесплатное по лицензии AGPLv3, но есть необязательный платный тариф PRO с дополнительными возможностями и управляемое SaaS-предложение BunkerWeb Cloud с профессиональной поддержкой.
Какие функции безопасности есть из коробки?HTTPS с автоматическим Let's Encrypt, HTTP-заголовки безопасности и усиление TLS, встроенный WAF ModSecurity с набором правил OWASP Core Rule Set, автоматическая блокировка по HTTP-кодам состояния, ограничение частоты соединений и запросов, проверки для блокировки ботов (cookie, JavaScript, captcha, hCaptcha, reCAPTCHA) и блокировка известных плохих IP-адресов через DNSBL и чёрные списки.
Можно ли управлять им без командной строки?Да, BunkerWeb поставляется с необязательным веб-интерфейсом для управления экземплярами и конфигурациями, а также есть публичная демо-версия только для чтения в интернете.
Как BunkerWeb позволяет настраивать поведение сверх встроенных параметров?Помимо именованных настроек (переменных), можно внедрять пользовательские фрагменты конфигурации NGINX на уровне http или блока server, писать собственные правила ModSecurity и расширять функциональность с помощью системы плагинов.
Что под капотом обеспечивает работу конфигурации и запланированных задач?Выделенная служба «планировщик» хранит настройки и пользовательские конфигурации в базе данных бэкенда, запускает периодические задачи, генерирует итоговую конфигурацию, понятную BunkerWeb, и выступает посредником для веб-интерфейса и autoconf.
Creator
bunkerity
Size
1 GB
Stars
11.1K
Age
7y
Commits · 90 Days