27.5. Dépannage

27.5.1. Pourquoi faut-il que j'utilise le FQDN (“Fully Qualified Domain Name” - nom complet de machine) pour les machines de mon site?
27.5.2. sendmail affiche le message mail loops back to myself
27.5.3. Comment puis-je faire tourner un serveur de courrier électronique avec une connexion téléphonique PPP
27.5.4. Pourquoi j'obtiens le message d'erreur Relaying Denied à chaque fois que j'envoie du courrier à partir d'autres machines?

27.5.1.

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.

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.

27.5.2.

sendmail affiche le message mail loops back to myself

La réponse donnée dans la FAQ de sendmail est la suivante:

J'obtiens les messages d'erreur suivant:

553 MX list for domain.net points back to relay.domain.net
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 [connu sous le nom /etc/sendmail.cw dans les versionsantérieure à 8.10] (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 http://www.sendmail.org/faq/ et sa lecture est recommandée si vous voulez “bidouiller” votre configuration du courrier électronique.

27.5.3.

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.

Il y a au moins deux façons 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 liste de diffusion pour les fournisseurs d'accès Internet utilisant FreeBSD.

> 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”.

27.5.4.

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 POP est disponible, 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:

# 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).

Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.

Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.