Sommaire
Un reverse proxy joue un rôle essentiel dans l'ouverture de vos services sur internet : placé entre les utilisateurs et vos applications, il gère la terminaison TLS et effectue le rôle de passerelle entre le réseau public et le réseau privé. Pourtant, des solutions courantes comme NGINX, HAProxy ou encore Traefik, bien qu'efficaces dans ces fonctions, restent vulnérables par défaut aux attaques. Un certificat TLS aura beau chiffrer les données transitant par le proxy, il ne bloquera en rien les menaces au niveau de la couche applicative.
C'est dans ce genre de situations que BunkerWeb répond à cette lacune en combinant reverse proxy et WAF (Web Application Firewall) dans un seul outil open-source. Développé par la société française Bunkerity, BunkerWeb intègre nativement des fonctionnalités importantes : filtrage ModSecurity avec les règles OWASP CRS, renforcement TLS, limitation de requêtes, analyse comportementale et bien d'autres ! Ici, nous découvrirons la version communautaire gratuite.
Dans cet article, nous allons déployer BunkerWeb via Docker Compose, de l'installation jusqu'à la publication d'un service. Cette approche pratique nous permettra de transformer notre passerelle web en une véritable forteresse open-source !
Cet article est le fruit d'une collaboration avec Tristan BRINGUIER. Nous tenons à le remercier pour sa participation active, incluant la fourniture de l'environnement technique et son support à la rédaction.
Pour déployer BunkerWeb, assurez-vous d'avoir les éléments suivants :
Si vous avez besoin d'aide pour installer Docker, n'hésitez pas à suivre ce tutoriel : Installation de Docker sur Debian
Dans notre cas, nous allons utiliser une machine sous Debian 12 avec 2 CPU et 8 Go de RAM.
Nous allons utiliser Docker Compose pour le déploiement, car il centralise toute la configuration de l'application (services, réseaux, volumes) dans un unique fichier YAML. Cela apporte une lisibilité accrue par rapport à de multiples commandes Docker ainsi qu'une gestion des volumes et des réseaux grandement simplifiés.
Commencez par créer un répertoire dédié pour notre projet BunkerWeb :
mkdir -p /opt/docker-compose/bunkerweb cd /opt/docker-compose/bunkerweb editor compose.yaml Collez dans le fichier compose.yaml le fichier Docker Compose présenté ci-dessous. Prenez le temps de bien lire les commentaires intégrés pour comprendre la configuration.
################################################################################ ## BunkerWeb – Docker Compose # ## Ce fichier déploie BunkerWeb (reverse-proxy + WAF), son ordonnanceur, # ## l'interface Web d'administration et une base PostgreSQL pour le stockage. # ## # ## → AVANT DE PASSER EN PROD : # ## - Changez le mot de passe « motdepasseachanger » # ## # ## → POUR LE RÉSEAU EXTERNE 'bw-apps' : # ## - Créez-le avec : docker network create bw-apps &...
[Courte citation de 8% de l'article original]