diff --git a/fr_FR.ISO8859-1/books/handbook/mail/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/mail/chapter.sgml index d4f9d42b65..41da034d36 100644 --- a/fr_FR.ISO8859-1/books/handbook/mail/chapter.sgml +++ b/fr_FR.ISO8859-1/books/handbook/mail/chapter.sgml @@ -1,1737 +1,1832 @@ Bill Lloyd Contribution originale de Jim Mock Réécrit par Courrier électronique &trans.a.fonvieille; Synopsis email courrier électronique Le “courrier électronique”, plus connu sous le nom d'email, est une des formes de communication les plus utilisées aujourd'hui. Ce chapitre fournit une introduction sur comment faire fonctionner un serveur de courrier électronique sous FreeBSD. Cependant, cela n'est pas un document de référence, en fait de nombreux éléments importants ont été omis. Pour une couverture plus complète du sujet, le lecteur doit se référer aux nombreux ouvrages excellents listés dans la . Après la lecture de ce chapitre, vous connaîtrez: Quels composants logiciel sont impliqués dans l'envoi et la réception du courrier électronique. Où se trouvent sous FreeBSD les fichiers de configuration de base de sendmail. Comment empêcher les personnes à l'origine de courriers non sollicités (spam) d'utiliser votre serveur de courrier comme relais. Comment installer et configurer un agent de transfert de courrier alternatif sur votre système, en remplacement de sendmail. Comment dépanner les problèmes courants des serveurs de courrier électronique. Comment utiliser le protocole SMTP avec UUCP. Comment utiliser le courrier électronique avec une connexion temporaire. Comment configurer l'authentification SMTP pour une sécurité accrue. Avant de lire ce chapitre, vous devrez: Configurer correctement votre connexion réseau (). Configurer correctement les informations DNS pour votre serveur de courrier (). Savoir comment installer des logiciels tiers (). Utilisation du courrier électronique POP IMAP DNS Il y a cinq éléments majeurs impliqués dans un échange de courrier. Ce sont: le programme utilisateur, le “daemon” serveur de courrier, le serveur DNS, un serveur POP ou IMAP, et bien sûr le le serveur de courrier lui-même . Le programme utilisateur Cela inclut des programmes en ligne de commande comme mutt, pine, elm, et mail, et des programmes graphiques comme balsa, xfmail pour juste en nommer quelques-uns, ou quelque chose de plus sophisticated comme un navigateur WWW. Ces programmes transmettent simplement toutes les transactions concernant le courrier électronique au serveur de courrier local, soit en invoquant un des “daemons” serveurs (Agents de transfert de courrier) disponibles, soit via TCP. Le “daemon” serveur de courrier daemons serveurs de courrier sendmail daemons serveurs de courrier postfix daemons serveurs de courrier qmail daemons serveurs de courrier exim C'est généralement sendmail (par défaut sous FreeBSD) ou un des autres “daemons” serveurs de courrier comme qmail, postfix, ou exim. Il y en a d'autres, mais ces derniers sont les plus largement utilisés. Le serveur a généralement deux fonctions—recevoir et envoyer du courrier. Il ne vous permet pas de vous y connecter par l'intermédiaire de POP ou IMAP pour lire votre courrier. Vous avez besoin d'un “daemon” supplémentaire pour cela. Soyez conscient que certaines vieilles versions de sendmail ont de sérieux problèmes de sécurité, cependant tant que vous utilisez une version actuelle vous ne devriez pas avoir de problème. Comme toujours, c'est une bonne idée de maintenir à jour les logiciels que vous utilisez. Courrier électronique et DNS Le système de noms de domaines (DNS) et son “daemon” named jouent un rôle important dans la transmission du courrier électronique. Afin de délivrer du courrier de votre site à un autre, le serveur recherchera le site dans la base de données DNS pour déterminer la machine de destination qui recevra le courrier. Cela fonctionne de la même manière lorsque l'on vous envoie du courrier. Le DNS contient la base de données qui fait correspondre nom de machine et adresse IP, et nom de machine et serveur de courrier. L'adresse IP est définie par un enregistrement A. L'enregistrement MX (Mail eXchanger) définit le serveur qui recevra votre courrier. Si vous n'avez pas d'enregistrement MX associé à votre machine, le courrier sera délivré directement à votre machine. Réception de courrier courrier électronique réception La réception du courrier pour votre domaine se fait par le serveur de courrier. Il collectera le courrier qui vous est envoyé et le stockera pour lecture ou récupération. Afin de récupérer le courrier stocké, vous devez vous connecter au serveur de courrier. Cela se fait soit en utilisant POP soit IMAP. Si vous voulez lire directement le courrier sur le serveur de courrier, alors un serveur POP ou IMAP n'est pas nécessaire. POP IMAP Si vous voulez faire tourner un serveur POP ou IMAP, vous devez faire deux choses: Récupérez un “daemon” POP ou IMAP depuis le catalogue des logiciels portés et installez-le sur votre système. Modifiez /etc/inetd.conf pour charger le serveur POP ou IMAP. Le serveur de courrier serveur de courrier Le serveur de courrier est le nom donné au serveur qui est responsable de la transmission et la réception du courrier pour votre machine, et probablement votre réseau. Christopher Shumway Contribution de Configuration de <application>sendmail</application> sendmail &man.sendmail.8; est l'agent de transfert de courrier (Mail Transfert Agent - MTA) par défaut sous FreeBSD. Le rôle de sendmail est d'accepter le courrier en provenance des agents de courrier utilisateur (Mail User Agents - MUA) et de délivrer le courrier aux programmes de gestion du courrier définis dans son fichier de configuration. sendmail peut également accepter les connexions réseau et délivrer le courrier dans des boîtes aux lettres locales ou le transmettre à un autre programme. sendmail utilise les fichiers de configuration suivants: /etc/mail/access /etc/mail/aliases /etc/mail/local-host-names /etc/mail/mailer.conf /etc/mail/mailertable /etc/mail/sendmail.cf /etc/mail/virtusertable Fichier Fonction /etc/mail/access Fichier de la base de données d'accès de sendmail /etc/mail/aliases Alias de boîte aux lettres /etc/mail/local-host-names Liste des machines pour lesquelles sendmail accepte du courrier /etc/mail/mailer.conf Configuration du programme de gestion du courrier /etc/mail/mailertable Table de livraison du courrier /etc/mail/sendmail.cf Fichier de configuration principal de sendmail /etc/mail/virtusertable Table des domaines et utilisateurs virtuels <filename>/etc/mail/access</filename> La base de données d'accès définit quelle(s) machine(s) ou adresses IP ont accès au serveur de courrier local et quel type d'accès ils ont. Les machines peuvent être listées avec , , ou simplement transférées à la routine de gestion des erreurs sendmail avec une erreur donnée. Les machines qui sont listées avec , qui est le comportement par défaut, sont autorisées à envoyer du courrier à cette machinee dès que la destination finale du courrier est la machine locale. Les machines listées avec se verront rejeter pour toute connexion au serveur. Les machines présentes avec l'option sont autorisées à envoyer du courrier à n'importe quelle destination par l'intermédiaire de ce serveur de courrier. Configuration de la base de données d'accès de <application>sendmail</application> <programlisting>cyberspammer.com 550 We don't accept mail from spammers FREE.STEALTH.MAILER@ 550 We don't accept mail from spammers another.source.of.spam REJECT okay.cyberspammer.com OK 128.32 RELAY</programlisting> </example> <para>Dans cet exemple nous avons cinq entrées. Les émetteurs de courrier qui correspondent à la partie gauche de la table sont affectés par l'action donnée sur la partie droite de la table. Les deux premiers exemples donnent un code d'erreur à la routine de gestion d'erreur de <application>sendmail</application>. Le message est affiché sur la machine distante quand un courrier électronique correspond à la partie gauche de la table. L'entrée suivante rejette le courrier en provenance d'une machine précise de l'Internet, <hostid>another.source.of.spam</hostid>. L'entrée suivante accepte les connexions à partir de la machine <hostid role="fqdn">okay.cyberspammer.com</hostid>, qui est plus précis que le <hostid role="domainname">cyberspammer.com</hostid> de la ligne précédente. Les correspondances plus spécifiques priment sur les moins précises. La dernière entrée autorise le relais du courrier électronique en provenance de machines avec une adresse IP qui commence par <hostid>128.32</hostid>. Ces machines seront en mesure d'envoyer du courrier destiné à d'autres serveurs de courrier par l'intermédiaire de ce serveur de courrier.</para> <para>Quand ce fichier est mis à jour, vous devez exécuter la commande <command>make</command> dans <filename>/etc/mail/</filename> pour mettre à jour la base de données.</para> </sect2> <sect2> <title><filename>/etc/mail/aliases</filename> La base de données d'alias contient une liste de boîtes aux lettres virtuelles dont le contenu sera transmis à d'autres utilisateurs, fichiers, programmes ou d'autres alias. Voici quelques exemples qui peuvent être utilisés dans /etc/mail/aliases: Exemple de base de données d'alias root: localuser ftp-bugs: joe,eric,paul bit.bucket: /dev/null procmail: "|/usr/local/bin/procmail" Le format du fichier est simple; le nom de la boîte aux lettres à gauche et la cible sur la droite. Le premier exemple transfère la boîte aux lettres root vers la boîte aux lettres localuser, qui est ensuite recherchée dans la base de données d'alias. Si aucune correspondance n'est trouvée alors le message est délivré à l'utilisateur locale localuser. L'exemple suivant montre une liste de correspondance. Un courrier envoyé à la boîte aux lettres ftp-bugs sera délivré aux trois boites locales joe, eric, et paul. Notez qu'une boîte aux lettres distante comme user@exemple.com/procmail pourra être spécifiée. L'exemple suivant montre comment transférer le courrier dans un fichier, dans notre cas /dev/null. Le dernier exemple montre l'envoi du courrier à un programme, dans le cas présent le message est écrit sur l'entrée standard de /usr/local/bin/procmail par l'intermédiaire d'un tube &unix;. Quand ce fichier est mis à jour, vous devez exécuter la commande make dans /etc/mail/ pour mettre à jour la base de données. <filename>/etc/mail/local-host-names</filename> C'est la liste des machines pour lesquelles &man.sendmail.8; accepte du courrier comme s'il était destiné à la machine locale. Placez-y tous les domaines ou machines pour lesquels sendmail doit recevoir du courrier. Par exemple, si le serveur de courrier devait accepter du courrier pour le domaine exemple.com et la machine mail.exemple.com, sont local-host-names ressemblera à quelque chose comme ceci: exemple.com mail.exemple.com Quand ce fichier est mis à jour, &man.sendmail.8; doit être relancé pour lire les changements. <filename>/etc/mail/sendmail.cf</filename> Fichier principal de configuration de sendmail, sendmail.cf contrôle le comportement général de sendmail, y compris tout depuis la réécriture des adresses de courrier jusqu'à l'envoi de message de rejet aux serveurs de courrier distants. Naturellement, avec tant de différentes activités, ce fichier de configuration est relativement complexe et son étude détaillée n'est pas le but de cette section. Heureusement, ce fichier a rarement besoin d'être modifié pour les serveurs de courrier standards. Le fichier de configuration principal de sendmail peut être créé à partir de macros &man.m4.1; qui définissent les fonctions et le comportement de sendmail. Veuillez consulter /usr/src/contrib/sendmail/cf/README pour plus de détails. Quand des modifications à ce fichier sont apportées, sendmail doit être redémarré pour que les changements prennent effet. <filename>/etc/mail/virtusertable</filename> La table virtusertable fait correspondre les adresses de courrier électronique pour des domaines virtuels et les boîtes aux lettres avec des boîtes aux lettres réelles. Ces boîtes aux lettres peuvent être locales, distantes, des alias définis dans /etc/mail/aliases ou des fichiers. Exemple de correspondance de domaine virtuel de courrier root@exemple.com root postmaster@exemple.com postmaster@noc.exemple.net @exemple.com joe Dans l'exemple ci-dessus, nous avons une correspondance pour un domaine exemple.com. Ce fichier est traité jusqu'à trouver la première correspondance. Le premier élément fait correspondre root@exemple.com à la boîte aux lettres root locale. L'entrée suivante fait correspondre postmaster@exemple.com à la boîte aux lettres postmaster sur la machine noc.exemple.net. Et enfin, si un courrier en provenance de exemple.com n'a pas trouvé de correspondance, il correspondra à la dernière ligne, qui regira tous les autres messages adressés à quelqu'un du domaine exemple.com. La correspondance sera la boîte aux lettres locale joe. Andrew Boothman Ecrit par Gregory Neil Shapiro Information provenant de courriers électroniques écrit par Changer votre agent de transfert de courrier courrier électronique changer d'agent de transfert de courrier Comme mentionné précédemment, FreeBSD est fournit avec sendmail comme agent de transfert du courrier (MTA - Mail Transfert Agent). Il est donc par défaut en charge de votre courrier sortant et entrant. Cependant, pour une variété de raison, certains administrateurs système désirent changer le MTA de leur système. Ces raisons vont de la simple envie d'essayer un autre agent au besoin d'une fonction ou ensemble spécifique qui dépend d'un autre gestionnaire de courrier. Heureusement, quelle qu'en soit la raison, FreeBSD rend le changement aisé. Installer un nouveau MTA Vous avez un vaste choix d'agent disponible. Un bon point de départ est le catalogue des logiciels portés de FreeBSD où vous pourrez en trouver un grand nombre. Bien évidemment vous êtes libres d'utiliser n'importe quel agent de n'importe quelle origine, dès que vous pouvez le faire fonctionner sous FreeBSD. Commencez par installer votre nouvel agent. Une fois ce dernier installé, il vous donne une chance de décider s'il remplit vraiment vos besoins, et vous donne l'opportunité de configurer votre nouveau logiciel avant de remplacer sendmail. Quand vous faites cela, vous devez être sûr que l'installation du nouveau logiciel ne tentera pas de remplacer des binaires du système comme /usr/bin/sendmail. Sinon, votre nouveau logiciel sera mis en service avant d'avoir pu le configurer. Veuillez vous référer à la documentation de l'agent choisi pour de l'information sur comment configurer le logiciel que vous avez choisi. Désactiver <application>sendmail</application> La procédure utilisée pour lancer sendmail a changé de façon significative entre la 4.5-RELEASE et la 4.6-RELEASE. Par conséquent, la procédure utilisée pour la désactiver est légèrement différente. FreeBSD 4.5-STABLE d'avant le 2002/4/4 et plus ancienne (y compris 4.5-RELEASE et précédentes) Ajoutez: sendmail_enable="NO" dans /etc/rc.conf. Cela désactivera le service de courrier entrant de sendmail mais si /etc/mail/mailer.conf (voir plus bas) n'est pas modifié, sendmail sera toujours utilisé pour envoyer du courrier électronique. FreeBSD 4.5-STABLE d'après le 2002/4/4 (y compris 4.6-RELEASE et suivantes) Afin de complètement désactiver sendmail vous devez utiliser sendmail_enable="NONE" dans /etc/rc.conf. Si vous désactivez le service d'envoi de courrier de sendmail de cette manière, il est important que vous le remplaciez par un système de courrier alternatif fonctionnant parfaitement. Si vous choisissez de ne pas le faire, des fonctions du système comme &man.periodic.8; ne seront pas en mesure de délivrer leur résultat par courrier électronique comme elles s'attendent normalement à le faire. De nombreux composants de votre système s'attendent à avoir un système compatible à sendmail en fonctionnement. Si des applications continuent à utiliser les binaires de sendmail pour essayer d'envoyer du courrier électronique après la désactivation, le courrier pourra aller dans une file d'attente inactive, et pourra n'être jamais livré. Si vous voulez uniquement désactiver le service de réception de courrier de sendmail vous devriez fixer sendmail_enable="NO" dans /etc/rc.conf. Plus d'information sur les options de démarrage de sendmail est disponible à partir de la page de manuel de &man.rc.sendmail.8;. Lancement de votre nouvel agent au démarrage Vous pourrez avoir le choix entre deux méthodes pour lancer votre nouvel agent au démarrage, encore une fois en fonction de la version de FreeBSD dont vous disposez. FreeBSD 4.5-STABLE d'avant le 2002/4/11 (y compris 4.5-RELEASE et précédentes) Ajouter une procédure dans /usr/local/etc/rc.d/ qui se termine en .sh et qui est exécutable par root. La procédure devrait accepter les paramètres start et stop. Au moment du démarrage les procédures système exécuteront la commande /usr/local/etc/rc.d/supermailer.sh start que vous pouvez également utiliser pour démarrer le serveur. Au moment de l'arrêt du système, les procédures système utiliseront l'option stop en exécutant la commande /usr/local/etc/rc.d/supermailer.sh stop que vous pouvez également utiliser manuellement pour arrêter le serveur quand le système est en fonctionnement. FreeBSD 4.5-STABLE d'après le 2002/4/11 (y compris 4.6-RELEASE et suivantes) Avec les versions suivantes de FreeBSD, vous pouvez utiliser la méthode ci-dessus ou fixer mta_start_script="nomfichier" dans /etc/rc.conf, où nomfichier est le nom d'une procédure que vous voulez exécuter au démarrage pour lancer votre agent. Remplacer <application>sendmail</application> comme gestionnaire du courrier du système par défaut Le programme sendmail est tellement omniprésent comme logiciel standard sur les systèmes &unix; que certains programmes supposent qu'il est tout simplement déjà installé et configuré. Pour cette raison, de nombreux agents alternatifs fournissent leur propre implémentation compatible avec l'interface en ligne de commande de sendmail; cela facilite leur utilisation comme remplaçant pour sendmail. Donc, si vous utilisez un programme alternatif, vous devrez vérifier que le logiciel essayant d'exécuter les binaires standards de sendmail comme /usr/bin/sendmail exécute réellement l'agent que vous avez choisi à la place. Heureusement, FreeBSD fournit un système appelé &man.mailwrapper.8; qui remplit ce travail pour vous. Quand sendmail fonctionne tel qu'il a été installé, vous trouverez quelque chose comme ce qui suit dans /etc/mail/mailer.conf: sendmail /usr/libexec/sendmail/sendmail send-mail /usr/libexec/sendmail/sendmail mailq /usr/libexec/sendmail/sendmail newaliases /usr/libexec/sendmail/sendmail hoststat /usr/libexec/sendmail/sendmail purgestat /usr/libexec/sendmail/sendmail Cela signifie que lorsque l'une des commandes courantes (comme sendmail lui-même) est lancée, le système invoque en fait une copie de “mailwrapper” appelée sendmail, qui lit mailer.conf et exécute /usr/libexec/sendmail/sendmail à la place. Ce système rend aisé le changement des binaires qui sont réellement exécutés quand les fonctions de sendmail par défaut sont invoquées. Donc si vous avez voulu que /usr/local/supermailer/bin/sendmail-compat soit lancé en place de sendmail, vous pourrez modifier /etc/mail/mailer.conf de cette façon: sendmail /usr/local/supermailer/bin/sendmail-compat send-mail /usr/local/supermailer/bin/sendmail-compat mailq /usr/local/supermailer/bin/mailq-compat newaliases /usr/local/supermailer/bin/newaliases-compat hoststat /usr/local/supermailer/bin/hoststat-compat purgestat /usr/local/supermailer/bin/purgestat-compat Pour en terminer Une fois que vous avez tout configuré de la façon dont vous le désirez, vous devriez soit tuer les processus de sendmail dont vous n'avez plus besoin et lancer les processus appartenant à votre nouveau logiciel, ou tout simplement redémarrer. Le redémarrage vous donnera l'opportunité de vous assurer que vous avez correctement configuré votre système pour le lancement automatique de votre nouvel agent au démarrage. Dépannage courrier électronique dépannage Pourquoi faut-il que j'utilise le FQDN (“Fully Qualified Domain Name” - nom complet de machine) pour les machines de mon site? Vous vous rendrez probablement compte que la machine est en fait dans un domaine différent; par exemple, si vous êtes dans le domaine foo.bar.edu et que vous voulez atteindre la machine mumble du domaine bar.edu, vous devrez utiliser son nom de machine complet, mumble.bar.edu, au lieu de juste mumble. BIND C'était traditionnellement autorisé par les résolveurs BIND BSD. Néanmoins, la version de BIND qui est maintenant livrée avec FreeBSD ne sait pas compléter les noms de machines abrégés autrement qu'avec le nom de votre domaine. Donc le nom non qualifié mumble doit correspondre à mumble.foo.bar.edu, sans quoi il sera recherché dans le domaine racine. Cela diffère du comportement précédent, où la recherche se prolongeait à mumble.bar.edu, puis mumble.edu. Consultez la RFC 1535 pour savoir pourquoi cela était considéré comme une mauvaise pratique, voire même un trou de sécurité. Comme solution, vous pouvez mettre la ligne: search foo.bar.edu bar.edu à la place de: domain foo.bar.edu dans votre fichier /etc/resolv.conf. Cependant, assurez-vous que la recherche ne franchit pas la “limite entre l'administration locale et publique”, selon l'expression de la RFC 1535. sendmail affiche le message mail loops back to myself La réponse donnée dans la FAQ de sendmail est la suivante: J'ai des messages “Local configuration error”, du style: 553 relay.domain.net config error: mail loops back to myself 554 <user@domain.net>... Local configuration error Comment puis-je résoudre ce problème? Vous avez demandé que le courrier pour un domaine (e.g., domain.net) soit transmis à une machine donnée (dans ce cas précis, relay.domain.net) en utilisant un enregistrement MX, mais la machine relais ne se connaît pas elle-même comme domain.net. Ajoutez domain.net à /etc/mail/local-host-names (si vous utilisez FEATURE(use_cw_file)) ou ajoutez “Cw domain.net” à /etc/mail/sendmail.cf. La FAQ de sendmail peut être trouvée à l'adresse et sa lecture est recommandée si vous voulez “bidouiller” votre configuration du courrier électronique. PPP Comment puis-je faire tourner un serveur de courrier électronique avec une connexion téléphonique PPP Vous voulez connecter une machine FreeBSD du réseau local à l'Internet. Cette machine servira de passerelle de courrier électronique pour le réseau local. La connexion PPP n'est pas dédiée. UUCP Il y a au moins deux façon de faire. L'une d'elle est d'utiliser UUCP. L'autre méthode étant d'obtenir un serveur Internet constamment connecté pour qu'il vous fournisse les services MX pour votre domaine. Par exemple, si le domaine de votre compagnie est exemple.com et votre fournisseur d'accès a configuré exemple.net pour fournir un MX secondaire pour votre domaine: exemple.com. MX 10 exemple.com. MX 20 exemple.net. Une seule machine devrait être spécifiée comme destinataire final (ajoutez Cw exemple.com au fichier /etc/mail/sendmail.cf de exemple.com). Quand le sendmail expéditeur tente de vous délivrer du courrier, il essaiera de se connecter à votre serveur (exemple.com) via votre liaison par modem. Ce qui échouera très probablement par dépassement de délai puisque vous n'êtes pas en ligne. Le programme sendmail enverra automatiquement le courrier au site MX secondaire, i.e. votre fournisseur d'accès (exemple.net). Le site MX secondaire essayera périodiquement de se connecter à votre machine pour expédier le courrier au site MX primaire (exemple.com). Vous pourrez vouloir utiliser quelque chose comme ceci comme procédure de connexion: #!/bin/sh # Mettez-moi dans /usr/local/bin/pppmyisp ( sleep 60 ; /usr/sbin/sendmail -q ) & /usr/sbin/ppp -direct pppmyisp Si vous avez l'intention de définir une procédure de connexion particulière pour un utilisateur, vous pourrez utiliser sendmail -qRexemple.com à la place de la procédure ci-dessus. Cela forcera le traitement immédiat de tout le courrier dans votre file d'attente pour exemple.com. On peut encore affiner la configuration comme suit: Message emprunté à la &a.isp;. > Nous fournissons un MX secondaire à un client. Le client se connecte > à notre service automatiquement plusieurs fois par jour pour acheminer > le courrier sur son MX primaire (nous n'appelons pas son site lorsque > du courrier pour ses domaines arrive). Notre sendmail envoie le courrier de la > file d'attente toutes les demi-heures. Pour l'instant, il doit rester > une demi-heure en ligne pour être sûr que tout le courrier soit > arrivé au MX primaire. > > Y-a-t-il une commande qui permette de dire à sendmail d'envoyer > sur-le-champ tout le courrier? L'utilisateur n'a évidemment pas > les droits super-utilisateur sur la machine. Dans la section “privacy flags” (indicateurs de confidentialité) de sendmail.cf, il y a la définition Opgoaway,restrictqrun Supprimer restrictqrun permet à d'autres utilisateurs que le super-utilisateur de lancer le traitement de la file d'attente. Vous pouvez aussi redéfinir les MXs. Nous sommes le premier MX pour les utilisateurs de ce type, et nous avons défini: # Si nous sommes le meilleur MX pour une machine, essayer directement # au lieu d'émettre des messages d'erreur de configuration locale. OwTrue De cette façon, un site distant vous enverra directement le courrier, sans essayer de se connecter chez votre client. Vous le lui transmettez ensuite. Cela ne marche qu'avec les “machines”, votre client doit nommer son serveur de courrier “client.com” aussi bien que “machine.client.com” dans le DNS. Mettez seulement un enregistrement A pour “client.com”. Pourquoi j'obtiens le message d'erreur Relaying Denied à chaque fois que j'envoie du courrier à partir d'autres machines? Dans l'installation par défaut de FreeBSD, sendmail est configuré pour envoyer du courrier uniquement à partir de la machine sur laquelle il tourne. Par exemple, si un serveur POP3 est installé, alors les utilisateurs pourront retirer leur courrier depuis l'école, le travail, ou toute autre machine distante mais ils ne seront toujours pas en mesure d'envoyer du courrier électronique à partir de machines extérieures. Généralement, quelques instants après une tentative, un courrier électronique sera envoyé par le MAILER-DAEMON avec un message 5.7 Relaying Denied. Il y a plusieurs façons d'y remédier. La solution la plus directe est de mettre l'adresse de votre fournisseur d'accès dans un fichier de domaine à relayer /etc/mail/relay-domains. Une façon rapide de le faire serait: &prompt.root; echo "votre.fai.exemple.com" > /etc/mail/relay-domains Après avoir créé ou édité ce fichier vous devez redémarrer sendmail. Cela fonctionne parfaitement si vous êtes l'administrateur d'un serveur et vous ne désirez pas envoyer de courrier localement, ou que vous désiriez utiliser un système ou un client “clic-bouton” sur une autre machine ou un autre FAI. C'est également très utile si vous avez uniquement qu'un ou deux comptes de courrier électronique configurés. S'il y a un grand nombre d'adresses à ajouter, vous pouvez tout simplement ouvrir ce fichier dans votre éditeur de texte favori et ensuite ajouter les domaines, un par ligne: votre.fai.exemple.com autre.fai.exemple.net utilisateurs-fai.exemple.org www.exemple.org Désormais tout courrier envoyé vers votre système, par n'importe quelle machine de cette liste (en supposant que l'utilisateur possède un compte sur votre système), sera accepté. C'est un bon moyen d'autoriser aux utilisateurs d'envoyer du courrier électronique à distance depuis votre système sans autoriser l'utilisation de votre système pour l'envoi de courrier électronique non sollicité (SPAM). Sujets avancés LA fonction suivante couvre des sujets plus avancés comme la configuration du courrier électronique pour l'intégralité de votre domaine. Basic Configuration courrier électronique configuration Sans aucune configuration, vous devrez être en mesure d'envoyer du courrier électronique à des machines extérieures à partir du moment où vous avez configuré /etc/resolv.conf ou que vous avez votre propre serveur de noms. Si vous désirez que le courrier pour votre machine soit délivré au serveur de courrier (e.g., sendmail) sur votre propre machine FreeBSD, il y a deux méthodes: Faites tourner votre propre serveur de noms et possédez votre propre domaine. Par exemple FreeBSD.org Faire délivrer le courrier directement sur votre machine. Cela est possible en délivrant directement le courrier à la machine sur lequel pointe le DNS pour le courrier qui vous est destiné. Par exemple exemple.FreeBSD.org. SMTP Indépendamment de la méthode que vous choisissez, afin d'avoir le courrier délivré directement à votre machine, elle doit avoir une adresse IP statique permanente (et non pas une adresse dynamique, comme avec la plupart des connexions PPP par modem). Si vous êtes derrière un coupe-feu, il doit autoriser le trafic SMTP en votre direction. Si vous voulez recevoir directement le courrier sur votre machine, vous devez être sûrs de l'une de ces deux choses: enregistrement MX Assurez-vous que l'enregistrement MX (le nombre le plus bas) de votre DNS pointe sur l'adresse IP de votre machine. Assurez-vous qu'il n'y a pas d'entrée MX pour votre machine dans votre DNS. Une des deux conditions précédentes vous permettra de recevoir directement le courrier pour votre machine. Essayez: &prompt.root; hostname exemple.FreeBSD.org &prompt.root; host exemple.FreeBSD.org exemple.FreeBSD.org has address 204.216.27.XX Si c'est la réponse que vous obtenez, le courrier adressé à votreindentifiant@exemple.FreeBSD.org arrivera sans problème (en supposant que sendmail fonctionne correctement sur exemple.FreeBSD.org). Si au lieu de cela vous obtenez quelque chose de similaire à ceci: &prompt.root; host exemple.FreeBSD.org exemple.FreeBSD.org has address 204.216.27.XX exemple.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.org Tout le courrier adressé à votre machine (exemple.FreeBSD.org) arrivera sur hub adressé au même utilisateur au lieu d'être directement envoyé à votre machine. L'information précédente est gérée par votre serveur DNS. L'enregistrement du DNS qui contient l'information de routage de courrier est l'entrée MX (Mail eXchange). S'il n'y pas d'enregistrement MX, le courrier sera directement envoyé à la machine en utilisant son adresse IP. Voici ce que fut à un moment donné l'entrée MX pour freefall.FreeBSD.org: freefall MX 30 mail.crl.net freefall MX 40 agora.rdrop.com freefall MX 10 freefall.FreeBSD.org freefall MX 20 who.cdrom.com Comme vous pouvez le voir, freefall avait plusieurs entrées MX. L'entrée MX dont le numéro est le plus bas est la machine qui reçoit directement le courrier si elle est disponible; si elle n'est pas accessible pour diverses raisons, les autres (parfois appelées “MX de secours”) acceptent temporairement les messages, et les transmettent à une machine de numéro plus faible quand elle devient disponible, et par la suite à la machine de numéro le plus bas. Les sites MX alternatifs devraient avoir une connexion Internet séparée de la votre afin d'être les plus utiles. Votre fournisseur d'accès ou tout autre site amical ne devrait pas avoir de problème pour vous fournir ce service. Courrier pour votre domaine Pour configurer un serveur de courrier vous devez faire en sorte que tout le courrier à destination des diverses stations de travail lui soit envoyé. Concrètement, vous voulez “revendiquer” tout courrier pour n'importe quelle machine de votre domaine (dans ce cas *.FreeBSD.org) et le détourner vers votre serveur de courrier de sorte que vos utilisateurs puissent recevoir leur courrier sur le serveur de courrier principal. DNS Pour rendre les choses plus aisées, un compte utilisateur avec le même nom d'utilisateur devrait exister sur les deux machines. Utilisez &man.adduser.8; pour ce faire. Le serveur de courrier que vous utiliserez sera défini comme “mail exchanger” pour chaque station de travail du réseau. Cela est fait dans votre configuration de DNS de cette manière: exemple.FreeBSD.org A 204.216.27.XX ; Station de travail MX 10 hub.FreeBSD.org ; Serveur de courrier Cela redirigera le courrier pour votre station de travail au serveur de courrier quelque soit la machine sur laquelle pointe l'enregistrement A. Le courrier est envoyé sur la machine MX. Vous ne pouvez le faire vous-même que si vous gérez un serveur de noms. Si ce n'est pas le cas, ou que vous ne pouvez avoir votre propre serveur DNS, parlez-en à votre fournisseur d'accès ou à celui qui fournit votre DNS. Si vous faites de l'hébergement virtuel du courrier électronique, l'information suivante sera utile. Pour cet exemple, nous supposerons que vous avez un client qui possède son propre domaine, dans notre cas client1.org, et vous voulez que tout le courrier pour client1.org arrive sur votre serveur de courrier, mail.mamachine.com. L'entrée dans votre DNS devrait ressembler à ceci: client1.org MX 10 mail.mamachine.com Vous n'avez pas besoin d'un enregistrement A pour client1.org si vous ne voulez gérer que le courrier pour ce domaine. Soyez conscient que “pinger” client1.org ne fonctionnera pas à moins qu'un enregistrement A existe pour cette machine. La dernière chose que vous devez faire est d'indiquer à sendmail sur le serveur de courrier quels sont les domaines et/ou machines pour lesquels il devrait accepter du courrier. Il y a peu de façons différentes de le faire. L'une des deux méthodes suivantes devrait fonctionner: Ajoutez les machines à votre fichier /etc/mail/local-host-names si vous utilisez la fonction FEATURE(use_cw_file). Si vous utilisez une version de sendmail antérieure à la version 8.10, le fichier sera /etc/sendmail.cw. Ajoutez une ligne Cwyour.host.com à votre fichier /etc/sendmail.cf ou /etc/mail/sendmail.cf si vous utilisez sendmail 8.10 ou supérieur. SMTP avec UUCP La configuration de sendmail fournie avec &os; est conçue pour les sites directement connectés à l'Internet. Les sites désirant échanger leur courrier électronique par l'intermédiaire d'UUCP doivent installer un autre fichier de configuration pour sendmail. Modifier manuellement le fichier /etc/mail/sendmail.cf est un sujet réservé aux spécialistes. Dans version 8 de sendmail la génération des fichiers de configuration se fait par l'intermédiaire du processeur &man.m4.1;, où la configuration se fait à un haut niveau d'abstraction. Les fichiers de configuration &man.m4.1; se trouvent dans le répertoire /usr/src/usr.sbin/sendmail/cf. Si vous n'avez pas installé toutes les sources du système, l'ensemble des fichiers de configuration de sendmail a été regroupé dans une archive séparée des autres sources. En supposant que vous avez monté votre CDROM &os; contenant les sources, faites: &prompt.root; cd /cdrom/src &prompt.root; cat scontrib.?? | tar xzf - -C /usr/src/contrib/sendmail Cette extraction ne donne lieu qu'à une centaine de kilo-octets. Le fichier README dans le répertoire cf pourra faire office d'une introduction à la configuration &man.m4.1;. La meilleure façon d'ajouter le support UUCP est d'utiliser la fonctionnalité mailertable. Cela créé une base de données que sendmail utilise pour décider de la manière dont il va router le courrier électronique. Tout d'abord, vous devez créer votre fichier .mc. Le répertoire /usr/src/usr.sbin/sendmail/cf/cf contient quelques exemples. En supposant que vous avez appelé votre fichier foo.mc, tout ce dont vous avez besoin de faire pour le convertir en un fichier sendmail.cf valide est: &prompt.root; cd /usr/src/usr.sbin/sendmail/cf/cf &prompt.root; make foo.cf &prompt.root; cp foo.cf /etc/mail/sendmail.cf Un fichier .mc classique devrait ressembler à ceci: VERSIONID(`Votre numéro de version') OSTYPE(bsd4.4) FEATURE(accept_unresolvable_domains) FEATURE(nocanonify) FEATURE(mailertable, `hash -o /etc/mail/mailertable') define(`UUCP_RELAY', votre.relai.uucp) define(`UUCP_MAX_SIZE', 200000) define(`confDONT_PROBE_INTERFACES') MAILER(local) MAILER(smtp) MAILER(uucp) Cw alias.de.votre.nom.de.machine Cw votrenomdenoeuduucp.UUCP Les lignes contenant les directives accept_unresolvable_domains, nocanonify, et confDONT_PROBE_INTERFACES empêcheront l'utilisation du DNS lors de l'envoi du courrier électronique. La directive UUCP_RELAY est nécessaire pour le support de l'UUCP. Mettez juste un nom de machine Internet capable de gérer des adresses d'un pseudo-domaine .UUCP; la plupart du temps, vous mettrez le nom du serveur de messagerie de votre fournisseur d'accès. Après avoir défini tout ceci, vous avez besoin d'un fichier /etc/mail/mailertable. Si vous n'avez qu'un seul lien avec l'extérieur qui est utilisé pour votre courrier électronique, le fichier suivant devrait suffire: # # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable . uucp-dom:your.uucp.relay Un exemple plus complexe ressemblerait à ceci: # # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable # horus.interface-business.de uucp-dom:horus .interface-business.de uucp-dom:if-bus interface-business.de uucp-dom:if-bus .heep.sax.de smtp8:%1 horus.UUCP uucp-dom:horus if-bus.UUCP uucp-dom:if-bus . uucp-dom: Les trois premières lignes gèrent les cas spécifiques où les courriers électroniques pour l'extérieur ne devraient pas être envoyés au serveur par défaut, mais plutôt à des serveurs UUCP voisins afin de “raccourcir” le chemin à parcourir. La ligne suivante gère le courrier électronique destiné au domaine Ethernet local et qui peut être distribué en utilisant le protocole SMTP. Et enfin, les voisins UUCP sont mentionnés dans la notation de pseudo-domaine UUCP, pour permettre à un courrier du type voisin-uucp !destinataire de passer outre les règles par défaut. La dernière ligne doit toujours être un point, ce qui correspond à tout le reste, avec la distribution UUCP vers un voisin UUCP qui sert de passerelle universelle de courrier électronique vers le reste du monde. Tous les noms de noeuds placés après le mot clé uucp-dom: doivent être des noms valides de voisins UUCP, que vous pouvez vérifier en utilisant la commande uuname. Pour vous rappeler que ce fichier doit être converti en un fichier de base de données DBM avant d'être utilisable. La ligne de commande pour accomplir cette conversion est rappelée dans les commentaires au début du fichier mailertable. Vous devez lancer cette commande à chaque fois que vous modifiez votre fichier mailertable. Pour finir: si vous n'êtes pas certain du bon fonctionnement de certaines configurations de routage du courrier électronique, rappellez-vous de l'option de sendmail. Cela lance sendmail dans le mode test d'adresse; entrez simplement 3,0, suivi de l'adresse que vous désirez tester. La dernière ligne vous indiquera le type d'agent utilisé pour l'envoi, la machine de destination à laquelle l'agent doit envoyer le message, et l'adresse (peut-être traduite) à laquelle il l'enverra. Pour quitter ce mode tapez CtrlD. &prompt.user; sendmail -bt ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > 3,0 foo@example.com canonify input: foo @ example . com ... parse returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . > > ^D + + + + + Bill + Moran + Contribution de + + + + + Configuration pour l'envoi seul + + Il existe de nombreux cas où vous désirez + être capable d'uniquement envoyer du courrier + électronique par l'intermédiaire d'un relais. + Quelques exemples: + + + + Votre ordinateur est une machine de bureau, mais vous + voulez utilisez des programmes comme &man.send-pr.1;. + Pour cela vous devez utiliser le relais de courrier + électronique de votre FAI. + + + + L'ordinateur est un serveur qui ne gère pas le + courrier électronique localement, mais a besoin de + soumettre tout le courrier à un relais pour qu'il soit + transmis. + + + + N'importe quel MTA est capable d'assurer + cette fonction. Malheureusement, il peut être très + compliqué de configurer correctement un + MTA complet pour juste gérer le + courrier sortant. Des logiciels comme + sendmail et + postfix sont largement + surdimensionnés pour cette utilisation. + + De plus, si vous utilisez un accès Internet + classique, votre contrat peut vous interdire de faire tourner un + “serveur de courrier électronique”. + + La manière la plus simple pour répondre + à ce besoin est d'installer le logiciel porté + mail/ssmtp. Exécutez + les commandes suivantes en tant que + root: + + &prompt.root; cd /usr/ports/mail/ssmtp +&prompt.root; make install replace clean + + Une fois installé, mail/ssmtp peut être + configuré avec un fichier de quatre lignes, + /usr/local/etc/ssmtp/ssmtp.conf: + + root=yourrealemail@example.com +mailhub=mail.example.com +rewriteDomain=example.com +hostname=_HOSTNAME_ + + Assurez-vous d'employer votre adresse électronique + réelle pour l'utilisateur root. + Utilisez le relais de courrier électronique sortant de + votre FAI à la place de mail.example.com (certains FAIs appellent + cela le “serveur de courrier sortant” ou le + “serveur SMTP”). + + Assurez-vous également d'avoir + désactivé sendmail en + fixant sendmail_enable="NONE" dans le fichier + /etc/rc.conf. + + mail/ssmtp dispose + d'autres options. Consultez le fichier de configuration + d'exemple dans le répertoire /usr/local/etc/ssmtp ou la page de + manuel de ssmtp pour quelques + exemples et plus d'informations. + + Configurer ssmtp de cette + manière permettra à toute application tournant sur + votre ordinateur et ayant besoin d'envoyer un courrier + électronique de fonctionner correctement, tout en + n'outrepassant pas la politique de votre FAI ou en ne permettant + pas l'utilisation de votre ordinateur comme base arrière + pour “spammers”. + + Utiliser le courrier électronique avec une connexion temporaire Si vous disposez d'une adresse IP statique, vous ne devez rien changer du paramétrage par défaut. Définissez votre nom de machine pour qu'il corresponde à celui qui vous a été assigné pour l'Internet et sendmail s'occupera du reste. Si votre adresse IP vous est attribuée dynamiquement et que vous utilisez une connexion PPP par modem pour accèder à l'Internet, vous disposez probablement d'une boite aux lettres chez votre fournisseur d'accès. Supposons que le domaine de votre fournisseur d'accès soit example.net, que votre nom d'utilisateur soit user, que vous avez appelé votre machine bsd.home, et que votre fournisseur vous ait demandé d'utiliser la machine relay.example.net comme serveur relai de messagerie électronique. Pour pouvoir rapatrier votre courrier depuis votre boite aux lettres, vous devez installer un agent de rapatriement. L'utilitaire fetchmail est un bon choix car il supporte la plupart des protocoles de messagerie. Ce programme est disponible sous forme de paquetage ou à partir du catalogue des logiciels portés (mail/fetchmail). La plupart du temps, votre fournisseur d'accès fournit l'accès aux boites aux lettre par le protocole POP3. Si vous utilisez PPP en mode utilisateur, vous pouvez automatiquement récupérer votre courrier quand une connexion Internet est établie avec l'entrée suivante dans le fichier /etc/ppp/ppp.linkup: MYADDR: !bg su user -c fetchmail Si vous utilisez sendmail (comme montré ci-dessous) pour distribuer le courrier aux comptes non-locaux, vous voudrez probablement que sendmail s'occupe de transmettre les messages en attente dès que votre connexion Internet est établie. Pour cela, ajoutez la commande suivante après la commande fetchmail dans le fichier /etc/ppp/ppp.linkup: !bg su user -c "sendmail -q" En supposant que vous avez un compte user sur bsd.home. Dans le répertoire de l'utilisateur user sur bsd.home, créez un fichier .fetchmailrc contenant: poll example.net protocol pop3 fetchall pass MySecret Ce fichier ne devrait être lisible que par l'utilisateur user car il contient le mot de passe MySecret. Afin de pouvoir envoyer du courrier avec l'entête from: correcte, vous devez configurer sendmail pour utiliser l'adresse user@example.net plutôt que user@bsd.home. Vous pouvez également dire à sendmail d'envoyer le courrier via le serveur relay.example.net, permettant une transmission du courrier plus rapide. Le fichier .mc suivant devrait suffire: VERSIONID(`bsd.home.mc version 1.0') OSTYPE(bsd4.4)dnl FEATURE(nouucp)dnl MAILER(local)dnl MAILER(smtp)dnl Cwlocalhost Cwbsd.home MASQUERADE_AS(`example.net')dnl FEATURE(allmasquerade)dnl FEATURE(masquerade_envelope)dnl FEATURE(nocanonify)dnl FEATURE(nodns)dnl define(`SMART_HOST', `relay.example.net') Dmbsd.home define(`confDOMAIN_NAME',`bsd.home')dnl define(`confDELIVERY_MODE',`deferred')dnl Référez-vous à la section précédente pour des détails sur la conversion de ce fichier .mc en un fichier sendmail.cf. N'oubliez pas également de redémarrer sendmail après la mise à jour du fichier sendmail.cf. Authentification SMTP Disposer de l'authentification SMTP sur votre serveur de courrier présente un certain nombre d'avantages. L'authentification SMTP peut ajouter une autre couche de sécurité à sendmail, et a l'avantage de donner aux utilisateurs mobiles la possibilité d'utiliser le même serveur de courrier sans avoir besoin de reconfigurer les paramètres de leur client courrier à chaque déplacement. Installez security/cyrus-sasl à partir du catalogue des logiciels portés. Vous pouvez trouver ce logiciel porté dans security/cyrus-sasl. security/cyrus-sasl dispose de nombreuses options de compilation possibles, pour la méthode que nous allons utiliser ici, assurez-vous de sélectionner l'option . Après avoir installé security/cyrus-sasl, éditez /usr/local/lib/sasl/Sendmail.conf (ou créez-le s'il n'existe pas) et ajoutez la ligne suivante: pwcheck_method: passwd Cette méthode activera au niveau de sendmail l'authentification par l'intermédiaire de votre base de données FreeBSD passwd. Cela nous épargne le problème de la création d'un nouvel ensemble de nom d'utilisateur et de mot de passe pour chaque utilisateur ayant besoin de recourir à l'authentification SMTP, et conserve le même nom d'utilisateur et mot de passe pour le courrier. Maintenant éditez /etc/make.conf et ajoutez les lignes suivantes: SENDMAIL_CFLAGS=-I/usr/local/include/sasl1 -DSASL SENDMAIL_LDFLAGS=-L/usr/local/lib SENDMAIL_LDADD=-lsasl Ces lignes passeront à sendmail les bonnes options de configuration au moment de la compilation pour lier cyrus-sasl. Assurez-vous que cyrus-sasl a été installé avant de recompiler sendmail. Recompilez sendmail en lançant les commandes suivantes: &prompt.root; cd /usr/src/usr.sbin/sendmail &prompt.root; make cleandir &prompt.root; make obj &prompt.root; make &prompt.root; make install La compilation de sendmail ne devrait pas présenter de problèmes si le répertoire /usr/src n'a pas subi d'énormes changements et si les bibliothèques partagés nécessaires sont disponibles. Une fois que sendmail a été compilé et réinstallé, éditez votre fichier /etc/mail/freebsd.mc (ou tout autre fichier que vous utilisez comme fichier .mc. De nombreux administrateurs utilisent la sortie de &man.hostname.1; comme nom de fichier .mc par unicité). Ajoutez-y les lignes qui suivents: dnl set SASL options TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl define(`confDEF_AUTH_INFO', `/etc/mail/auth-info')dnl Ces options configurent les différentes méthodes disponibles pour sendmail pour l'authentification des utilisateurs. Si vous désirez utiliser une méthode autre que pwcheck, veuillez consulter la documentation fournie. Enfin, exécutez &man.make.1; quand vous êtes dans /etc/mail. Cela prendra votre nouveau fichier .mc et créera un fichier .cf appelé freebsd.cf (ou selon tout autre nom que vous avez utilisé pour votre fichier .mc). Ensuite utilisez la commande make install restart, qui copiera le fichier en sendmail.cf, et redémarrera proprement sendmail. Pour plus d'informations sur ce processus, vous devriez vous réferrer au fichier /etc/mail/Makefile. Si tout s'est bien passé, vous devriez être en mesure d'entrer votre identifiant dans votre programme de courrier et d'envoyer un message de test. Pour plus d'investigation, fixez le de sendmail à 13 et scrutez /var/log/maillog à la recherche d'une erreur. Vous pourrez rajouter les lignes suivantes au fichier /etc/rc.conf afin de rendre ce service disponible après chaque démarrage du système: sasl_pwcheck_enable="YES" sasl_pwcheck_program="/usr/local/sbin/pwcheck" Cela assurera l'initialisation de SMTP_AUTH, l'authentification SMTP, au démarrage du système. Pour plus d'informations, veuillez consulter la page de la documentation de sendmail concernant l'authentification SMTP.