Configuration des services de messagerie (SMTP, Imap et Imaps) et restriction de l’accès à SMTP - Partie 7
Un LFCE (Linux Foundation Certified Engineer) est un professionnel formé qui possède les compétences nécessaires pour installer, gérer et dépanner les services réseau dans les systèmes Linux, et qui est en charge de la conception, de la mise en œuvre et de la maintenance continue de l’architecture du système et de l’administration des utilisateurs.
Présentation du programme de certification Linux Foundation.
Dans un tutoriel précédent, nous avons vu comment installer les composants nécessaires d’un service de messagerie. Si vous n’avez pas encore installé Postfix et Dovecot, veuillez vous référer à la partie 1 de cette série pour obtenir des instructions avant de continuer.
exigence
- Installer Postfix Mail Server et Dovecot - Partie 1
Dans cet article, je vais vous montrer comment configurer votre serveur de messagerie et comment effectuer les tâches suivantes :
- Configurer les alias d’e-mail
- Configurer un IMAP et un service IMAPS
- Configurer un service smtp
- Restreindre l’accès à un serveur smtp
Remarque : Que notre configuration ne couvrira qu’un serveur de messagerie pour un réseau local où les machines appartiennent au même domaine. L’envoi de messages électroniques à d’autres domaines nécessite une configuration plus complexe, y compris des capacités de résolution de noms de domaine, qui sort du champ d’application de la certification LFCE.
Mais tout d’abord, commençons par quelques définitions.
Composantes d’un processus d’envoi, de transport et de livraison du courrier
L’image suivante illustre le processus de transport des e-mails, en commençant par l’expéditeur jusqu’à ce que le message atteigne la boîte de réception du destinataire :
Pour rendre cela possible, plusieurs choses se passent en coulisses. Pour qu’un message électronique soit livré à partir d’une application cliente (telle que Thunderbird, Outlook ou des services de messagerie Web tels que Gmail ou Yahoo ! Mail) à son serveur de messagerie et de là au serveur de destination et enfin à son destinataire, un service SMTP (Simple Mail Transfer Protocol) doit être en place sur chaque serveur.
Lorsque l’on parle de services de messagerie, vous trouverez très souvent les termes suivants mentionnés :
Agent de transport de messages – MTA
MTA (abréviation de Mail or Message Transport Agent), alias relais de courrier, est un logiciel qui se charge de transférer les messages électroniques d’un serveur à un client (et vice versa également). Dans cette série, Postfix fait office de MTA.
Agent utilisateur de messagerie – MUA
Le MUA, ou Mail User Agent, est un programme informatique utilisé pour accéder et gérer les boîtes de réception des e-mails de l’utilisateur. Des exemples de MUA incluent, mais sans s’y limiter, Thunderbird, Outlook et les interfaces de messagerie Web telles que Gmail, Outlook.com, pour n’en nommer que quelques-unes. Dans cette série, nous utiliserons Thunderbird dans nos exemples.
Agent de livraison du courrier
MDA (abréviation de Message ou Mail Delivery Agent) est la partie logicielle qui envoie les messages électroniques dans les boîtes de réception des utilisateurs. Dans ce tutoriel, nous allons utiliser Dovecot comme MDA. Dovecot s’occupera également de l’authentification des utilisateurs.
Protocole de transfert de courrier simple – SMTP
Pour que ces composants puissent « parler » entre eux, ils doivent « parler » le même « langage » (ou protocole), à savoir SMTP (Simple Mail Transfer Protocol) tel que défini dans la RFC 2821. Très probablement, vous devrez vous référer à cette RFC lors de la configuration de votre environnement de serveur de messagerie.
D’autres protocoles que nous devons prendre en compte sont IMAP4 (Internet Message Access Protocol), qui permet de gérer les messages électroniques directement sur le serveur sans les télécharger sur le disque dur de notre client, et POP3 (Post Office Protocol), qui permet de télécharger les messages et les dossiers sur l’ordinateur de l’utilisateur.
Notre environnement de test
Notre environnement de test est le suivant :
Configuration du serveur de messagerie
Mail Server OS : Debian Wheezy 7.5
IP Address : 192.168.0.15
Local Domain : example.com.ar
User Aliases : [email is aliased to [email and [email
Configuration de la machine cliente
Mail Client OS : Ubuntu 12.04
IP Address : 192.168.0.103
Sur notre client, nous avons configuré la résolution DNS élémentaire en ajoutant la ligne suivante au fichier /etc/hosts.
192.168.0.15 example.com.ar mailserver
Ajout d’alias d’adresse e-mail
Par défaut, un message envoyé à un utilisateur spécifique ne doit être remis qu’à cet utilisateur. Cependant, si vous souhaitez également le distribuer à un groupe d’utilisateurs, ou à un autre utilisateur, vous pouvez créer un alias de messagerie ou utiliser l’un des alias existants dans /etc/postfix/aliases, en suivant cette syntaxe :
user1: user1, user2
Ainsi, les e-mails envoyés à l’utilisateur1 seront également livrés à l’utilisateur2. Notez que si vous omettez le mot utilisateur1 après les deux-points, comme dans
user1: user2
Les messages envoyés à l’utilisateur1 ne seront envoyés qu’à l’utilisateur2, et non à l’utilisateur1.
Dans l’exemple ci-dessus, utilisateur1 et utilisateur2 doivent déjà exister sur le système. Vous voudrez peut-être vous référer à la partie 8 de la série LFCS si vous avez besoin de vous rafraîchir la mémoire avant d’ajouter de nouveaux utilisateurs.
- Comment ajouter et gérer des utilisateurs/groupes sous Linux
- 15 commandes pour ajouter des utilisateurs sous Linux
Dans notre cas spécifique, nous utiliserons l’alias suivant comme expliqué précédemment (ajouter la ligne suivante dans /etc/aliases).
sysadmin: gacanepa, jdoe
Exécutez la commande suivante pour créer ou actualiser la table de recherche d’alias.
postalias /etc/postfix/aliases
Ainsi, les messages envoyés à [email seront livrés dans la boîte de réception des utilisateurs énumérés ci-dessus.
Configuration de Postfix – Le service SMTP
Le fichier de configuration principal de Postfix est /etc/postfix/main.cf. Il vous suffit de configurer quelques paramètres avant de pouvoir utiliser le service de messagerie. Cependant, vous devez vous familiariser avec tous les paramètres de configuration (qui peuvent être listés avec man 5 postconf) afin de mettre en place un serveur de messagerie sécurisé et entièrement personnalisé.
Remarque : Ce tutoriel est uniquement destiné à vous lancer dans ce processus et ne représente pas un guide complet sur les services de messagerie avec Linux.
Ouvrez le fichier /etc/postfix/main.cf avec l’éditeur de votre choix et effectuez les modifications suivantes comme expliqué.
# vi /etc/postfix/main.cf
1. myorigin spécifie le domaine qui apparaît dans les messages envoyés depuis le serveur. Vous pouvez voir le fichier /etc/mailname utilisé avec ce paramètre. N’hésitez pas à le modifier si nécessaire.
myorigin = /etc/mailname
Si la valeur ci-dessus est utilisée, les e-mails seront envoyés sous la forme [email , où l’utilisateur est l’utilisateur qui envoie le message.
2. mydestination répertorie les domaines dans lesquels cette machine enverra des messages électroniques localement, au lieu de les transférer vers une autre machine (agissant comme un système de relais). Les paramètres par défaut suffiront dans notre cas (assurez-vous de modifier le fichier en fonction de votre environnement).
Où le fichier /etc/postfix/transport définit la relation entre les domaines et le serveur suivant vers lequel les messages électroniques doivent être transférés. Dans notre cas, puisque nous ne livrerons des messages qu’à notre réseau local (contournant ainsi toute résolution DNS externe), la configuration suivante suffira.
example.com.ar local:
.example.com.ar local:
Ensuite, nous devons convertir ce fichier texte brut au format .db, ce qui crée la table de recherche que Postfix utilisera réellement pour savoir quoi faire avec le courrier entrant et sortant.
# postmap /etc/postfix/transport
N’oubliez pas de recréer cette table si vous ajoutez d’autres entrées au fichier texte correspondant.
3. mynetworks définit les réseaux autorisés à partir desquels Postfix transmettra les messages. La valeur par défaut, subnet, indique à Postfix de transférer le courrier des clients SMTP dans les mêmes sous-réseaux IP que la machine locale uniquement.
mynetworks = subnet
4. relay_domains spécifie les destinations auxquelles les e-mails doivent être envoyés. Nous laisserons intacte la valeur par défaut, qui pointe vers madestination. N’oubliez pas que nous sommes en train de mettre en place un serveur de messagerie pour notre réseau local.
relay_domains = $mydestination
Notez que vous pouvez utiliser $mydestination au lieu de lister le contenu réel.
5. inet_interfaces définit les interfaces réseau sur lesquelles le service de messagerie doit écouter. La valeur par défaut, all, indique à Postfix d’utiliser toutes les interfaces réseau.
inet_interfaces = all
6. Enfin, mailbox_size_limit et message_size_limit seront utilisés pour définir la taille de la boîte aux lettres de chaque utilisateur et la taille maximale autorisée des messages individuels, respectivement, en octets.
mailbox_size_limit = 51200000
message_size_limit = 5120000
Restriction de l’accès au serveur SMTP
Le serveur SMTP Postfix peut appliquer certaines restrictions à chaque demande de connexion client. Tous les clients ne doivent pas être autorisés à s’identifier auprès du serveur de messagerie à l’aide de la commande smtp HELO, et ils ne doivent certainement pas tous être autorisés à envoyer ou à recevoir des messages.
Pour mettre en œuvre ces restrictions, nous utiliserons les directives suivantes dans le fichier main.cf. Bien qu’ils soient explicites, des commentaires ont été ajoutés à des fins de clarification.
# Require that a remote SMTP client introduces itself with the HELO or EHLO command before sending the MAIL command or other commands that require EHLO negotiation.
smtpd_helo_required = yes
Permit the request when the client IP address matches any network or network address listed in $mynetworks
Reject the request when the client HELO and EHLO command has a bad hostname syntax
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname
Reject the request when Postfix does not represent the final destination for the sender address
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain
Reject the request unless 1) Postfix is acting as mail forwarder or 2) is the final destination
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
La page postconf des paramètres de configuration de Postfix peut s’avérer utile pour explorer davantage les options disponibles.
Configuration de Dovecot
Juste après l’installation de dovecot, il prend en charge les protocoles prêts à l’emploi pour les protocoles POP3 et IMAP, ainsi que leurs versions sécurisées, POP3S et IMAPS, respectivement.
Ajoutez les lignes suivantes dans le fichier /etc/dovecot/conf.d/10-mail.conf.
# %u represents the user account that logs in
Mailboxes are in mbox format
mail_location = mbox:~/mail:INBOX=/var/mail/%u
Directory owned by the mail group and the directory set to group-writable (mode=0770, group=mail)
You may need to change this setting if postfix is running a different user / group on your system
mail_privileged_group = mail
Si vous vérifiez votre répertoire personnel, vous remarquerez qu’il y a un sous-répertoire mail avec le contenu suivant.
Notez également que le fichier /var/mail/ %u est l’endroit où les e-mails de l’utilisateur sont stockés sur la plupart des systèmes.
Ajoutez la directive suivante à /etc/dovecot/dovecot.conf (notez que imap et pop3 impliquent également imaps et pop3s).
protocols = imap pop3
Et assurez-vous que /etc/conf.d/10-ssl.conf inclut les lignes suivantes (sinon, ajoutez-les).
ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem
Redémarrons maintenant Dovecot et vérifions qu’il écoute sur les ports liés à imap, imaps, pop3 et pop3s.
# netstat -npltu | grep dovecot
Configuration d’un client de messagerie et envoi/réception de courriers
Sur notre ordinateur client, nous ouvrirons Thunderbird et cliquerons sur Fichier → Nouveau compte de messagerie → existant. Nous serons invités à entrer le nom du compte et l’adresse e-mail associée, ainsi que son mot de passe. Lorsque nous cliquons sur Continuer, Thunderbird essaiera alors de se connecter au serveur de messagerie afin de vérifier les paramètres.
Répétez le processus ci-dessus pour le compte suivant ([email ) et les deux boîtes de réception suivantes devraient apparaître dans le volet gauche de Thunderbird.
Sur notre serveur, nous écrirons un message électronique à sysadmin, qui est aliasé en jdoe et gacanepa.
Le journal des e-mails (/var/log/mail.log) semble indiquer que l’e-mail envoyé à l’administrateur système a été relayé à [email et [email , comme on peut le voir dans l’image suivante.
Nous pouvons vérifier si le courrier a bien été livré à notre client, où les comptes IMAP ont été configurés dans Thunderbird.
Enfin, essayons d’envoyer un message de [email à [email .
Dans l’examen, il vous sera demandé de travailler exclusivement avec des utilitaires de ligne de commande. Cela signifie que vous ne pourrez pas installer une application cliente de bureau telle que Thunderbird, mais que vous devrez utiliser la messagerie à la place. Nous avons utilisé Thunderbird dans ce chapitre à des fins d’illustration uniquement.
Conclusion
Dans cet article, nous avons expliqué comment configurer un serveur de messagerie IMAP pour votre réseau local et comment restreindre l’accès au serveur SMTP. Si vous rencontrez un problème lors de l’implémentation d’une configuration similaire dans votre environnement de test, vous voudrez vérifier la documentation en ligne de Postfix et Dovecot (en particulier les pages sur les fichiers de configuration principaux, /etc/postfix/main.cf et /etc/dovecot/dovecot.conf, respectivement), mais dans tous les cas n’hésitez pas à me contacter en utilisant le formulaire de commentaire ci-dessous. Je serai plus qu’heureux de vous aider.














