Files
wiki/Catalogue-Self-Hosted/apps/app-bulwark.md
T
2026-06-09 18:40:21 +02:00

4.8 KiB


title: Bulwark created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, email, antispam, filtrage, go] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Email, https://github.com/gomail/bulwark]

📧 Bulwark

Solution anti-spam moderne : à coupler en amont d'un serveur mail (Postfix, Stalwart) pour filtrer le spam, le phishing et les malwares avant qu'ils n'atteignent les boîtes — alternative à SpamAssassin, Rspamd, MailScanner.

📋 Informations Générales

Champ Valeur
Site web À documenter
GitHub gomail/bulwark
License À documenter
Langage Go (performances natives, binaire unique)
Étoiles GitHub 571
Catégorie cat-email
Mainteneur Communauté gomail

📝 Description

Bulwark est un proxy/filtre anti-spam écrit en Go conçu pour s'intercaler entre un MTA (Postfix, Stalwart, Exim) et le serveur de boîtes (Dovecot). Il agit comme une couche de décision spam/ham moderne, légère et performante.

Fonctionnalités :

  • Filtrage spam/phishing : basé sur règles + scoring (à vérifier avec la doc à jour)
  • Analyse des headers : SPF, DKIM, DMARC, reverse DNS
  • Listes RBL/DNSBL : consultation temps réel des listes noires connues
  • Quarantaine : emails suspects mis de côté, consultables via interface
  • API REST : soumission de feedback (ham/spam) pour entraînement
  • Métriques Prometheus : export pour monitoring (Grafana)
  • Performances : Go = faible empreinte mémoire, haute concurrence

Forces :

  • Binaire unique Go : déploiement simple, pas de runtime à installer
  • Performances : conçu pour gérer de gros volumes
  • Moderne : API, métriques, conteneurisation native
  • Open source : auditable, pas de dépendance cloud

Faiblesses :

  • Communauté plus petite que Rspamd/SpamAssassin
  • Moins de documentation mature
  • Pas de webmail : c'est uniquement un filtre, à coupler
  • Projet récent : moins battle-tested que Rspamd (15+ ans)
  • Configuration : peut nécessiter ajustement fin

🚀 Installation

Via Docker

# docker-compose.yml
version: '3.8'
services:
  bulwark:
    image: ghcr.io/gomail/bulwark:latest
    container_name: bulwark
    restart: unless-stopped
    environment:
      - BULWARK_LISTEN=:8080
      - BULWARK_QUARANTINE_DIR=/var/quarantine
    volumes:
      - ./config:/etc/bulwark
      - ./quarantine:/var/quarantine
    ports:
      - "8080:8080"

Installation manuelle

# Prérequis : Go 1.20+ pour build, ou binaire pré-compilé
git clone https://github.com/gomail/bulwark.git
cd bulwark
go build -o bulwark cmd/bulwark/main.go
sudo mv bulwark /usr/local/bin/
# Config dans /etc/bulwark/bulwark.yaml
sudo systemctl enable --now bulwark

⚙️ Configuration

  1. Intégration Postfix : configurer Postfix pour relayer via smtpd_milter ou non_smtpd_milter vers Bulwark
  2. RBL : activer les listes noires (Spamhaus, Spamcop, etc.) via DNS
  3. Quarantaine : définir la politique (suppression, mise en quarantaine, tag)
  4. Métriques : exposer /metrics en Prometheus
  5. Feedback loop : brancher une API pour entraînement incrémental

🔗 Alternatives

🔒 Sécurité

  • Couche en amont : ne pas exposer Bulwark directement sur internet
  • mTLS : recommandé entre MTA et Bulwark en production
  • Quarantaine chiffrée : chiffrer le répertoire de quarantaine
  • Mises à jour RBL : Bulwark doit pouvoir interroger les listes, DNS sécurisé (DoT/DoH) recommandé
  • Logs : ne pas logger en clair les corps d'emails (RGPD)
  • Rate limiting : sur l'API de feedback

📚 Ressources

Pages Liées