Recherche de site Web

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 est en charge de la conception, mise en œuvre et maintenance continue de l’architecture du système et de l’administration des utilisateurs.

Présentation du programme de certification Linux Foundation.

Dans un didacticiel précédent, nous avons expliqué 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 première partie de cette série pour obtenir des instructions avant de continuer.

Exigence

  1. Installer le serveur de messagerie Postfix et Dovecot – Partie 1

Dans cet article, je vais vous montrer comment configurer votre serveur de messagerie et comment effectuer les tâches suivantes :

  1. Configurer les alias de messagerie
  2. Configurer un service IMAP et IMAPS
  3. Configurer un service smtp
  4. Restreindre l'accès à un serveur SMTP

Remarque : Notre configuration ne couvrira qu'un serveur de messagerie pour un réseau local où les machines appartiennent au même domaine. L'envoi d'e-mails vers d'autres domaines nécessite une configuration plus complexe, notamment des capacités de résolution de noms de domaine, qui sort du cadre de la certification LFCE.

Mais tout d’abord, commençons par quelques définitions.

Composants d'un processus d'envoi, de transport et de livraison de 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 que cela soit possible, plusieurs choses se produisent en coulisses. Pour qu'un message électronique soit envoyé depuis une application client (telle que Thunderbird, Outlook ou des services de messagerie Web tels que Gmail ou Yahoo! Mail) vers son serveur de messagerie et de là vers le serveur de destination et enfin vers son destinataire prévu , 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 ou Message Transport Agent), également appelé relais de messagerie, est un logiciel chargé de transférer les messages électroniques depuis un serveur. à un client (et inversement également). Dans cette série, Postfix fait office de MTA.

Agent utilisateur de messagerie – MUA

MUA, ou Mail User Agent, est un programme informatique utilisé pour accéder et gérer les boîtes de réception de courrier électronique de l'utilisateur. Des exemples de MUA incluent, sans s'y limiter, Thunderbird, Outlook et des 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 réellement les messages électroniques dans les boîtes de réception des utilisateurs. Dans ce didacticiel, nous utiliserons Dovecot comme MDA. Dovecot gérera également l'authentification des utilisateurs.

Protocole de transfert de courrier simple – SMTP

Pour que ces composants puissent « parler » entre eux, ils doivent « parler » la même « langue » (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.

Les autres protocoles dont nous devons tenir compte sont IMAP4 (Internet Message Access Protocol), qui permet de gérer les e-mails 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 mis en place une 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 de messagerie

Par défaut, un message envoyé à un utilisateur spécifique doit être remis à cet utilisateur uniquement. Cependant, si vous souhaitez également le transmettre à un groupe d'utilisateurs ou à un autre utilisateur, vous pouvez créer un alias de messagerie ou utiliser l'un de ceux existants dans /etc/postfix/aliases. , en suivant cette syntaxe :

user1: user1, user2

Ainsi, les e-mails envoyés à user1 seront également envoyés à user2. Notez que si vous omettez le mot user1 après les deux points, comme dans

user1: user2

les messages envoyés à user1 ne seront envoyés qu'à user2, et non à user1.

Dans l'exemple ci-dessus, user1 et user2 devraient déjà exister sur le système. Vous souhaiterez 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.

  1. Comment ajouter et gérer des utilisateurs/groupes sous Linux
  2. 15 commandes pour ajouter des utilisateurs sous Linux

Dans notre cas spécifique, nous utiliserons l'alias suivant comme expliqué précédemment (ajoutez la ligne suivante dans /etc/aliases).

sysadmin: gacanepa, jdoe

Et exécutez la commande suivante pour créer ou actualiser la table de recherche d'alias.

postalias /etc/postfix/aliases

Afin que les messages envoyés à [email  soient envoyés dans la boîte de réception des utilisateurs répertorié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 les paramètres de configuration complets (qui peuvent être répertoriés avec man 5 postconf) afin de mettre en place un serveur de messagerie sécurisé et entièrement personnalisé.

Remarque : Ce didacticiel est uniquement censé vous aider à démarrer dans ce processus et ne représente pas un guide complet sur les services de messagerie sous 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ù utilisateur est l'utilisateur qui envoie le message.

2. ma destination répertorie les domaines dans lesquels cette machine enverra les 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 d'éditer le fichier en fonction de votre environnement).

Où le fichier /etc/postfix/transport définit la relation entre les domaines et le prochain serveur vers lequel les messages électroniques doivent être transférés. Dans notre cas, puisque nous enverrons les messages uniquement à notre réseau local (en 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 du courrier entrant et sortant.

postmap /etc/postfix/transport

Vous devrez penser à recréer ce tableau 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 uniquement le courrier des clients SMTP dans les mêmes sous-réseaux IP que la machine locale.

mynetworks = subnet

4. relay_domains spécifie les destinations vers lesquelles les e-mails doivent être envoyés. Nous laisserons intacte la valeur par défaut, qui pointe vers ma destination. N'oubliez pas que nous mettons 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 respectivement la taille de la boîte aux lettres de chaque utilisateur et la taille maximale autorisée des messages individuels, en octets.

mailbox_size_limit = 51200000
message_size_limit = 5120000

Restreindre l'accès au serveur SMTP

Le serveur Postfix SMTP peut appliquer certaines restrictions à chaque demande de connexion client. Tous les clients ne devraient pas être autorisés à s'identifier auprès du serveur de messagerie à l'aide de la commande smtp HELO, et ils ne devraient certainement pas tous avoir accès à l'envoi ou à la réception de messages.

Pour implémenter 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 du pigeonnier

Juste après l'installation de dovecot, il prend en charge 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 existe un sous-répertoire mail avec le contenu suivant.

Veuillez également noter que le fichier /var/mail/%u est l'endroit où les courriers 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 des imaps et des pop3).

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 FichierNouveauCompte de messagerie existant. Nous serons invités à saisir le nom du compte et l'adresse e-mail associée, ainsi que son mot de passe. Lorsque nous cliquons sur Continuer, Thunderbird tentera 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 e-mail à sysadmin, qui est alias jdoe et gacanepa.

Le journal de messagerie (/var/log/mail.log) semble indiquer que l'e-mail envoyé à sysadmin a été relayé vers [email  et [email , comme le montre l'image suivante.

Nous pouvons vérifier si le courrier a bien été remis à notre client, où les comptes IMAP ont été configurés dans Thunderbird.

Enfin, essayons d'envoyer un message de [email  à [email .

Lors de 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 client de bureau telle que Thunderbird, mais que vous devrez plutôt utiliser la messagerie. 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 souhaiterez consulter la documentation en ligne de Postfix et Dovecot (en particulier les pages sur les principaux fichiers de configuration, /etc/postfix/main.cf et/etc/dovecot/dovecot.conf, respectivement), mais en tout cas n'hésitez pas à me contacter en utilisant le formulaire de commentaires ci-dessous. Je serai plus qu’heureux de vous aider.