Skip to content

bunkerity/bunkerweb

BunkerWeb logo



🌐Website | 🤝Panel | 📓Documentation | 👨‍💻Demo | 🛡️Examples | 💬Chat | 📝Forum
⚙️Configurator | 🗺️Threatmap | 🔎Feedbacks

🛡️ Make security by default great again!

BunkerWeb

Overview banner

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

Being a full-featured web server (based onNGINXunder 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,…) and is fully configurable (don't panic, there is anawesome web UIif you don't like the CLI) to meet your own use-cases. In other words, cybersecurity is no more a hassle.

BunkerWeb contains primarysecurity featuresas part of the core but can be easily extended with additional ones thanks to aplugin system.

Why BunkerWeb?

  • Easy integration into existing environments:Seamlessly integrate BunkerWeb into various environments such as Linux, Docker, Swarm, Kubernetes and more. Enjoy a smooth transition and hassle-free implementation.
  • Highly customizable:Tailor BunkerWeb to your specific requirements with ease. Enable, disable, and configure features effortlessly, allowing you to customize the security settings according to your unique use case.
  • Secure by default:BunkerWeb provides out-of-the-box, hassle-free minimal security for your web services. Experience peace of mind and enhanced protection right from the start.
  • Awesome web UI:Take control of BunkerWeb more efficiently with the exceptional web user interface (UI). Navigate settings and configurations effortlessly through a user-friendly graphical interface, eliminating the need for the command-line interface (CLI).
  • Plugin system:Extend the capabilities of BunkerWeb to meet your own use cases. Seamlessly integrate additional security measures and customize the functionality of BunkerWeb according to your specific requirements.
  • Free as in "freedom":BunkerWeb is licensed under the freeAGPLv3 license,embracing the principles of freedom and openness. Enjoy the freedom to use, modify, and distribute the software, backed by a supportive community.
  • Professional services:Get technical support, tailored consulting and custom development directly from the maintainers of BunkerWeb. Visit theBunker Panelfor more information.

Security features

A non-exhaustive list of security features:

  • HTTPSsupport with transparentLet's Encryptautomation
  • State-of-the-art web security:HTTP security headers, prevent leaks, TLS hardening,...
  • IntegratedModSecurity WAFwith theOWASP Core Rule Set
  • Automatic banof strange behaviors based on HTTP status code
  • Applyconnections and requests limitfor clients
  • Block botsby asking them to solve achallenge(e.g.: cookie, javascript, captcha, hCaptcha or reCAPTCHA)
  • Block known bad IPswith external blacklists and DNSBL
  • And much more...

Learn more about the core security features in thesecurity tuningsection of the documentation.

Demo

BunkerWeb demo

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

BunkerWeb Cloud

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

Try ourBunkerWeb Cloud beta offer for freeand get access to:

  • Fully managed BunkerWeb instance hosted in our cloud
  • All BunkerWeb features including PRO ones
  • Monitoring platform including dashboards and alerts
  • Technical support to assist you in the configuration

You will find more information about BunkerWeb Cloud in theFAQ pageof the BunkerWeb panel.

PRO version

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 supervision, the BunkerWeb PRO version will allow you to fully benefit from BunkerWeb and respond to your professional needs.

Be it in the documentation or the user interface, the PRO features are annotated with a crowncrow pro iconto 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 you want. The process is pretty straightforward:

Do not hesitate to visit theBunkerWeb panelorcontact usif you have any question regarding the PRO version.

Professional services

Get the most 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 theBunkerWeb Panel,our dedicated platform for professional services.

Don't hesitate tocontact usif you have any question, we will be more than happy to respond to your needs.

Ecosystem, community and resources

Official websites, tools and resources about BunkerWeb:

  • Website:get more information, news and articles about BunkerWeb
  • Panel:dedicated platform to order and manage professional services (e.g. technical support) around BunkerWeb
  • Documentation:technical documentation of the BunkerWeb solution
  • Demo:demonstration website of BunkerWeb, don't hesitate to attempt attacks to test the robustness of the solution
  • Configurator:user-friendly tool to help you configure BunkerWeb
  • Threatmap:live cyber attack blocked by BunkerWeb instances all around the world

Community and social networks:

Concepts

Concepts banner

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

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 asAUTO_LETS_ENCRYPTorUSE_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

You will find an easy to use settings generator atconfig.bunkerweb.io.

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 infohere) 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 have 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 of the integration) instance of BunkerWeb.

Custom configurations

Because meeting all the use cases only using the settings is not an option (even withexternal 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 differentcontextslike 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

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

  • Settings defined for all the services
  • Custom configurations
  • BunkerWeb instances
  • Metadata about jobs execution
  • Cached files

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

Scheduler

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

  • Storing the settings and custom configurations inside the database
  • Executing various tasks (called jobs)
  • Generating a configuration which is understood by BunkerWeb
  • Being the intermediary for other services (like web UI or autoconf)

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

Setup

BunkerWeb Cloud

Docker banner

BunkerWeb Cloud is the easiest way to get started with BunkerWeb. It offers you a fully managed BunkerWeb service with no hassle. Think of a like a BunkerWeb-as-a-Service!

You will find more information about BunkerWeb Cloud betahereand you can apply for freein the BunkerWeb panel.

Docker

Docker banner

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

Docker integration key concepts are:

  • Environment variablesto configure BunkerWeb
  • Schedulercontainer to store configuration and execute jobs
  • Networksto expose ports for clients and connect to upstream web services

You will find more information in theDocker integration sectionof 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 calledautoconfwhich 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 addlabelsto your web applications containers and theautoconfwill "automagically" take care of the rest.

You will find more information in theDocker autoconf sectionof the documentation.

Swarm

Swarm banner

To automatically configure BunkerWeb instances, a special service, calledautoconfwill listen for Docker Swarm events like service creation or deletion and automatically configure theBunkerWeb instancesin real-time without downtime.

Like theDocker autoconf integration,configuration for web services is defined using labels starting with the specialbunkerweb.prefix.

You will find more information in theSwarm sectionof the documentation.

Kubernetes

Kubernetes banner

The autoconf acts as anIngress controllerand will configure the BunkerWeb instances according to theIngress resources.It also monitors other Kubernetes objects likeConfigMapfor custom configurations.

You will find more information in theKubernetes sectionof the documentation.

Linux

Linux banner

List of supported Linux distros:

  • Debian 12 "Bookworm"
  • Ubuntu 22.04 "Noble"
  • Ubuntu 24.04 "Jammy"
  • Fedora 40
  • RHEL 8.9
  • RHEL 9.4

You will find more information in theLinux sectionof the documentation.

Microsoft Azure

Azure banner

BunkerWeb is referenced in theAzure Marketplaceand a ARM template is available in themisc folder.

You will find more information in theMicrosoft Azure sectionof the documentation.

Quickstart guide

Once you have setup BunkerWeb with the integration of your choice, you can follow thequickstart guidethat will cover the following common use cases:

  • Protecting a single HTTP application
  • Protecting multiple HTTP application
  • Retrieving the real IP of clients when operating behind a load balancer
  • Adding custom configurations
  • Protecting generic TCP/UDP applications
  • In combination with PHP

Security tuning

BunkerWeb offers many security features that you can configure withsettings.Even if the default values of settings ensure a minimal "security by default", we strongly recommend you to tune them. By doing so you will be able to ensure a security level of your choice but also manage false positives.

You will find more information in thesecurity tuning sectionof the documentation.

Settings

To help you tuning BunkerWeb we have made an easy to use settings generator tool available atconfig.bunkerweb.io.

As a general rule when multisite mode is enabled, if you want to apply settings with multisite context to a specific server you will need to add the primary (first) server name as a prefix likewww.example.com_USE_ANTIBOT=captchaormyapp.example.com_USE_GZIP=yesfor example.

When settings are considered as "multiple", it means that you can have multiple groups of settings for the same feature by adding numbers as suffix likeREVERSE_PROXY_URL_1=/subdir,REVERSE_PROXY_HOST_1=http://myhost1,REVERSE_PROXY_URL_2=/anotherdir,REVERSE_PROXY_HOST_2=http://myhost2,... for example.

Check thesettings sectionof the documentation to get the full list.

Web UI

The "Web UI" is a web application that helps you manage your BunkerWeb instance using a user-friendly interface instead of the command-line one.

  • Start, stop, restart and reload your BunkerWeb instance
  • Add, edit and delete settings for your web applications
  • Add, edit and delete custom configurations for NGINX and ModSecurity
  • Install and uninstall external plugins
  • Explore the cached files
  • Monitor jobs execution
  • View the logs and search pattern

You will find more information in theWeb UI sectionof the documentation.

Plugins

BunkerWeb comes with a plugin system to make it possible to easily add new features. Once a plugin is installed, you can manage it using additional settings defined by the plugin.

Here is the list of "official" plugins that we maintain (see thebunkerweb-pluginsrepository for more information):

Name Version Description Link
ClamAV 1.6 Automatically scans uploaded files with the ClamAV antivirus engine and denies the request when a file is detected as malicious. bunkerweb-plugins/clamav
Coraza 1.6 Inspect requests using a the Coraza WAF (alternative of ModSecurity). bunkerweb-plugins/coraza
CrowdSec 1.6 CrowdSec bouncer for BunkerWeb. bunkerweb-plugins/crowdsec
Discord 1.6 Send security notifications to a Discord channel using a Webhook. bunkerweb-plugins/discord
Slack 1.6 Send security notifications to a Slack channel using a Webhook. bunkerweb-plugins/slack
VirusTotal 1.6 Automatically scans uploaded files with the VirusTotal API and denies the request when a file is detected as malicious. bunkerweb-plugins/virustotal
WebHook 1.6 Send security notifications to a custom HTTP endpoint using a Webhook. bunkerweb-plugins/slack

You will find more information in theplugins sectionof the documentation.

Support

Professional

Get technical support directly from the BunkerWeb maintainers. You will find more information by visiting theBunkerWeb Panel,our dedicated platform for professional services.

Don't hesitate tocontact usif you have any question, we will be more than happy to respond to your needs.

Community

To get free community support you can use the following media:

Please don't useGitHub issuesto ask for help, use it only for bug reports and feature requests.

License

This project is licensed under the terms of theGNU Affero General Public License (AGPL) version 3.

Contribute

If you would like to contribute to the plugins you can read thecontributing guidelinesto get started.

Security policy

We take security bugs as serious issues and encourage responsible disclosure, see oursecurity policyfor more information.

Star History

Star History Chart