Stalwart - Serveur de Messagerie et de Collaboration Tout-en-un : Présentation (1/2)
Introduction
Stalwart est un serveur de messagerie et de collaboration open-source, conçu pour l'internet moderne. Développé en Rust, il est présenté comme une solution "sécurisée, rapide, robuste et évolutive", capable de gérer des déploiements allant des petits serveurs personnels aux grandes infrastructures d'entreprise distribuées. Il offre un support étendu pour une multitude de protocoles de messagerie et de collaboration.
Thèmes Principaux et Idées Clés
Solution Tout-en-un pour la Messagerie et la Collaboration
- Stalwart se positionne comme un serveur complet intégrant la messagerie électronique et des fonctionnalités de collaboration.
- Il prend en charge un large éventail de protocoles modernes, ce qui en fait "une solution complète pour la gestion des e-mails, des calendriers, des contacts, du stockage de fichiers, et plus encore."
- Citation : "All-in-one Mail & Collaboration server. Secure, scalable and fluent in every protocol (IMAP, JMAP, SMTP, CalDAV, CardDAV, WebDAV)." et "Stalwart supports a wide range of protocols including JMAP, IMAP4, POP3, SMTP, CalDAV, CardDAV, and WebDAV, making it a comprehensive solution for managing email, calendars, contacts, file storage, and more."
Support Protocolaire Complet : Stalwart est "fluent dans chaque protocole" et offre un support robuste pour les principaux standards de l'industrie
- Messagerie :JMAP : Serveur JMAP pour Mail et pour Sieve Scripts, avec extensions WebSocket, Blob Management et Quotas.
- IMAP : IMAP4rev2 et IMAP4rev1, serveur ManageSieve et nombreuses extensions.
- POP3 : Serveur POP3 avec support STLS et SASL.
- SMTP : Serveur SMTP avec support intégré DMARC, DKIM, SPF, ARC, DANE, MTA-STS, SMTP TLS reporting. Inclut des fonctionnalités d'authentification, de sécurité du transport, de limitation et de filtrage (règles granulaires, scripts Sieve, MTA hooks, intégration milter), de files d'attente virtuelles distribuées et de réécriture/modification des messages.
- Collaboration :Calendrier : CalDAV, CalDAV Scheduling et alarmes e-mail.
- Contacts : CardDAV.
- Stockage de fichiers : WebDAV avec support ACL pour un contrôle d'accès fin.
Sécurité et Robustesse : La sécurité est une pierre angulaire de la conception de Stalwart
- Cryptage au repos : Avec S/MIME ou OpenPGP.
- Certificats TLS : Provisionnement automatique avec ACME (TLS-ALPN-01, DNS-01, HTTP-01).
- Protection contre les attaques : Blocage automatisé des adresses IP qui attaquent, abusent ou scannent le serveur.
- Limitation de débit (Rate limiting).
- Audité en matière de sécurité.
- Sécurité mémoire : "Memory safe (thanks to Rust)."
- Filtrage anti-spam et anti-phishing intégré : Règles complètes, filtre anti-spam basé sur LLM et statistique, DNSBLs, Pyzor, protection contre le phishing (attaques homographiques, usurpation d'expéditeur), suivi des réponses fiables, surveillance de la réputation de l'expéditeur, greylisting, et spam traps.
Évolutivité et Tolérance aux Pannes : Stalwart est conçu pour gérer une croissance transparente et assurer une haute disponibilité
- Conçu pour évoluer : "Designed to handle growth seamlessly, from small setups to large-scale deployments of thousands of nodes."
- Tolérance aux pannes : "Built with fault tolerance and high availability in mind, recovers from hardware or software failures with minimal operational impact."
- Coordination de cluster : Peer-to-peer ou via Kafka, Redpanda, NATS, Redis.
- Orchestration de conteneurs : Support Kubernetes, Apache Mesos, Docker Swarm.
- Performance : Répliques de lecture, stockage d'objets fragmenté (sharded blob storage) et bases de données en mémoire pour haute performance et faible latence.
Flexibilité et Personnalisation : Le serveur offre de nombreuses options de personnalisation et d'intégration
- Backends de stockage enfichables : RocksDB, FoundationDB, PostgreSQL, mySQL, SQLite, S3-Compatible, Azure, Redis, ElasticSearch.
- Recherche en texte intégral : Disponible en 17 langues.
- Scripting Sieve : Support de toutes les extensions enregistrées.
- Gestion des adresses : Alias, listes de diffusion, sous-adressage, adresses catch-all.
- Configuration automatique : Autoconfig et Autodiscover.
- Multi-tenancy : Isolation par domaine et par tenant.
- Quotas de disque : Par utilisateur et par tenant.
Authentification et Autorisation : Mécanismes robustes pour la gestion des accès
- Authentification : OpenID Connect, LDAP, OIDC, SQL ou backend interne.
- Autorisation : OAuth 2.0 (flux d'autorisation et d'appareil).
- Sécurité accrue : Authentification à deux facteurs (2FA-TOTP), mots de passe d'application.
- Contrôle d'accès : Rôles et permissions, Listes de Contrôle d'Accès (ACLs).
Observabilité et Administration : Des outils sont fournis pour surveiller et gérer le serveur
- Logging et tracing : OpenTelemetry, journald, fichiers de log, console.
- Métriques : OpenTelemetry, intégration Prometheus.
- Automatisation : Webhooks pour l'automatisation événementielle, alertes (e-mail et webhooks).
- Administration Web : Tableau de bord avec statistiques en temps réel, gestion des comptes, domaines, groupes, listes de diffusion, files d'attente SMTP, rapports DMARC/TLS-RPT/ARF, configuration complète du serveur, visionneur de logs.
- Portail libre-service : Réinitialisation de mot de passe, gestion des clés de chiffrement au repos.
Développement et Financement Open-Source
- Stalwart est un projet open-source écrit en Rust, bénéficiant du financement de programmes comme NGI0 Entrust Fund et NGI Zero Core de la Commission Européenne.
- Le projet est doublement licencié sous la GNU Affero General Public License v3.0 (AGPL-3.0) et la Stalwart Enterprise License v1 (SELv1). L'AGPL-3.0 est pour le logiciel libre, tandis que le SELv1 est une licence propriétaire pour un usage commercial offrant plus de flexibilité.
- Le support de la communauté est encouragé via GitHub Discussions, Reddit ou Discord. Un support prioritaire est disponible avec une licence Entreprise.
- Le projet propose un programme de sponsoring qui permet aux contributeurs de soutenir le développement et d'obtenir en retour des licences Enterprise ou un support Premium.
Roadmap (Feuille de Route)
Les fonctionnalités futures prévues incluent :
- Support JMAP pour les Calendriers, les Contacts et le Stockage de Fichiers.
- Un client Webmail.
Premiers Pas et Documentation
- Des guides d'installation sont disponibles pour Linux/MacOS, Windows et Docker.
- Toute la documentation est accessible sur stalw.art/docs.
- Le guide "Getting Started" couvre les exigences système, l'installation, le choix de la base de données et du répertoire, la configuration DNS, la sécurisation du serveur et l'optimisation des performances.
Conclusion
Stalwart se présente comme une solution robuste et hautement adaptable pour les besoins de messagerie et de collaboration modernes. Sa conception en Rust assure performance et sécurité, tandis que son architecture modulaire et son support étendu de protocoles et de backends de stockage en font un choix flexible pour divers environnements, des petites installations aux déploiements d'entreprise à grande échelle. L'accent mis sur la sécurité, l'évolutivité et l'observabilité, combiné à une feuille de route prometteuse, positionne Stalwart comme un acteur significatif dans l'écosystème des serveurs de messagerie et de collaboration.