Prise en main de BunkerWeb, un reverse proxy et WAF open source

Alexandre AGASSEAU - ITConnect - 31/07
Suivez ce tutoriel pour déployez BunkerWeb avec Docker : combinez reverse proxy et WAF open source dans la même solution pour protéger vos applications web.

Sommaire

  • I. Présentation
  • II. Prérequis
  • III. Déploiement de BunkerWeb via Docker Compose
    • A. Préparation de l'environnement
    • B. Création du fichier compose.yaml
    • C. Lancement du conteneur
    • D. Premier démarrage via l'interface web d'administration
  • IV. Configuration et prise en main de BunkerWeb
  • V. Configuration d'un hôte proxy (service)
    • A. Déploiement du conteneur IT-Tools
    • B. Configuration du service sur Bunkerweb
    • C. Tester le déploiement
  • VI. Conclusion

I. Présentation

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.

II. Prérequis

Pour déployer BunkerWeb, assurez-vous d'avoir les éléments suivants :

  • Un serveur Linux (Debian, Ubuntu, etc.) avec un environnement Docker installé dessus
  • Une adresse IP publique avec les ports 80/TCP, 443/TCP et 443/UDP redirigés vers BunkerWeb
  • Minimum 6 Go de RAM, à dimensionner en fonction du nombre de services et de la charge
  • Un nom de domaine

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.

III. Déploiement de BunkerWeb via Docker Compose

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.

A. Préparation de l'environnement

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

B. Création du fichier 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]
Loading...