Archives par mot-clé : smtp

Architecture avec serveur mail local

Dans un post précédent j’avais évoqué l’installation d’un serveur webmail basé sur Roundcube mail. L’intérêt de la manip est de pouvoir stocker ses mails sur son serveur perso et de pouvoir y accéder d’internet sur un mobile perso sous android (ou autres) où qu’on soit. Et donc d’être indépendant d’un GAFAM qui n’aura aucun scrupule à décortiquer les mails pour en tirer un quelconque profit. Dans ce post je vais aller plus loin en présentant l’architecture globale de réception et d’envoi de mail.

L’idée générale est que mon serveur récupère les mails sur des serveurs POP ou IMAP sur internet des utilisateurs du réseau local, puis les passe au travers de filtres anti spam et anti virus avant de les délivrer à un serveur de mail local. Ils peuvent être ensuite consultés via un client lourd du réseau local comme Thunberdird, ou d’un navigateur via le webmail du réseau local ou d’internet sur un mobile. Pour l’envoi de mail, les mails ne partent pas directement vers un serveur SMTP sur internet (généralement celui du FAI) mais passe d’abord par le serveur de mail local avec sa batterie anti spam et anti virus.

Commençons par un petit schéma qui vaut bien des discours.

Cette architecture s’appuie sur plusieurs outils:

  • fetchmail permet de récupérer les mails des utilisateurs du réseau local sur des serveurs POP ou IMAP accessibles sur internet
  • sendmail (MTA mail transport agent) serveur SMTP qui permet de gérer localement la réception des mails et d’appliquer certains filtres anti spam et anti virus pour cela on se basera sur SpamAssassin et ClamAV
  • procmail (MDA mail delivery agent) permet de délivrer les mails et les dispatcher suivant le destinataire, il peut également appliquer d’autres filtres
  • le serveur IMAP permet de rendre accessible aux lecteurs de mails (MUA Mail User Agent) du réseau local les mails qui sont arrivés, que vos clients soient sous windows ou sous linux.
  • le serveur webmail basé sur Roundcube mail permet de gérer les mails via un navigateur, y compris d’un téléphone mobile via internet. Pour cela il faudra rendre son serveur apache visible d’internet, tout l’intérêt de la manip est de rendre accessible d’internet que le serveur apache, il n’est pas nécessaire d’ouvrir les ports du serveur IMAP ou SMTP.

Pendant longtemps j’ai utilisé un serveur POP local, j’y accédais via thunderbird et pour que les mails soient accessibles sur tous les postes du réseau local, le répertoire .thunderbird dans lequel sont stockés les mails était partagé par partage NFS. Inconvénient de la méthode, les mails ne sont accessibles que du réseau local et d’un client lourd. Je suis passé au serveur IMAP pour pouvoir installer un webmail car il permet de pouvoir gérer une arborescence de dossiers de mails. C’est à dire sous thunderbird j’ai initialement classé mes mails dans des dossiers et sous dossiers, et seul IMAP permet de retrouver la même arborescence avec le webmail à partir d’un navigateur ou d’un mobile. Pour ce faire j’ai dû migrer le format de stockage de mes mails de mbox (en gros les mails d’un dossier sont dans un fichier unique) vers maildir (un mail est un fichier et un dossier est un répertoire).

C’est une architecture qui peut paraître particulièrement lourdingue et qui se base sur des outils qu’on peut considérer comme obsolète comme sendmail. Certes, certains disent que tant qu’on a pas chercher à  configurer sendmail, on n’est pas un vrai administrateur système… Disons que j’ai mis en place sendmail il y a maintenant plus de 20 ans sur mon réseau local à l’époque où il était encore largement répandu notamment dans le milieu professionnel et qu’il s’adaptait assez bien à la gestion des mails à l’époque des modems 56k et des adresses mails partagés entre plusieurs utilisateurs. Il existe maintenant bien plus facile à administrer comme postfix mais j’ai choisi d’être le dernier des mohicans et donc je persévère à utiliser sendmail.

Du coup j’ai toiletté mes pages sur le site FUNIX sur la gestion des mails, il s’agit notamment de :