Le fail2ban intégré à mailcow arrête les attaques les plus bruyantes — dix connexions échouées en dix minutes valent un bannissement de trente minutes — puis les oublie. Tout ce qui est plus discret passe : une adresse qui essaie un mot de passe toutes les quelques minutes, toute la journée, un botnet qui répartit ses tentatives sur des centaines d’adresses, un scanner qui parcourt votre webmail à la recherche de /.env, une boîte aux lettres dont le mot de passe a été deviné et qui envoie maintenant du spam. Ce module montre tout cela dans System → Security, garde l’historique et agit quand vous le lui permettez.
Ce qu’il fait
- Un historique des attaques : chaque minute, il lit ce que mailcow journalise déjà — dovecot, postfix, SOGo et fail2ban depuis le redis de mailcow, le serveur web et les connexions échouées à l’interface / l’API de mailcow via l’agent hôte du Toolkit — et le conserve dans la base de données de mailcow (90 jours par défaut). Les journaux de mailcow ne gardent que les dernières lignes ; cet historique reste.
- Une vue d’ensemble avec les totaux des dernières 24 heures, un graphique sur 14 jours, les adresses les plus actives (avec un bouton pour les bannir), les boîtes aux lettres visées et les incidents actifs. Un bouclier rouge à côté du menu System signale les incidents graves ouverts sur chaque page d’administration.
- 13 règles pour ce que fail2ban laisse passer : force brute lente, password spraying (une adresse, beaucoup de boîtes aux lettres), récidivistes (adresses que fail2ban bannit encore et encore), force brute sur SOGo / l’interface mailcow / l’API, scans d’exploits web et de 404, sondage de relais, scans de protocole et vagues de spam. Seuils, fenêtres, actions et durées de bannissement se modifient règle par règle.
- Boîtes aux lettres compromises : un pic d’envois, des connexions depuis beaucoup d’adresses, et une connexion depuis une adresse qui avait déjà échoué sur la boîte — un mot de passe probablement deviné.
- Bannissements par mailcow lui-même : avec les actions automatiques activées, une adresse entre dans la liste de blocage du fail2ban de mailcow pour la durée de la règle ; netfilter l’applique sur tous les ports de mailcow en moins d’une minute, et vous la voyez sur la page Fail2ban de mailcow. Pour les hôtes web derrière le proxy de Cloudflare, le bannissement peut aussi devenir une IP Access Rule Cloudflare au niveau du compte.
- Actions sur le compte via les fonctions propres à mailcow : interdire la connexion (la boîte continue de recevoir le courrier), fermer les sessions IMAP / POP3, exiger un changement de mot de passe, limiter l’envoi.
- Alertes par e-mail et Telegram à partir de la gravité choisie, avec une limite horaire, et un résumé quotidien facultatif.
Conçu pour ne pas vous bloquer
- Surveillance seule par défaut : chaque incident indique ce qui aurait été fait ; vous activez les actions automatiques quand vous faites confiance aux règles.
- Jamais bannis automatiquement : les adresses privées et réservées, votre liste d’autorisation, la liste d’autorisation du fail2ban de mailcow, les adresses du serveur lui-même et — activé par défaut — les adresses qui se sont connectées avec succès à une boîte aux lettres au cours des 30 derniers jours.
- Un bannissement que vous supprimez sur la page Fail2ban de mailcow compte comme levé. Les bannissements expirent à l’heure prévue, même sans licence, et la désinstallation les lève tous.
- Chaque action — la vôtre ou celle du module — figure dans le journal d’audit.
Prérequis
- mailcow-dockerized avec le mailcow Toolkit 0.6.0 ou plus récent de MediaLab Works (ce produit est l’un des modules de ce paquet, avec sa propre licence).
- Un accès root sur l’hôte pour installer le Toolkit ; le serveur doit joindre
medialab.worksen HTTPS pour la vérification de licence. - Le conteneur netfilter de mailcow en fonctionnement (c’est lui qui applique les bannissements). Avec Manage external activé, votre propre pare-feu doit appliquer la liste de mailcow.
- Facultatif : un jeton Cloudflare avec Account → Account Firewall Access Rules → Edit ; un jeton de bot Telegram pour les alertes.
- Open source (GPL-3.0) : vous recevez le code source complet.
Confidentialité
Tout reste sur votre serveur : journaux, adresses, noms de boîtes aux lettres et historique sont conservés dans votre base de données mailcow et ne sont jamais envoyés à medialab.works. Les alertes ne vont qu’à l’adresse e-mail et au chat Telegram que vous définissez.
Licence
Une licence par serveur mailcow, abonnement mensuel ou annuel ou à vie, avec l’essai gratuit de 30 jours ; le produit fait aussi partie du pack mailcow. Sans licence valide, la détection, les bannissements et les alertes s’arrêtent, et rien n’est supprimé. Voir Tarifs et le guide d’installation et d’utilisation.
