Réseau - Web - GNU/Linux

2018 14 février

Diagnostic des pannes de votre serveur de courrier - Debian 9.0 Stretch

Rédigé par Marc GUILLAUME | 10 commentaires
Article précédent Mail façon FAI - Debian 9.0 Stretch Article suivant

Traduction de la page : https://workaround.org/ispmail/stretch/troubleshooting

Conseils généraux pour effectuer le diagnostique

  • Lancez postfix check pour faire rechercher à Postfix les erreurs de configuration les plus évidentes. Si il ne renvoit aucun résultat c'est qu'il n'a trouvé aucun problème.
  • Lisez votre fichier /var/log/mail.log à la recherche des warnings (alertes) et errors (erreurs).

Postfix garde des mails indésirables dans la file d'attente

Vérifiez que vous n'avez pas laissé l'option soft_bounce activée. Si postconf soft_bounce renvoit « yes » alors lancez la commande :

postconf soft_bounce=no

Pour purger tous les mails de la queue (attention c'est un peu dangereux) lancez la commande :

postsuper -d ALL

Je lis « Permission denied » envoyé par Dovecot dans le fichier mail.log

Vous n'avez pas fixé les bonnes permissions. Lancez la commande :

chown -R vmail:vmail /var/vmail

Postfix dit : « Mail loops back to myself »

Postfix tente d'envoyer un mail sur Internet parce qu'il ne pense pas être responsable du domaine destinataire. Pourtant les enregistrements DNS pointent vers lui. Soit votre enregistrement DNS pour ce domaine est faux (peu probable) soit votre Postfix refuse de recevoir des mails pour le domaine en question (très probable). Vérifiez que le domaine destinataire est bien listé dans la table virtual_domains de la base MySQL. Et vérifiez que vos fichiers de configuration fonctionnent correctement.

10 commentaires

#1  - Sphinx a dit :

Bonjour,

J'ai installé un serveur de messagerie en suivant votre tutorial (bien rédigé au passage). Ce serveur se trouve derrière une box capable de rediriger les connexions entrantes vers mon serveur. J'ai également installé RoundCube afin de tester. A ce jour, je peux envoyer un mail depuis RoundCube vers une adresse extérieure (mon adresse perso fournie par mon FAI en l'occurence).
Cependant, je ne peux pas recevoir d'email ni utiliser mon adresse mail de mon serveur de messagerie dans Thunderbird.

Pourriez-vous m'indiquer les ports à ouvrir et à rediriger vers mon serveur de messagerie ainsi que la configuration IMAP et SMTP que je devrais avoir dans Thunderbird ?

En vous remerciant de toute l'aide que vous pourrez m'apporter

Répondre
#2  - Sphinx a dit :

Je précise à toutes fins utiles que j'ai lancé la commande "postfix check" qui ne me retourne aucune erreur (en fait la commande ne me retourne rien)

Répondre
#3  - Marc GUILLAUME a dit :

Bonjour,

Je déduis que votre serveur est sur votre ligne ADSL ou Câble. Utiliser son IP (à priori dynamique) pour le mail est devenu de nos jours un peu compliqué. Ce type d'IP est en liste noir sur pratiquement tous les serveurs SMTP du monde (à cause des millions d'ordinateurs sous Windows principalement qui sont infectés de virus, vers et autres chevals de Troie qui envoient du spam en masse).

Dans le guide pour wheezy le sujet de l'utilisation d'une IP dynamique en utilisant le relais smtp de votre FAI était abordé (voici l'URL : http://www.yakati.info/index.php?article134/envoyer-du-courrier-depuis-une-ip-dynamique-debian-7-0-wheezy). Pour pouvoir recevoir du courrier il faut bien entendu qu'un nom de domaine pointe sur votre IP, que l'enregistrement MX soit configuré, et donc si votre IP est dynamique il faut un nom de domaine géré par un DNS dynamique.

La solution la plus simple est certainement de louer un petit serveur Virtuel à quelques euros pas mois ainsi qu'un nom de domaine. Et là vous devriez éviter tous les tracas que vous rencontrez. Sinon si vous ne voulez ou pouvez adopter cette solution il faut rediriger sur votre machine serveur l'ensemble des ports concernés, 25 (smtp), 143 (imap), 110 (pop), 587 (secure smtp) au minimum.

Répondre
#4  - Sphinx a dit :

Bonjour,

Je suis chez Free, j'ai donc une IP fixe (et un nom de domaine chez OVH). Je m'installe un serveur mail derrière ma box. J'ai donc redirigé les ports que vous m'avez indiqué vers mon serveur, toutefois je n'arrive toujours pas à envoyer ou recevoir de mails (j'utilise Thunderbird pour mes tests)

Dans ma zone DNS j'ai bien un champ MX qui redirige vers mon serveur (OVH redirige vers ma box, et ma box redirige vers mon serveur les ports 25, 110, 143 et 587) et j'ai paramétré Thunderbird ainsi :

Serveur sortant SMTP :
Nom de serveur : le même domaine que dans le champ MX
Port : 25
Sécurité : SSL/TLS
Mais quand j'essaie d'envoyer un email, Thunderbird me répond que la connexion au serveur a expiré

De la même facon, j'ai paramétré le compte dans Thunderbird en IMAP :
Nom de serveur : le même domaine que dans le champ MX
Port : 143
Sécurité : STARTTLS

Qu'ai-je raté ?

Répondre
#5  - Marc GUILLAUME a dit :

Bonjour,

la première chose à faire est de vous assurer que vous n'avez pas une règle de pare-feux qui bloquerait les ports 143 ou 25, sur la box ou sur la machine serveur. Pour la box Free je ne la connais pas mais je suppose qu'il y a une interface qui permet de savoir ça. Pour le serveur en root vous pouvez taper "iptables -L" et vérifier les règles en cours.

Dans un deuxième temps avoir une IP fixe chez Free n'assure pas que vous puissiez envoyer du courrier car c'est une IP de FAI et donc à priori bloquée. J'ai une IP fixe orange, mais je ne peux envoyer de courrier depuis cette IP. Ce problème pourrait expliquer que vous ne puissiez envoyer de courrier, mais pas que la connexion IMAP ne fonctionne pas.

Pour ce qui est de l'envoi et la réception mon client de mail (claws-mail) est configuré sur "utiliser STARTTLS". Je n'utilise plus Thunderbird depuis plusieurs années, mais commençons par quelque chose de moins sophistiqué. En vous inspirant de la page http://www.yakati.info/index.php?article76/emulation-d-une-session-smtp-en-utilisant-telnet-debian-5-0-lenny essayez de vous connecter avec telnet en tapant la commande :

telnet votre-nom-de-mx imap

Vous devriez voir s'afficher quelque chose du genre :

Trying XXX.XXX.XXX.XXX... [c'est à dire l'IP de votre box]
Connected to votre-nom-de-mx.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS LOGINDISABLED] Dovecot ready

sI vous ne voyez pas ça, c'est que ce n'est pas votre serveur qui répond à Thunderbird.

Voici quelques éléments pour tenter un diagnostic.

Répondre
#6  - Sphinx a dit :

J'ai lancé ces deux commandes sur mon serveur et voici ce qu'elles m'ont retournées :

root@gizeh:~# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
f2b-postfix-ispmail tcp -- anywhere anywhere multiport dports smtp,submission
f2b-sshd tcp -- anywhere anywhere multiport dports ssh

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain f2b-postfix-ispmail (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere

Chain f2b-sshd (1 references)
target prot opt source destination
REJECT all -- 58.218.198.169 anywhere reject-with icmp-port-unreachable
RETURN all -- anywhere anywhere
root@gizeh:~# telnet mon-serveur-mx imap
Trying 127.0.1.1...
Connected to mon-serveur-mx.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS LOGINDISABLED] Dovecot ready.

Cependant, j'ai également relancé la commande telnet depuis mon PC windows, et elle me retourne l'erreur suivante :
C:\Users\Sphinx>telnet mon-serveur-mx
Trying IP de ma box...
telnet: Unable to connect to remote host: Connection timed out

J'en déduis donc que mon serveur n'est pas accessible à distance. Cependant, et avec le même paramétrage donc, j'arrive à accéder à distance au serveur apache installé (ports 80 et 443)

Répondre
#7  - Marc GUILLAUME a dit :

Que se passe-t-il si vous purgez toute règle iptables et que vous arrêtez fail2ban ? Si vous pouvez pinguer votre serveur depuis votre poste windows, vous devez pouvoir accéder à votre serveur imap. Comment est structuré votre réseau ? Votre serveur et vos postes sont connectés sur un hub ou switch ou autrement ?

Répondre
#8  - Jean a dit :

Bonjour, merci pour ce très bon tuto !
Après avoir suivi celui-ci le plus scrupuleusement possible je me retrouve avec une erreur récurrente dans les logs mail.warm à savoir :

Nov 22 12:03:42 ns3 postfix/smtpd[1048]: warning: milter inet:127.0.0.1:11333: unreasonable packet length: 1213486160 > 1073741823
Nov 22 12:03:42 ns3 postfix/smtpd[1048]: warning: milter inet:127.0.0.1:11333: read error in initial handshake

Ainsi qu'un message d'erreur lorsque je lance un " postfix check " à savoir :

postfix: Postfix is running with backwards-compatible default settings
postfix: See http://www.postfix.org/COMPATIBILITY_README.html for details
postfix: To disable backwards compatibility use "postconf compatibility_level=2" and "postfix reload"

Auriez vous une idée pour corriger cela ?
Vous remerciant par avance
Cordialement

Répondre
#9  - Marc GUILLAUME a dit :

Chez moi compatibility_level=0 sans déclencher d'alerte :

# postconf -d | grep compatibility_level
append_dot_mydomain = ${{$compatibility_level} < {1} ? {yes} : {no}}
compatibility_level = 0
mynetworks_style = ${{$compatibility_level} < {2} ? {subnet} : {host}}
relay_domains = ${{$compatibility_level} < {2} ? {$mydestination} : {}}
smtputf8_enable = ${{$compatibility_level} < {1} ? {no} : {yes}}

Cette rétro compatibilité est destinée à être utilisée en cas de mise à jour de Postfix, et si vous avez fait une installation fraîche sans mise à jour ça ne devrait pas jouer. Avez-vous essayé de faire ce que dit le message, c'est à dire mettre le niveau à 2 (voir la page qui est citée dans le message) ? Si vous tapez postconf compatibility_level=2 et que vous de lanciez Postfix le message devrait avoir disparu, et si tout continue à fonctionner c'est en effet que l'option était inutile. Essayez, une éventuelle autre erreur pourrait vous mettre sur la voie de ce qui a déclenché ce programme.

Le premier message, quant à lui, vient de la limite de taille des messages que peut accepter postfix. Cela vient du paramètre message_size_limit, l'accent sur ce point était plus net dans le guide pour wheezy, je vais peut-être insister un peu dans cette version stretch. Les mails étant de plus en plus gros (on utilise souvent le mail en lieu et place de ftp). Si vous modifiez la limite de taille des messages vous ne devriez plus avoir ce problème. La valeur par défaut est de 10 Mo, essayez avec 40Mo :
postconf -e message_size_limit=40960000

Répondre
#10  - Jean a dit :

Bonjour ,
Merci pour votre aide, pour ce qui est de compatibility_level effectivement je n'ai pas effectué une installe à zéro, une maj de l'ensemble, je préférais poser la question avant de procéder à la commande "compatibility_level=2" ce qui a effectivement résolu le problème.
En revanche pour l'autre erreur j'ai modifié comme vous me le suggériez la size_limit de postifix mais rien n'y fait toujours le même message récurrent:

Nov 24 16:35:56 ns3 postfix/submission/smtpd[10137]: connect from localhost.localdomain[127.0.0.1]
Nov 24 16:35:56 ns3 postfix/submission/smtpd[10137]: warning: milter inet:127.0.0.1:11333: unreasonable packet length: 1213486160 > 1073741823
Nov 24 16:35:56 ns3 postfix/submission/smtpd[10137]: warning: milter inet:127.0.0.1:11333: read error in initial handshake
Nov 24 16:35:56 ns3 postfix/submission/smtpd[10137]: disconnect from localhost.localdomain[127.0.0.1] ehlo=1 quit=1 commands=2

Je ne sais d'ailleurs pas pourquoi la machine se connect à elle-même avant de générer cette erreur, est-ce normal ?
Dans l'attente de vous lire
Cordialement

Répondre

Écrire un commentaire

Quelle est la cinquième lettre du mot kiqcbr ?

Fil RSS des commentaires de cet article

À propos

Yakati.info - Réseau - Web - GNU/Linux © 2017

Généré par PluXml en 0.037s  - Administration

Mes coordonnées

Marc Guillaume
contact[at]yakati.info
79150 ÉTUSSON

Crédits

Pour la gestion du contenu

Généré par PluXml, le Blog ou Cms sans base de données

Pour le contenu

Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.

Pour le thème

Thème SOLID de blacktie.co adapté pour PluXml