13.3. Agents de transport de courrier
Red Hat Enterprise Linux 7 offre deux principaux MTA : Postfix et Sendmail. Postfix est configuré en tant que MTA par défaut et Sendmail est considéré comme déconseillé. Si vous vous trouvez dans l'obligation de changer le MTA par défaut sur Sendmail, vous pouvez désinstaller Postfix ou utiliser la commande suivante en tant qu'utilisateur
root
pour basculer sur Sendmail :
~]# alternatives --config mta
Vous pouvez également utiliser la commande suivante pour activer le service souhaité :
~]# systemctl enable service
Similairement, pour désactiver le service, veuillez saisir ce qui suit dans une invite de shell :
~]# systemctl disable service
Pour obtenir davantage d'informations sur la manière de gérer les services système sur Red Hat Enterprise Linux 7, veuillez consulter le Chapitre 9, Gérer les services avec systemd.
13.3.1. Postfix
Développé à l'origine par un expert en sécurité et programmeur chez IBM, Wietse Venema, Postfix est un MTA compatible avec Sendmail conçu de manière à être sécurisé, rapide, et facile à configurer.
Pour améliorer la sécurité, Postfix utilise un design modulaire, où de petits processus avec des privilèges limités sont lancés par un démon maître master. Les plus petits processus, moins privilégiés, effectuent des tâches très particulières liées aux différentes étapes de la remise du courrier et sont exécutés dans un environnement racine modifié pour limiter les effets de toute attaque.
Configurer Postfix pour accepter des connexions réseau en provenance d'hôtes autres que l'ordinateur local ne demande que quelques changements mineurs dans son fichier de configuration. Lorsque des besoins plus complexes se font sentir, Postfix fournit une variété d'options de configuration, ainsi que des greffons de tierces parties qui en font un MTA très versatile et avec des nombreuses fonctionnalités.
Les fichiers de configuration de Postfix sont lisibles par les humains et prennent en charge plus de 250 directives. Contrairement à Sendmail, aucun traitement macro n'est requis pour que les changements entrent en vigueur, et la majorité des options les plus couramment utilisées sont décrites dans les fichiers lourdement commentés.
13.3.1.1. Installation Postfix par défaut
L'exécutable Postfix se nomme
postfix
. Ce démon lance tous les processus nécessaires à la gestion de la remise du courrier.
Postfix stocke ses fichiers de configuration dans le répertoire
/etc/postfix/
. Voici une liste de fichiers les plus couramment utilisés :
access
— utilisé pour le contrôle des accès, ce fichier spécifie les hôtes autorisés à se connecter à Postfix.main.cf
— fichier de configuration global de Postfix. La majorité des options de configuration sont spécifiées dans ce fichier.master.cf
— spécifie la manière par laquelle Postfix interagit avec les divers processus pour effectuer la remise du courrier.transport
— fait correspondre les adresses électroniques avec les hôtes de relais.
Le fichier
aliases
se trouve dans le répertoire /etc
. Ce fichier est partagé entre Postfix et Sendmail. Il s'agit d'une liste configurable requise par le protocole de messagerie qui décrit les alias des ID utilisateurs.
Important
Le fichier
/etc/postfix/main.cf
par défaut n'autorise pas Postfix à accepter de connexions réseau d'un hôte autre que l'ordinateur local. Pour obtenir des instructions sur la configuration de Postfix en tant que serveur pour d'autres clients, veuillez consulter la Section 13.3.1.3, « Configuration de base Postfix ».
Redémarrez le service
postfix
après avoir modifié toute option des fichiers de configuration sous le répertoire /etc/postfix/
afin que les changements entrent en vigueur. Pour faire cela, veuillez exécuter la commande suivante en tant qu'utilisateur root
:
~]# systemctl restart postfix
13.3.1.2. Mettre à niveau à partir d'une version précédente
Les paramètres suivants de Red Hat Enterprise Linux 7 sont différents des versions précédentes :
disable_vrfy_command = no
— ce paramètre est désactivé par défaut, ce qui est différent des valeurs par défaut de Sendmail. Si modifié suryes
, il peut empêcher certaines méthodes de récolte d'adresses électroniques.allow_percent_hack = yes
— ce paramètre est activé par défaut. Il permet la suppression des caractères%
dans les adresses électroniques. Le bricolage du pourcentage est une ancienne solution de contournement qui permettait le routage contrôlé par l'envoyeur des messages électroniques.DNS
et le routage de courrier sont désormais bien plus fiables, mais Postfix continue de prendre en charge ce bricolage. Pour désactiver la réécriture du pourcentage, veuillez définirallow_percent_hack
surno
.smtpd_helo_required = no
— ce paramètre est désactivé par défaut, tout comme sur Sendmail, car il empêche certaines applications d'envoyer des courriers électroniques. Il peut être modifié suryes
pour requérir des clients qu'ils envoient des commandes HELO ou EHLO avant de tenter d'envoyer les commandes MAIL, FROM, ou ETRN.
13.3.1.3. Configuration de base Postfix
Par défaut, Postfix n'accepte pas de connexion réseau d'hôte différent que l'hôte local. Veuillez reproduire les étapes suivantes en tant qu'utilisateur
root
pour activer la remise de courrier pour d'autres hôtes sur le réseau :
- Modifiez le fichier
/etc/postfix/main.cf
avec un editeur de texte, tel quevi
. - Décommentez la ligne
mydomain
en supprimant le caractère dièse (#
), et remplacez domain.tld par le domaine entretenu par le serveur de courrier, tel queexample.com
. - Décommentez la ligne
myorigin = $mydomain
. - Décommentez la ligne
myhostname
, et remplacez host.domain.tld par le nom d'hôte de la machine. - Décommentez la ligne
mydestination = $myhostname, localhost.$mydomain
. - Décommentez la ligne
mynetworks
, et remplacez 168.100.189.0/28 par un paramètre réseau valide pour les hôtes qui peuvent se connecter au serveur. - Décommentez la ligne
inet_interfaces = all
. - Mettez la ligne
inet_interfaces = localhost
en commentaire. - Redémarrez le service
postfix
.
Une fois ces étapes reproduites, l'hôte acceptera de remettre des courriers extérieurs.
Postfix offre un large éventail d'options de configuration. L'une des meilleures manières d'apprendre comment configurer Postfix consiste à lire les commentaires dans le fichier de configuration
/etc/postfix/main.cf
. Des ressources supplémentaires, y compris des informations sur la configuration de Postfix, l'intégration de SpamAssassin, ou des descriptions détaillées des paramètres /etc/postfix/main.cf
sont disponibles en ligne sur http://www.postfix.org/.
Important
À cause de la vulnérabilité décrite dans POODLE: SSLv3 vulnerability (CVE-2014-3566), Red Hat recommande de désactiver
SSL
et d'utiliser TLSv1.1
ou TLSv1.2
uniquement. Voir Résolution de la vulnérabilité POODLE SSL 3.0 (CVE-2014-3566) dans Postfix et Dovecot pour obtenir plus de détails.
13.3.1.4. Utiliser Postfix avec LDAP
Postfix peut utiliser un répertoire
LDAP
en tant que source pour diverses tables de recherche (par exemple : aliases
, virtual
, canonical
, etc.). Ceci permet à LDAP
de stocker des informations utilisateur hiérarchiques et à Postfix de recevoir le résultat des requêtes LDAP
uniquement lorsque nécessaire. En ne stockant pas ces informations localement, les administrateurs peuvent les maintenir plus facilement.
13.3.1.4.1. L'exemple de recherche /etc/aliases
Ci-dessous figure un exemple de base d'utilisation de
LDAP
pour rechercher le fichier /etc/aliases
. Assurez-vous que le fichier /etc/postfix/main.cf
contienne bien :
alias_maps = hash:/etc/aliases, ldap:/etc/postfix/ldap-aliases.cf
Veuillez créer un fichier
/etc/postfix/ldap-aliases.cf
, si vous n'en possédez pas déjà un, et assurez-vous qu'il contiennent effectivement ce qui suit :
server_host = ldap.example.com search_base = dc=example, dc=com
où
ldap.example.com
, example
, et com
sont des paramètres qui doivent être remplacés avec la spécification d'un serveur LDAP
existant et disponible.
Note
Le fichier
/etc/postfix/ldap-aliases.cf
peut spécifier divers paramètres, y compris des paramètres activant LDAP
SSL
et STARTTLS
. Pour obtenir davantage d'informations, veuillez consulter la page man de ldap_table(5)
.
Pour plus d'informations sur
LDAP
, voir OpenLDAP dans le guide System-Level Authentication Guide.
13.3.2. Sendmail
Le but premier de Sendmail, tout comme les autres MTA, est de transférer le courrier entre les hôtes en toute sécurité, ce qui est habituellement fait à l'aide du protocole
SMTP
. Veuillez remarquer que l'utilisation de Sendmail est déconseillée et ses utilisateurs sont encouragés à utiliser Postfix lorsque possible. Veuillez consulter la Section 13.3.1, « Postfix » pour obtenir davantage d'informations.
13.3.2.1. Objectif et limites
Il est important de savoir ce que Sendmail est et peut faire, ainsi que de connaître ses limitations. De nos jours, avec des applications monolithiques remplissant de multiples rôles, Sendmail peut sembler être la seule application nécessaire pour exécuter un serveur de courrier électronique dans une organisation. Techniquement, cette affirmation est véridique, car Sendmail pour mettre en spool le courrier sur le répertoire de chaque utilisateur et distribuer le courrier sortant des utilisateurs. Cependant, la plupart des utilisateurs requièrent bien plus qu'une simple distribution du courrier. Les utilisateurs souhaitent habituellement interagir avec leur courrier électronique en utilisant un MUA, qui utilise
POP
ou IMAP
pour télécharger les messages sur la machine locale. Ces utilisateurs peuvent également préférer d'utiliser une interface Web pour obtenir accès à leur boîte de réception. Les autres applications peuvent fonctionner en conjonction avec Sendmail, mais elles existent pour différentes raisons et peuvent opérer séparément les unes des autres.
Tout ce que Sendmail pourrait ou devrait être configuré à faire est au-delà de l'étendue de cette section. Des centaines d'options et de règles, et des volumes entiers ont été consacrés à expliquer tout ce qui peut être fait et comment résoudre les problèmes pouvant se produire. Veuillez consulter la Section 13.6, « Ressources supplémentaires » pour afficher une liste des ressources Sendmail.
Cette section examine les fichiers installés avec Sendmail par défaut et les changements de configuration de base, y compris comment arrêter de recevoir du courrier indésirable (spam) et comment étendre Sendmail avec le protocole LDAP (Lightweight Directory Access Protocol).
13.3.2.2. Installation Sendmail par défaut
Pour utiliser Sendmail, commencez par vous assurer que le paquet sendmail soit installé sur votre système en exécutant la commande suivante en tant qu'utilisateur
root
:
~]# yum install sendmail
Pour configurer Sendmail, assurez-vous que le paquet sendmail-cf est installé sur votre système en exécutant la commande suivante en tant qu'utilisateur
root
:
~]# yum install sendmail-cf
Pour obtenir davantage d'informations sur l'installation de paquets avec Yum, veuillez consulter la Section 8.2.4, « Installation de paquets ».
Avant d'utiliser Sendmail, le MTA par défaut doit être changé à partir de Postfix. Pour obtenir davantage d'informations sur la manière de changer le MTA par défaut, veuillez consulter la Section 13.3, « Agents de transport de courrier ».
L'exécutable Sendmail est nommé
sendmail
.
Le fichier de configuration Sendmail long et détaillé est nommé
/etc/mail/sendmail.cf
. Veuillez éviter de modifier le fichier sendmail.cf
directement. Pour effectuer des changements de configuration sur Sendmail, veuillez modifier le fichier /etc/mail/sendmail.mc
, effectuer une copie de sauvegarde du fichier /etc/mail/sendmail.cf
d'origine, puis utiliser les alternatives suivantes pour générer un nouveau fichier de configuration :
- Veuillez utiliser le fichier makefile inclus dans le fichier de configuration
/etc/mail/
pour créer un nouveau fichier de configuration/etc/mail/sendmail.cf
:~]#
make all -C /etc/mail/
Tous les autres fichiers générés dans/etc/mail
(fichiers db) seront générés à nouveau si nécessaire. Les anciennes commandes makemap sont toujours utilisables. La commande make est automatiquement utilisée lorsque vous démarrez ou redémarrez le servicesendmail
.
Davantage d'information sur la configuration de Sendmail se trouve dans la Section 13.3.2.3, « Changements communs de la configuration Sendmail ».
Divers fichiers de configuration Sendmail sont installés dans le répertoire
/etc/mail/
, y compris :
access
— indique quels systèmes peuvent utiliser Sendmail pour les courriers électroniques sortants.domaintable
— spécifie le mappage du nom de domaine.local-host-names
— spécifie les alias de l'hôte.mailertable
— spécifie les instructions qui outrepassent le routage de certains domaines particuliers.virtusertable
— spécifie une forme de crénelage spécifique aux domaines, permettant à de multiples domaines virtuels d'être hébergés sur une machine.
Plusieurs fichiers de configuration dans le répertoire
/etc/mail/
, comme access
, domaintable
, mailertable
et virtusertable
, doivent stocker leurs informations dans des fichiers de base de données avant que Sendmail puisse utiliser un changement de configuration. Pour inclure tout changement apporté à ces configurations dans leurs fichiers de base de données, veuillez exécuter les commandes suivantes en tant qu'utilisateur root
:
~]#Ceci mettra à jourcd /etc/mail/
~]#make all
virtusertable.db
, access.db
, domaintable.db
, mailertable.db
, sendmail.cf
, et submit.cf
.
Pour mettre à jour tous les fichiers de la base de données répertoriés ci-dessus, et pour mettre à jour un fichier personnalisé de base de données, veuillez utiliser une commande sous le format suivant :
make name.db all
où name correspond au nom du fichier personnalisé de la base de données à mettre à jour.
Pour mettre à jour une seule base de données, veuillez utiliser une commande du format suivant :
make name.db
où name.db correspond au nom du fichier de la base de données à mettre à jour.
Vous pouvez également redémarrer le service
sendmail
pour que les changements entrent en vigueur en exécutant :
~]# systemctl restart sendmail
Par exemple, pour que tous les courriers électroniques adressés au domaine
example.com
soient remis à bob@other-example.com
, veuillez ajouter la ligne suivante au fichier virtusertable
:
@example.com bob@other-example.com
Pour finaliser le changement, le fichier
virtusertable.db
doit être mis à jour :
~]# make virtusertable.db
all
L'utilisation de l'option
all
provoquera la mise à jour simultanée de virtusertable.db
et access.db
.
13.3.2.3. Changements communs de la configuration Sendmail
Lors de l'altération du fichier de configuration Sendmail, il vaut mieux ne pas modifier un fichier existant, mais générer un fichier
/etc/mail/sendmail.cf
complètement nouveau.
Avertissement
Avant de remplacer ou d'effectuer tout changement sur le fichier
sendmail.cf
, veuillez créer une copie de sauvegarde.
Pour ajouter la fonctionnalité souhaitée à Sendmail, veuillez modifier le fichier
/etc/mail/sendmail.mc
en tant qu'utilisateur root
. Après avoir terminé, veuillez redémarrer le service sendmail
, si le paquet m4 est installé, le processeur macro m4
générera automatiquement un nouveau fichier de configuration sendmail.cf
:
~]# systemctl restart sendmail
Important
Le fichier
sendmail.cf
par défaut interdit à Sendmail d'accepter des connexions réseau en provenance de tout autre hôte que l'ordinateur local. Pour configurer Sendmail en tant que serveur pour d'autres clients, veuillez modifier le fichier /etc/mail/sendmail.mc
, et modifiez l'adresse spécifiée dans l'option Addr=
de la directive DAEMON_OPTIONS
en provenance de 127.0.0.1
par l'adresse IP d'un périphérique réseau actif ou mettez en commentaire la directive DAEMON_OPTIONS
toute entière en plaçant dnl
au début de la ligne. Une fois cela terminé, veuillez générer un nouveau fichier /etc/mail/sendmail.cf
en redémarrant le service :
~]# systemctl restart sendmail
La configuration par défaut dans Red Hat Enterprise Linux fonctionne pour la plupart des sites utilisant uniquement
SMTP
. Cependant, cela ne fonctionne pas pour les sites UUCP (« UNIX-to-UNIX Copy Protocol »). Si vous utilisez le transfert de courrier UUCP, le fichier /etc/mail/sendmail.mc
doit être reconfiguré et un nouveau fichier /etc/mail/sendmail.cf
doit être généré.
Veuillez consulter le fichier
/usr/share/sendmail-cf/README
avant de mettre à jour tout fichier dans les répertoires situés sous le répertoire /usr/share/sendmail-cf/
, car ils peuvent affecter la future configuration du fichier /etc/mail/sendmail.cf
.
13.3.2.4. Camouflage
Une configuration Sendmail commune consiste à faire en sorte qu'une seule machine agisse en tant que passerelle pour toutes les machines sur le réseau. Par exemple, une société pourrait souhaiter avoir une machine appelée
mail.example.com
qui gère tout le courrier électronique et assigne une adresse de retour cohérente à tout courrier sortant.
Dans cette situation, le serveur Sendmail doit camoufler les noms de machine sur le réseau de la société de manière à ce que l'adresse de retour affiche
user@example.com
au lieu de user@host.example.com
.
Pour faire cela, veuillez ajouter les lignes suivantes à
/etc/mail/sendmail.mc
:
FEATURE(always_add_domain)dnl FEATURE(`masquerade_entire_domain')dnl FEATURE(`masquerade_envelope')dnl FEATURE(`allmasquerade')dnl MASQUERADE_AS(`example.com.')dnl MASQUERADE_DOMAIN(`example.com.')dnl MASQUERADE_AS(example.com)dnl
Après avoir généré un nouveau fichier
sendmail.cf
en utilisant le processeur macro m4
, cette configuration fait apparaître tout le courrier intérieur au réseau comme s'il avait été envoyé par example.com
.
Remarquez que les administrateurs de serveurs de courrier, des serveurs
DNS
et DHCP
, ainsi que toute application de provisioning, doivent s'accorder sur le format des noms d'hôtes utilisé dans une organisation. Veuillez consulter le Guide de mise en réseau Red Hat Enterprise Linux 7 pour obtenir davantage d'informations sur les pratiques de dénomination recommandées.
13.3.2.5. Arrêter le courrier indésirable
Le courrier indésirable est le courrier non nécessaire et non solicité reçu par un utilisateur qui n'a jamais requis de communication. Il s'agit d'un abus perturbateur, coûteux et répandu des standards de communication internet.
Sendmail rend relativement facile le blocage des nouvelles techniques de spam utilisées pour envoyer du courrier indésirable. Il bloque également les méthodes de spam les plus courantes par défaut. Les principales fonctionnalités anti-spam disponibles sur Sendmail incluent la vérification des en-têtes (header checks), le déni de relais (relaying denial, par défaut la version 8.9), et les vérifications d'informations sur l'envoyeur et sur les bases de données d'accès (access database and sender information checks).
Par exemple, le transfert de messages
SMTP
, aussi appelé relais, a été désactivé par défaut depuis la version 8.9 de Sendmail. Avant ce changement, Sendmail ordonnait à l'hôte du courrier (x.edu
) d'accepter les messages d'une partie (y.com
) et de les envoyer à une autre partie (z.net
). Cependant, Sendmail doit désormais être configuré pour autoriser à tout domaine de relayer le courrier à travers le serveur. Pour configurer les domaines de relais, veuillez modifier le fichier /etc/mail/relay-domains
et redémarrer Sendmail
~]# systemctl restart sendmail
Cependant les utilisateurs peuvent également recevoir du courrier indésirable provenant de serveurs sur internet. Dans ce cas, les fonctionnalités de contrôle d'accès de Sendmail disponibles à travers le fichier
/etc/mail/access
peuvent être utilisées pour empêcher des connexions d'hôtes indésirables. L'exemple suivant illustre comment utiliser ce fichier pour bloquer et spécifiquement autoriser l'accès au serveur Sendmail :
badspammer.com ERROR:550 "Go away and do not spam us anymore" tux.badspammer.com OK 10.0 RELAY
Cet exemple montre que tout courrier électronique envoyé à partir de
badspammer.com
est bloqué avec un code d'erreur de conformité 550 RFC-821, avec un message renvoyé. Le courrier électronique envoyé à partir du sous-domaine tux.badspammer.com
est accepté. La dernière ligne affiche que tout courrier électronique envoyé depuis le réseau 10.0.*.* peut être relayé à travers le serveur de courrier.
Comme le fichier
/etc/mail/access.db
est une base de données, veuillez utiliser la commande makemap
pour mettre à jour tout changement. Pour effectuer cela, veuillez utiliser la commande suivante en tant qu'utilisateur root
:
~]# makemap hash /etc/mail/access < /etc/mail/access
L'analyse d'en-tête de message vous permet de rejeter le courrier basé sur le contenu des en-têtes. Les serveurs
SMTP
stockent des informations sur le parcours d'un courrier électronique dans l'en-tête du message. Tandis que le messages se déplacent d'un MTA à un autre, chacun ajoute un en-tête Received
(« Reçu ») au-dessus des autres en-têtes Received
. Il est important de noter que ces informations peuvent être altérées par les expéditeurs du courrier indésirable.
Les exemples ci-dessus représentent uniquement une petite partie de ce que Sendmail peut faire lors de l'autorisation ou du blocage des accès. Veuillez afficher le fichier
/usr/share/sendmail-cf/README
pour obtenir davantage d'informations et d'exemples.
Comme Sendmail appelle le MDA Procmail lors de la remise du courrier, il est également possible d'utiliser un programme de filtrage de courrier indésirable, tel que SpamAssassin, pour identifier et archiver le courrier indésirable pour les utilisateurs. Veuillez consulter la Section 13.4.2.6, « Filtres du courrier indésirable » pour obtenir des informations supplémentaires sur l'utilisation de SpamAssassin.
13.3.2.6. Utiliser Sendmail avec LDAP
Utiliser
LDAP
est une manière rapide et puissante de trouver des informations spécifiques sur un utilisateur particulier dans un groupe de grande taille. Par exemple, un serveur LDAP
peut être utilisé pour rechercher une adresse électronique particulière dans un annuaire d'entreprise commun en utilisant le nom de famille de l'utilisateur. Dans ce type d'implémentation, LDAP
est relativement différent de Sendmail, avec LDAP
stockant les informations hiérarchiques des utilisateurs et Sendmail ne reçevant que le résultat des requêtes LDAP
dans des messages électroniques pré-adressés.
Cependant, Sendmail prend en charge une intégration bien plus importante avec
LDAP
, avec laquelle LDAP
est utilisé pour remplacer des fichiers maintenus séparément, comme /etc/aliases
et /etc/mail/virtusertables
, sur différents serveurs de courrier fonctionnant ensemble pour prendre en charge une organisation de niveau moyen à niveau entreprise. Autrement dit, LDAP
fait une abtraction du niveau de routage du courrier de Sendmail et de ses fichiers de configuration séparés sur un cluster LDAP
puissant dont de nombreuses différentes applications peuvent tirer profit.
La version actuelle de Sendmail contient la prise en charge de
LDAP
. Pour étendre le serveur Sendmail utilisant LDAP
, commencez par exécuter un serveur LDAP
correctement configuré, tel que OpenLDAP. Puis modifiez /etc/mail/sendmail.mc
de manière à inclure ceci :
LDAPROUTE_DOMAIN('yourdomain.com')dnl FEATURE('ldap_routing')dnl
Note
Ceci est uniquement destiné à une configuration très basique de Sendmail avec
LDAP
. La configuration peut être largement différente en fonction de l'implémentation de LDAP
, particulièrement lors de la configuration de plusieurs machines Sendmail pour utiliser un serveur LDAP
commun.
Veuillez consulter
/usr/share/sendmail-cf/README
pour des instructions et exemples de configuration du routage LDAP
.
Ensuite, veuillez recréer le fichier
/etc/mail/sendmail.cf
en exécutant le macro processeur m4
et redémarrez Sendmail. Veuillez consulter la Section 13.3.2.3, « Changements communs de la configuration Sendmail » pour obtenir des instructions.
Pour plus d'informations sur
LDAP
, voir OpenLDAP dans le guide System-Level Authentication Guide.
13.3.3. Fetchmail
Fetchmail est un MTA qui récupère le courrier électronique se trouvant sur des serveurs distants et le remet au MTA local. De nombreux utilisateurs apprécient la capacité de séparer le processus de téléchargement de leurs messages se trouvant sur un serveur distant du processus de lecture et d'organisation du courrier électronique dans un MUA. Conçu à l'origine pour répondre aux besoins des utilisateurs accédant à internet par ligne téléphonique commutée, Fetchmail se connecte et télécharge rapidement tous les messages électroniques sur le fichier spool du courrier en utilisant un certain nombre de protocoles, y compris
POP3
et IMAP
. Il peut également transférer les messages électroniques sur un serveur SMTP
si nécessaire.
Note
Pour utiliser Fetchmail, veuillez vous assurer que le paquet fetchmail est installé sur votre système en exécutant la commande suivante en tant qu'utilisateur
root
:
~]# yum install fetchmail
Pour obtenir davantage d'informations sur l'installation de paquets avec Yum, veuillez consulter la Section 8.2.4, « Installation de paquets ».
Fetchmail est configuré pour chaque utilisateur à travers l'utilisation d'un fichier
.fetchmailrc
dams le répertoire personnel de l'utilisateur. S'il n'existe pas déjà, veuillez créer le fichier .fetchmailrc
dans votre répertoire personnel
En utilisant les préférences dans le fichier
.fetchmailrc
, Fetchmail vérifie le courrier sur un serveur distant et le télécharge. Il le livre ensuite sur le port 25
de la machine locale, en utilisant le MTA local pour placer le courrier dans le fichier spool du bon utilisateur. Si Procmail est disponible, il est lancé pour filtrer le courrier électronique et le placer dans une boîte aux lettres afin qu'il soit lu par un MUA.
13.3.3.1. Options de Configuration Fetchmail
Malgré qu'il soit possible de passer toutes les options nécessaires sur la ligne de commande pour vérifier le courrier électronique sur un serveur distant pendant l'exécution de Fetchmail, l'utilisation d'un fichier
.fetchmailrc
est bien plus facile. Placez toutes les options de configuration souhaitées dans le fichier .fetchmailrc
afin qu'elles soient utilisées chaque fois que la commande fetchmail
est exécutée. Il est possible d'outrepasser ces commandes pendant l'exécution de Fetchmail en spécifiant cette option sur la ligne de commande.
Le fichier
.fetchmailrc
d'un utilisateur contient trois classes d'option de configuration :
- options globales — celles-ci donnent à Fetchmail des instructions contrôlant l'opération du programme ou fournissent des paramètres pour chaque connexion vérifiant le courrrier électronique.
- options du serveur — elles spécifient les informations nécessaires sur le serveur en cours d'interrogation, comme le nom d'hôte, ainsi que les préférences de serveurs de courrier électronique particuliers, comme le port à vérifier ou le nombre de secondes à attendre avant expiration. Ces options affectent tous les utilisateurs utilisant ce serveur.
- options d'utilisateur — contient des informations nécessaires à l'authentification et à la vérification du courrier électronique, telles que le nom d'utilisateur et le mot de passe, en utilisant un serveur de courrier électronique spécifié.
Des options globales apparaissent en haut du fichier
.fetchmailrc
, suivies par une ou plusieurs options de serveur, qui désigne chacune un différent serveur de courrier électronique que Fetchmail devrait vérifier. Les options d'utilisateur suivent les options de serveur pour chaque compte utilisateur vérifiant ce serveur de courrier électronique. Tout comme les options de serveur, des options de multiples utilisateurs peuvent être spécifiées pour une utilisation avec un serveur particulier, ainsi que pour vérifier de multiples comptes utilisateur sur le même serveur.
Des options de serveur sont activées dans le fichier
.fetchmailrc
par l'utilisation d'un verbe spéciale option, poll
(interroger) ou skip
(ignorer), qui précède les informations serveur. L'action poll
(interroger) ordonne à Fetchmail d'utiliser cette option de serveur lors de son exécution. Elle vérifie le courrier électronique en utilisant les options spécifiées par l'utilisateur. Cependant, toute option de serveur située après une action skip
(ignorer), ne sera pas vérifiée, à moins que le nom d'hôte de ce serveur soit spécifié lorsque Fetchmail est invoqué. L'option skip
est utile pendant des tests de configuration dans le fichier .fetchmailrc
car elle ne vérifie que les serveurs ignorés si invoquée, et n'affecte aucune configuration fonctionnant actuellement.
Ci-dessous figure un exemple de fichier
.fetchmailrc
:
set postmaster "user1" set bouncemail poll pop.domain.com proto pop3 user 'user1' there with password 'secret' is user1 here poll mail.domain2.com user 'user5' there with password 'secret2' is user1 here user 'user7' there with password 'secret3' is user1 here
Dans cet exemple, les options globales indiquent que l'utilisateur reçoit du courrier électronique en dernier recours (option
postmaster
) et toutes les erreurs de courrier électronique sont envoyées au «postmaster » au lieu de l'envoyeur (option bouncemail
). L'action set
transmet à Fetchmail que cette ligne contient une option globale. Puis, deux serveurs de courrier sont spécifiés, l'un est paramétré pour vérifier en utilisant POP3
, et l'autre pour tenter divers protocoles dans le but d'en trouver un qui fonctionne. Deux utilisateurs sont vérifés en utilisant la seconde option du serveur, mais tous le courrier trouvé pour un utilisateur quelconque est envoyé dans le spool du courrier de l'utilisateur user1
. Ceci permet à de multiples boîtes aux lettres d'être vérifiées sur de multiples serveurs, tout en apparaissant comme n'étant qu'une seule boîte aux lettres MUA. Les informations spécifiques de chaque utilisateur commencent par l'action user
.
Note
Les utilisateurs ne sont pas obligés de placer leur mot de passe dans le fichier
.fetchmailrc
. L'omission de la section with password 'password'
cause à Fetchmail de demander un mot de passe lorsqu'il est lancé.
Fetchmail possède de nombreuses options globales, de serveur, et locales. Nombre de ces options sont rarement utilisées ou ne s'appliquent qu'à des situations très spécifiques. La page man
fetchmail
explique chaque option en détail, mais les plus communes sont répertoriées dans les trois sections suivantes.
13.3.3.2. Options globales
Chaque option globale doit être placée sur une seule ligne après une action
set
.
daemon seconds
— spécifie le mode du démon, où Fetchmail reste en arrière-plan. Veuillez remplacer seconds par le nombre de secondes pendant lesquelles Fetchmail doit patienter avant d'interroger le serveur.postmaster
— Spécifie un utilisateur local à qui envoyer le courrier en cas de problème de remise du courrier électronique.syslog
— Spécifie le fichier journal pour les messages d'erreur et de statut. Par défaut, ce fichier est/var/log/maillog
.
13.3.3.3. Options de serveur
Les options de serveur doivent être placées sur leur propre ligne dans
.fetchmailrc
, après une action poll
ou skip
.
auth auth-type
— remplace auth-type par le type d'authentification à utiliser. Par défaut, l'authentificationpassword
est utilisée, mais certains protocoles prennent en charge d'autres types d'authentification, y compriskerberos_v5
,kerberos_v4
, etssh
. Si le type d'authentificationany
est utilisé, Fetchmail tentera d'abord des méthodes qui ne requièrent pas de mot de passe, puis des méthodes qui masquent le mot de passe, et tentera finalement d'envoyer le mot de passe non chiffré pour s'authentifier sur le serveur.interval number
— interroge le serveur spécifié toutes lesnumber
fois qu'il vérifie le courrier électronique sur tous les serveurs configurés. Cette option est généralement utilisée pour les serveurs de courrier sur lesquels l'utilisateur reçoit rarement de messages.port port-number
— remplace port-number par le numéro du port. Cette valeur remplace le numéro de port par défaut pour le protocole spécifié.proto protocol
— remplace protocol par le protocole à utiliser, commepop3
ouimap
, pendant les vérifications de messages sur le serveurtimeout seconds
— remplace seconds par le nombre de secondes d'inactivité du serveur après lesquelles Fetchmail abandonnera une tentative de connexion. Si cette valeur n'est pas définie, la valeur par défaut de300
sera utilisée.
13.3.3.4. Options d'utilisateur
Les options d'utilisateur peuvent être placées sur leurs propres lignes sous une option de serveur ou sur la même ligne que l'option de serveur. Dans les deux cas, les options définies doivent suivre l'option
user
(définie ci-dessous).
fetchall
— ordonne à Fetchmail de télécharger tous les messages de la file, y compris les messages qui ont déjà été lus. Par défaut, Fetchmail ne télécharge que les nouveaux messages.fetchlimit number
— remplace number par le nombre de messages à récupérer avant d'arrêter.flush
— supprime tous les messages déjà vus qui se trouvent dans la file avant de récupérer les nouveaux messages.limit max-number-bytes
— remplace max-number-bytes par la taille de message maximale autorisée en octets lorsque les messages sont récupérés par Fetchmail. Cette option est utile avec les liens réseau lents, lorsqu'un message de grande taille prend trop de temps à télécharger.password 'password'
— remplace password par le mot de passe de l'utilisateur.preconnect "command"
— remplace command par la commande à exécuter avant de récupérer les messages pour l'utilisateur.postconnect "command"
— remplace command par la commande à exécuter après avoir récupéré les messages pour l'utilisateur.ssl
— active l'encodage. Au moment de la rédaction de cet ouvrage, l'action par défaut est d'utiliser soitSSL2
,SSL3
,SSL23
,TLS1
,TLS1.1
ouTLS1.2
suivant ce qu'il y a de mieux de disponible. Notez queSSL2
est considéré comme étant obsolète à cause de POODLE: Vulnérabilité SSLv3 (CVE-2014-3566),SSLv3
ne doit pas être utilisé. Cependant, il n'est pas utile de forcer l'utilisation de TLS1 ou version plus récente, donc, veillez bien à ce que le serveur de messagerie connecté soit configuré de façon à ne pas utiliserSSLv2
ouSSLv3
. Utiliserstunnel
quand le serveur ne peut pas être configuré à ne pas utiliserSSLv2
ouSSLv3
.sslproto
— définit les protocoles SSL ou TLS autorisés. Les valeurs possibles sontSSL2
,SSL3
,SSL23
etTLS1
. La valeur par défaut, sisslproto
est omis, désactivé ou défini à une valeur non valide, estSSL23
. L’action par défaut consiste à utiliser soitSSLv2
,SSLv3
,TLSv1
,TLS1.1
ouTLS1.2
. Notez que la définition de toute autre valeur pour SSL ou TLS désactive tous les autres protocoles. À cause de POODLE:ulnérabilité SSLv3 (CVE-2014-3566), il est recommandé d’omettre cette option, ou de la définir àSSLv23
, et de configurer le serveur de messagerie correspondant à ne pas utiliserSSLv2
etSSLv3
. Utilisezstunnel
où le serveur ne peut pas être configuré à ne pas utiliserSSLv2
etSSLv3
.user "username"
— Veuillez remplacer username par le nom d'utilisateur utilisé par Fetchmail pour récupérer les messages. Cette option doit précéder toutes les autres options d'utilisateur.
13.3.3.5. Options de commande Fetchmail
La plupart des options Fetchmail utilisées sur la ligne de commande lors de l'exécution de la commande
fetchmail
reflètent les options de configuration .fetchmailrc
. Ainsi, Fetchmail peut être utilisé avec ou sans fichier de configuration. Ces options ne sont pas utilisées sur la ligne de commande par la plupart des utilisateurs car il est plus facile de les laisser dans le fichier .fetchmailrc
.
Parfois, il est souhaitable d'exécuter la commande
fetchmail
avec d'autres options dans un but particulier. Il est possible d'exécuter des options de commande pour outrepasser de manière temporaire un paramètre .fetchmailrc
qui causerait une erreur, comme toute option spécifiée sur la ligne de commande outrepasse les options du fichier de configuration.
13.3.3.6. Options de débogage ou à caractère informatif
Certaines options utilisées après la commande
fetchmail
peuvent fournir d'importantes informations.
--configdump
— affiche toutes les options possibles en se basant sur les informations de.fetchmailrc
et sur les valeurs par défaut de Fetchmail. Aucun courrier n'est récupéré pour un utilisateur lorsque cette option est utilisée.-s
— exécute Fetchmail en mode silence, empêchant tout message autre que des messages d'erreur d'apparaître après la commandefetchmail
.-v
— exécute Fetchmail en mode détaillé, affichant toutes les communications entre Fetchmail et les serveurs de courrier distants.-V
— affiche des informations détaillées sur la version, répertorie ses options globales, et affiche les paramètres à utiliser avec chaque utilisateur, y compris le protocole du courrier et la méthode d'authentification. Aucun courrier n'est récupéré pour un utilisateur lorsque cette option est utilisée.
13.3.3.7. Options spéciales
Ces options sont parfois utiles pour remplacer les valeurs par défaut souvent trouvées dans le fichier
.fetchmailrc
.
-a
— Fetchmail télécharge tous les messages du serveur de courrier distant, qu'ils soient nouveaux ou qu'ils aient déjà été vus. Par défaut, Fetchmail télécharge uniquement les nouveaux messages.-k
— Fetchmail laisse les messages sur le serveur de courrier distant après les avoir téléchargés. Cette option outrepasse le comportement par défaut qui consiste à supprimer les messages après les avoir téléchargés.-l max-number-bytes
— Fetchmail ne télécharge aucun message au-delà d'une taille particulière et les laisse sur le serveur de courrier distant.--quit
— quitte le processus du démon Fetchmail.
Davantage de commandes et d'options
.fetchmailrc
se trouvent sur la page man de fetchmail
.
13.3.4. Configuration de l'agent de transport de courrier (« Mail Transport Agent », ou MTA)
Un MTA (« Mail Transport Agent ») est essentiel pour envoyer un courrier électronique. Un MUA (« Mail User Agent »), tel que Evolution ou Mutt, est utilisé pour lire et écrire des courriers électroniques. Lorsqu'un utilisateur envoie un courrier à partir d'un MUA, le message est remis au MTA, qui envoie le message à travers une série de MTA jusqu'à ce qu'il atteigne sa destination.
Même si un utilisateur ne planifie pas d'envoyer de courrier à partir du système, certaines tâches automatisées ou programmes du système peuvent devoir utiliser la commande
mail
pour envoyer du courrier contenant des messages de journalisation à l'utilisateur root
du système local.
Red Hat Enterprise Linux 7 fournit deux MTA : Postfix et Sendmail. Si les deux sont installés, Postfix est le MTA par défaut. Veuillez remarquer que Sendmail est déconseillé dans Red Hat Enterprise Linux 7.