Déployer et configurer BunkerWeb avec Docker Compose : guide complet pas à pas

1. Présentation

BunkerWeb est un pare-feu d’application web (WAF – Web Application Firewall) moderne, open-source et “secure by default”. Il protège vos sites et applications web contre un large éventail d’attaques (injections SQL, XSS, force brute, bots malveillants…) tout en intégrant des fonctionnalités avancées comme la gestion TLS, les en-têtes HTTP sécurisés, la protection anti-bots et le blocage d’adresses IP suspectes.

L’un des grands atouts de BunkerWeb est sa simplicité de déploiement, notamment grâce à Docker et Docker Compose, ce qui permet de l’intégrer facilement à votre infrastructure existante. Dans cet article, nous allons voir comment installer et configurer BunkerWeb pour protéger un service externe, en l’occurrence IT-Tools, un outil open-source regroupant plusieurs utilitaires pour développeurs et administrateurs.

Objectif & public

  • Community (gratuite) : idéale pour homelab, dev/test, petits sites, besoins de base en WAF/reverse proxy.
  • Pro (payante) : pensée pour PME/ETI/Prod avec besoins d’observabilité, support, pilotage à grande échelle et politiques sécurité avancées.

Fonctionnalités (synthèse)

  • Sécurité de base
    • Community : WAF open‑source, règles par défaut “secure by default”, durcissement TLS/headers, anti‑bots (niveau standard), Let’s Encrypt.
    • Pro : même base + politiques fines, profils par environnement (staging/prod), listes gérées (IP reputation), options anti‑bots avancées.
  • Gestion & exploitation
    • Community : configuration via UI/variables/volumes, logs standards (NGINX/WAF) dans les conteneurs.
    • Pro : tableau de bord centralisé, vues sécurité, alerting, intégrations SIEM/Slack/Discord/Email (sans bricolage), rétention/logs enrichis.
  • Écosystème & intégrations
    • Community : plugins open‑source disponibles (ex : ModSecurity/Coraza, CrowdSec, ClamAV quand pertinents).
    • Pro : catalogue validé, mises à jour priorisées, intégrations “click & run” (observabilité, réputation IP, scanning).
  • Haute dispo & scalabilité
    • Community : clustering manuelle (Docker/K8s) possible mais à configurer.
    • Pro : orchestration facilitée, déploiements multi‑instances, politiques partagées.
  • Support & maintenance
    • Community : support communautaire (issues, docs).
    • Pro : SLA, assistance éditeur, mises à jour pilotées, bonnes pratiques certifiées.

2. Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Un serveur ou une machine locale sous Linux, macOS ou Windows avec WSL2.
  • Docker et Docker Compose installés (documentation officielle Docker).
  • Un nom de domaine pointant vers votre serveur (optionnel mais recommandé pour le HTTPS).
  • Des connaissances de base en ligne de commande.
  • Un accès root ou sudo à votre machine.

3. Déploiement de BunkerWeb via Docker Compose

Nous allons utiliser Docker Compose pour déployer facilement BunkerWeb et IT-Tools dans des conteneurs séparés, tout en permettant à BunkerWeb de jouer le rôle de reverse proxy sécurisé pour IT-Tools.

4. Préparation de l’environnement

  1. Connectez-vous à votre serveur ou ouvrez un terminal.
  2. Créez un dossier de projet :
mkdir bunkerweb-project
cd bunkerweb-project

Puis créez un sous-dossier pour les configurations :

    mkdir config

    5. Création du fichier compose.yaml

    Créez un fichier compose.yaml à la racine du projet :

    version: "3.8"
    
    services:
      bunkerweb:
        image: bunkerity/bunkerweb:latest
        container_name: bunkerweb
        restart: unless-stopped
        ports:
          - "80:80"
          - "443:443"
        volumes:
          - ./config:/etc/bunkerweb
          - ./data:/var/lib/bunkerweb
        environment:
          - BW_ADMIN_USERNAME=admin
          - BW_ADMIN_PASSWORD=admin123
          - BW_ADMIN_PORT=8080
        networks:
          - bunkerweb_net
    
      it-tools:
        image: corentinth/it-tools:latest
        container_name: it-tools
        restart: unless-stopped
        networks:
          - bunkerweb_net
        expose:
          - "80"
    
    networks:
      bunkerweb_net:
        driver: bridge

    6. Lancement du conteneur

    Une fois le fichier prêt, lancez la stack :

    docker compose up -d

    Docker va télécharger les images BunkerWeb et IT-Tools, puis démarrer les conteneurs.

    7. Premier démarrage via l’interface web d’administration

    • Accédez à l’interface d’administration de BunkerWeb :
    http://<IP_ou_nom_domaine>:8080
    • Connectez-vous avec l’utilisateur et mot de passe définis dans les variables d’environnement.
    • Vous arrivez sur un tableau de bord clair et intuitif vous permettant de configurer vos hôtes et vos règles de sécurité.

    8. Configuration et prise en main de BunkerWeb

    Par défaut, BunkerWeb ne proxy aucun service. Vous devez donc créer un hôte proxy qui pointera vers IT-Tools.

    Quelques points clés :

    • Sécurité HTTPS : BunkerWeb peut gérer automatiquement un certificat Let’s Encrypt.
    • Protection anti-bots : activez-la pour éviter le spam et les scans automatiques.
    • ModSecurity + règles OWASP : protège contre la majorité des attaques web courantes.

    9. Configuration d’un hôte proxy (service)

    1. Dans le tableau de bord BunkerWeb, allez dans Hosts.
    2. Cliquez sur Add Host.
    3. Remplissez :
      • Hostname : tools.mondomaine.com (ou votre IP si vous n’avez pas de domaine)
      • Service : it-tools
      • Port : 80
    4. Activez HTTPS si vous avez un domaine valide.
    5. Enregistrez et appliquez la configuration.

    10. Déploiement du conteneur IT-Tools

    Nous avons déjà intégré IT-Tools dans le compose.yaml. Ce service sera automatiquement joignable via le réseau bunkerweb_net interne à Docker.

    IT-Tools est un ensemble d’outils utiles : conversion de formats, génération de hash, test d’API, encodage/décodage, etc.

    11. Configuration du service sur BunkerWeb

    Dans la configuration BunkerWeb :

    • Liez l’hôte tools.mondomaine.com au conteneur it-tools.
    • Vérifiez que la résolution DNS interne fonctionne (docker exec -it bunkerweb ping it-tools).
    • Sauvegardez et redémarrez BunkerWeb depuis l’interface ou avec :
    docker compose restart bunkerweb

    12. Tester le déploiement

    • Ouvrez un navigateur et accédez à :
    https://tools.mondomaine.com

    Si tout fonctionne, vous devriez voir l’interface d’IT-Tools, servie derrière BunkerWeb.

    Testez la sécurité :

    • Inspectez les en-têtes HTTP avec un outil comme securityheaders.com.
    • Lancez un scan avec OWASP ZAP ou Nikto pour vérifier la protection.

    13. Conclusion

    BunkerWeb offre une solution clé en main pour sécuriser vos applications web. Son intégration avec Docker Compose permet un déploiement rapide et modulaire, idéal pour les développeurs, administrateurs système et entreprises souhaitant durcir leur sécurité réseau sans complexité excessive.

    En le combinant avec un service comme IT-Tools, vous obtenez un environnement à la fois productif et sécurisé. Vous pouvez bien sûr l’utiliser pour protéger vos sites WordPress, applications Node.js, API REST, ou tout autre service web.

    Astuce : Vous pouvez enrichir la configuration BunkerWeb avec des plugins (ex : antivirus ClamAV, CrowdSec, notifications Slack/Discord) pour renforcer encore la sécurité.