Ldfa Posté(e) le 30 décembre 2019 Posté(e) le 30 décembre 2019 Liberasys rend public ses recettes de cuisine pour créer un serveur de courriels collaboratif. Postfix, PostfixAdmin, Dovecot, Horde, Apache, PHP, MySQL, ClamAV, rmilter, rspamd. SPF, DKIM, DMARC. Synchronisation des clients sans utilisation de greffons. Inter-opérant, quasi-universel et conforme à l'état de l'art. Voir le lien pour le contenu et les liens vers les recettes. C'est le résultat de 3 semaines de travail à temps complet. Faire son propre serveur de courriel, avec les fonctionnalités modernes est de plus en plus complexe. Sommaire Introduction Pourquoi ? Je voulais pour ma société et pour moi-même un système de courriel qui se rapproche le plus des fonctionnalités que l'on trouve dans les systèmes des grands éditeurs. Et je voulais installer le tout sur un serveur que je maîtrise. Quand ? Sur l'année 2015, j'ai fait une étude préliminaire des différentes solutions. Entre août et octobre, j'ai travaillé à intégrer les différentes briques et à documenter, cela représente 3 semaines de travail à temps plein. Comment ? Les spécifications étaient : utiliser un maximum de logiciels libres ; utiliser des composants logiciels connus, fiables et maintenus par une société ou une communauté ; gérer les boites de courriels virtuels (les utilisateurs n'ont pas de compte sur le système) ; gérer les synchronisations avec les clients lourds et les terminaux mobiles, notamment courriel, agenda et carnet d'adresses ; pouvoir partager des informations entre utilisateurs (exemples : agenda entre un directeur et une assistante de direction, ou partager l'agenda de ma chérie et le mien pour savoir qui va chercher notre enfant à l'école au jour le jour) ; être conforme à l'état de l'art en terme de sécurité et en terme de gestion de réputation d'émetteur de courriels. Qui ? Gautier HUSSON - Liberasys Architecture générale Je me suis rendu compte que l'architecture générale dépendait fortement du "cœur de synchronisation". Aujourd'hui (de mon point de vue) c'est à ce niveau que se situe la valeur ajoutée d'un système de courriel. C'est ce que tout le monde veut aujourd'hui : avoir des outils efficaces, simples à prendre en main et permettant de collaborer facilement. Le "cœur de synchronisation" n'est pas toujours une seule brique logicielle, il peut être lié et implémenter l'ensemble des fonctionnalités du système de courriel. Il fallait alors choisir ce "cœur de synchronisation". J'ai fureté longtemps. Je connaissait de nom et je me suis renseigné sur : Zimbra, OBM, BlueMind, OpenXchange, Kolab. Je n'étais pas satisfait, car soit le logiciel était codé avec des bases difficiles à maintenir pour moi (ex : programme en Java), soit la licence n'était pas de type logiciel libre, soit le logiciel nécessitait un client spécifique ou des extensions propriétaires sur les clients lourds. Puis j'ai redécouvert Horde. Horde est un projet qui existe depuis longtemps. Et il a connu une baisse de régime dans les années 2008/2012, quelque chose comme ça. En conséquence il est "tombé dans l'oubli". Mais depuis quelques années, la société éditrice a mis les bouchées doubles pour rattraper son retard. Beaucoup d'administrateurs systèmes se souviennent de l'interface très moche et très "vieille école" de Horde. Mais cette dernière a été entièrement revue. Personnellement je la trouve un peu triste en terme de charte graphique (gris), mais on peut personnaliser tout ça ! Globalement, l'interface utilisateur n'est pas aussi aboutie que d'autres serveurs de courriels. Mais "ça fait le boulot", et tout le monde n'utilise pas cette interface. Ce qui m'a vraiment plu avec Horde : code en PHP ; sur leur site on peut voir des informations précises sur les spécifications de synchronisation ; hautement intégrable et paramétrable ; bonne communauté libre ; logiciel libre avec une société éditrice qui fait payer du conseil à l'heure (au cas où on ait un besoin d'expertise) ; pendant le travail sur le projet, les collaborateurs de Horde ont fait un financement par les masses (crowdfunding), dont le but est d'implémenter la dernière version du protocole ActiveSync. Je n'ai pas retrouvé les éléments mais ils demandaient quelque chose comme 3 000 $, ils y sont arrivés en moins de deux semaines. Cela m'a vraiment fait plaisir de voir ça ! Je suis donc parti sur Horde comme "cœur de synchronisation". Les tâches confiées à Horde dans mon architecture sont les suivantes : webmail (je ne sais pas comment on peut dire en bon français) ; client web pour l'agenda, les contacts, les tâches, les partages de fichiers (je n'intègre pas cette dernière fonctionnalité) ; client web pour les filtres de courriels (SIEVE) ; client web pour les droits (je partage mes données avec qui et comment) ; synchronisation des courriels, agendas et carnets d'adresses avec carddav/caldav/ActiveSync, compatible Android, iOS, Outlook. Il me manquait encore certaines tâches : serveur de courriel (SMTP) ; serveur de boites de courriels (IMAP) ; antivirus, antispam ; gestion de la réputation (SPF, DKIM, DMARC). Les choix effectués sont alors les suivants : SMTP : j'ai travaillé un peu avec sendmail et EXIM et beaucoup avec postfix, j'ai donc choisi ce dernier sans me poser de question (je ne vais pas m'étaler sur ce qui m'a poussé à choisir postfix dans les architectures que j'ai mises en place précédemment) ; IMAP : j'ai travaillé un peu avec Cyrus et beaucoup avec Dovecot, je suis donc resté sur ce dernier. À noter (suite à discussion que j'ai eue avec M. MAUDET de Linagora) : Dovecot a été repris par une société et fait des modules payants, on sort donc du cadre purement logiciel libre, d’où le fait que Linagora ait préféré intégrer Cyrus ; Antivirus : le premier qui me soit passé sous le coude dans les recettes de cuisine que j'ai trouvées sur Internet : Clamav (en passant, je me suis laissé entendre dire que la qualité de détection de la base antivirus avait bien baissé ces dernières années, en conséquence il faudrait voir à intégrer une meilleure brique logicielle au besoin) ; Antispam : j'ai travaillé un petit peu avec SpamAssassin et dspam, j'ai découvert et décortiqué rspamd, ça m'a plu (code, fonctionnalités à venir, paquet Debian, …) alors je l'ai intégré : l'avantage est qu'il ne fait pas que de l'analyse bayésienne, mais l'inconvénient est que la base statistique est unique pour tous les comptes de courriels (mais cela va changer dans les prochaines versions) ; pour lier Postfix à Clamav et rspamd, j'ai utilisé le multiplexeur de canal "milter" rmilter, qui, coup de bol, s'occupe également des signatures DKIM. Les petites choses en plus Quitte à refaire une architecture complète, j'ai intégré des petits bonus. Tout d'abord, les répertoires virtuels dans Dovecot : cela permet d'avoir les messages importants dans un dossier, et les nouveaux messages dans un autre. J'ai essayé de faire un dossier qui présente tous les courriels (entrants et sortants, c'est très pratique pour suivre les échanges) mais ça faisait boucler Icedove. Je n'ai pas investigué ce problème, j'ai donc désactivé ce dossier virtuel. Ensuite, la liaison Dovecot - Horde via le protocole SIEVE : permet l'édition facile des filtres pour les utilisateurs, et permet l'activation d'un message d’absence. Continuons avec le dossier des pourriels : Dovecot est lié à rspamd : quand un spam arrive, il va dans un dossier particulier et est marqué comme lu. Si le courriel en question est déplacé dans un autre dossier, rspamd change sa base statistique pour du HAM (non-spam). Enfin, pour la gestion de la réputation, j'ai créé un script qui facilite le travail de l'administrateur système : il crée les clefs asymétriques, donne les paramètres à configurer dans le cadre de cette infrastructure pour implémenter SPF, DKIM et DMARC pour vos noms de domaines (configuration pour rmilter et le serveur DNS). Conclusion Voila un système complet de messagerie moderne basé sur des logiciels libres ou open source. Cela intègre pas mal de briques logicielles interdépendantes. L'ensemble fonctionne depuis quelques mois pour ma société et mon cadre familial et j'en suis très satisfait. Je voulais libérer les recettes de cuisine car j'ai moi même été inspiré de plusieurs recettes par le passé pour le cadre professionnel ou personnel. Et aujourd'hui, c'est compliqué de trouver une recette qui fonctionne "clef en main", à jour et intégrant toutes les briques nécessaires et la gestion de la réputation. Autant vous le dire tout de suite : non, je ne vais pas faire de support gratuitement ici sur cette solution, désolé :-( Mais je suis sûr que d'autres administrateur systèmes vous aideront en cas de pépin. Profitez bien et dégooglisez Internet ! Afficher l’article complet
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.