Dans ton toaster
By n on Wednesday 9 September 2020, 19:03 - Permalink
Comme promis voici un petit aperçu de la pile logicielle utilisée pour la gestion des mails sur la Tourmentine, pile logicielle qui fut un temps appelée "mail toaster" lors de son utilisation avec qmail. J'ai réussi à éviter l’utilisation d'une base de données pour la gestion des utilisateurs, mais rspamd nécessite l'utilisation de redis (on ne peut pas tout avoir)
Voici donc les logiciels utilisés:
- Postfix pour le SMTP
- Rspamd (+redis) pour le filtrage anti-spam
- ClamAV pour le filtrage anti-virus
- OpenDKIM pour ajouter les champs dkim aux mails sortants
- Dovecot pour l'accès IMAP
- Pigeonhole pour les filtres Sieve (filtres "côté serveur")
- Roundcube pour l'accès en webmail
Et voici le cheminement type d'un mail:
- Un mail arrive soit sur le port 25
pas sécurisédepuis l'extérieur, soit sur le port 587 (submission) pour les utilisateurs du domaine. Le tout est accueilli par Postfix, qui se charge d'un premier filtrage via son module "postscreen" en vérifiant que le mail ne provient pas d'un relai ouvert, puis va passer ledit mail au travers de ses milters. - Le premier milter va appeler OpenDKIM pour signer le mail (la signature peut être vérifiée avec la clé publique publiée dans les DNS)
- Le second milter va faire appel à Rspamd (so long, spamassassin) qui va faire les vérifications d'usage, en appelant lui-même ClamAV pour la partie anti-virus, et ajouter une entête contenant les résultats de l'analyse.
- Retour à Postfix, le mail est transmis à dovecot-lmtp pour livraison.
- Dovecot vérifie que l'utilisateur existe, et le balance
à la poubelledans un boite dédiée sinon. Il appelle ensuite un script Sieve qui va vérifier la présence de l'expéditeur en blacklist/whitelist, et surtout le score donné précédemment par Rspamd dans les entêtes du message, ce qui va permettre de mettre le message suspect directement dans un dossier "spam" de l'utilisateur si le test est positif. - Une fois le mail délivré(-libéré), il est mis à la disposition de l'utilisateur par Dovecot, soit via un client "lourd" (en général Thunderbird, un petit site web a été créé pour faciliter la configuration des boites, toujours un peu pénible), soit consultable à partir du webmail, ici Roundcube. Un second script sieve, cette fois spécifique à l'utilisateur, peut être appliqué. Même si on s'éloigne un peu du sujet courrier, l'accès web sert également pour le partage des contacts et calendriers, via le protocole DAV, et le logiciel Baïkal.