Problème avec TLS

Bonjour,

J’ai installé le serveur de courrier sortant Postfix sur Mandriva 2007. Je souhaite sécuriser ma connexion avec TLS. Pour cela, j’ai rajouté ces quelques lignes dans mon main.cf:

smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_loglevel = 0
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

Lorsque j’essaie à partir de thunderbird de me connecter via tls, il ne se passe rien, mon mail ne part pas. Dans les logs de postfix, il n’y a rien, tout se passe comme si je n’avais pas essayé d’envoyer de mail, aucun message d’info, d’erreur ou autre. Je pense donc que la connexion est bloquée avant même d’arriver à postfix. Dans mon fichier /etc/hosts.allow, afin d’être sur, j’ai mit: ALL: ALL.

J’ai également fait un petit test qui me confirme que TLS fonctionne apparemment correctement:

[root@LINUX2 ~]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
Escape character is '^]'.
220 xxxxxxxxxxxxx ESMTP Postfix (2.3.3) (Mandriva Linux)
EHLO toto
250-xxxxxxxxxxxxxxxxx
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
[b]250-STARTTLS[/b]
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

J’ai désactivé le firewall, je ne vois pas où cela peut bloquer. Merci pour vos conseils :slight_smile:

tu peux poster ton master.cf et un postconf -n ?

de meme poste les logs lors de l’erreur (meme si tu ne vois rien de particulier)

remonte egalement ton smtpd_tls_loglevel à 1

tes certificats sont OK ? comment les as tu généré ?

Décidemment, tu es toujors là pour m’aider ^^

Et voici les différents fichiers de log que j’ai, juste après avoir redémarré postfix et fait un test d’envoie de mail:

On voit bien que la réception marche, mais il n’y a strictement rien sur la tentative de connexion pour l’envoi.

Ce problème vient de je ne sais où, mais je peux malgré tout envoyer des mails, donc il n’est pas très grave, je le résoudrais plus tard. Toujours rien à avoir avec la tentative de connexion de postfix, ce message s’affiche régulièrement.

J’ai généré les certificats de cette manière:

openssl req -new -outform PEM -out /etc/postfix/smtpd.cert -newkey rsa:2048 -nodes -keyout /etc/postfix/smtpd.key -keyform PEM -days 3650 -x509

En fait, la connexion par tls aait marché la première fois où je l’avais implémenté. Depuis j’ai reformaté, et plus rien.

je me souvient de ton master.cf mais tu l’as pas vraiment corrigé !
il y a toujours le 10026 et le smtp-filter dont on ne connait pas la fonction ??

sinon les warning:
warning: connect to transport lmtp-filter: No such file or directory
semble faire reference a d’ancien mail (d’une ancienne conf) et qui sont restés a queue.

l transport lmtp-filter ne semble etre appelé nulle part ?

et puis on ne voit pas ta conf TLS dans ton postconf -n, donc reverifie ton main.cf et la syntaxe, reloade postfix et refait un postconf -n

Le port 10026 sert apparemment à postfix lorsqu’il recoit les mails qu’amavis a analysé. Il les recoit sur le port 10025, mais se sert également du port 10026. Je l’avais enlevé et j’ai eu le droit à une belle erreur. Le smtp-filter, j’ai juste oublié de l’enlever, mais il ne sert en effet à rien.

Pour le ponstconf -n, je ne sais pas, je l’avais peut être fait alors que la partie tls était encore commentée, ou alors je n’avais pas encore redémarré postfix, mais ca marche bien. Comme je te l’ai dit, je pense que ca viendrait peut être de la configuration de ma machine étant donné qu’il n’y a aucune trace dans les logs de postfix?

et en reessayant la c’est pareil ?
que disent les logs ? rien du tout ? meme pas de connect from: au moment ou tu appuies sur envoyer ?
fais les voir en entier (enfin du moins une grande partie avant et apres la tentative)

fais quand meme un iptables -L

et regarde ce que dis le syslog

pour le 10026 c’est etonnant
fais voir egalement le amavisd.conf

Voici /var/log/mail/info:

Je venais juste de redémarrer postfix. J’avais avant envoyé un mail sans tls.

Voici le /warnings:

Il me répère cette phrase sans cesse, et c’est tout.

/errors, il n’y a rien. Et rien de plus dans le syslog par rapport à tout cela.

L’amavis fait 646 lignes, tu es sur que tu veux le voir? Je n’ai que 2 lignes contenant le port 10026, elles sont en commentaire:

Et il écoute sur le port 10024:

Si j’enlève le paragraphe sur le port 10026, voici l’erreur que j’ai dans mon warnings:

Et celle que j’ai dans mon info:

par defaut ta version d’amavisd doit renvoyer sur le 10026.

a quelle heure dans les logs as tu tenter la connection sur le smtp pour envoyer le mail ?

quel est la config exacte que tu mets dans thunderbird pour le SMTP ?

pour l’erreur warning: connect to transport lmtp-filter: les mails sont en queue:
pour les voir

mailq

pour les effacer:

postsuper -d ALL

ensuite les nouveaux mails n’auront a priori plus ce pb amoins qu’autre chose appelle ce service.

et sinon t’a essayé de sniffer la connection avec ethereal pour voir si t’a vraiment un soucis avec STARTTLS ?
l’extension apparait dans la liste des fonctions supportées, ce qui est plutot bon

sinon tu as l’outil ssldump qui va te dumper les communications TLS, pratique aussi :wink:

Bon amavis marche de toute facon, je ne vais pas chercher plus loin. C’est peut être le 10025 alors que je devrais supprimer si par défaut les mails sont renvoyés sur le 10026.

Je l’ai tenté juste après avoir redémarré postfix à 15:14:54. Et comme tu vois il n’y a rien.

Thunderbird, Serveur sortant je met l’adresse de la machine où je fais mes tests (pour le moment les 2 sont sur la même machine). port 25 (j’ai essayé 465 pour le tls sans plus de succès). Et j’ai coché “utiliser une connexion sécurisée: TLS”.

Sinon nan j’ai po testé avec ethereal, je ne suis pas tres familié avec ca, mais pourquoi pas, je pourrais tenter. Juste une question: que veux dire “dumper” ^^
Edité le 06/07/2007 à 16:01

-l’adresse du smtp dans thunderbird est bien 127.0.0.1 ?
-coche TLS si disponible dans thunderbird
-dans le main.cf monte le TLS log a 3

et fais voir les logs

-peux tu retester telnet 127.0.0.1 25 en local ?

Bon je viens de faire le même test d’une machine distante, et cela fonctionne. Comme la machine où se trouve postfix servira uniquement de sreveur, ce n’est pas trop grave si ca ne fonctionne pas. Merci pour l’aide :wink:

Par contre, je voudrais juste une confirmation: l’envoie du mot de passe entre mon client mail et le serveur se fait bien en clair si je ne chiffre pas avec tls?
Edité le 06/07/2007 à 16:30

si tu utilises l’authentification SASL pour l’envoi d’email, il y aura donc un password qui sera transmis, et il peut etre en PLAIN (en clair). C’est la que le TLS prend tout son sens puisqu’il chiffrera la communication.
mais dans ta conf je ne vois pas le SASL ?

dans ta conf actuelle quand tu envoies mail, aucun password n’est transmis

Vivi je sais, j’ai deja commencé à configurer, ca marche deja pour cyrus-imap via SASL, il me reste à terminer la configuration de l’authentification par SASL pour postfix.


Ha oui, du coup, les FAI, quand t'envoie ton mdp, il est en clair ou crypté? Paske y'a pas de liaison tls pour eux. C'est étrange que SASL ne crypte pas ses échanges alors qu'il est destiné à authentifier... Parce que je trouve ca un peu lourd que chaque client soit obligé d'accepter le certificat au moins pour la première connexion pour l'envoie ET la réception des mails. Edité le 06/07/2007 à 16:47

je crois que tu confond la recuperation des mails chez les FAI et l’envoi d’email depuis ton serveur.

quand tu envoie un mail depuis ton serveur l’auth s’effecetue entre le client (thunderbird) et ton serveur SMTP (postfix)
ensuite le mail est envoyé vers sa destination mais a partir de la il n’y a plus besoin de password.

ou alors je n’ai as cbien compris ta question peut etre ??

Nan ce n’est pas ce que je voulais dire. Je souhaite savoir si le mot de passe, lorsqu’on utilise SASL, circule en clair entre mon client de messagerie, et mon serveur (que ce soit pour la réception ou l’envoie de mail, les 2 utilisant SASL dans mon cas). C’est ce qui se passe lorsqu’on souhaite récupérer ses mails sur son FAI, un mot de passe est également demandé, et transmis au serveur distant, tout comme entre un client et mon serveur mail.

Ha oui je viens de comprendre, je me suis mal exprimé. Donc oui ma question se pose sur 2 points: la transmission du mot de passe entre le client et le serveur, puis la transmission du mot de passe entre mon serveur, et un autre serveur (Windows Servre 2003) où est stockée la base de données utilisateur.
Edité le 06/07/2007 à 17:24

sasl permet d’utiliser des méchanismes sécurisés d’authentification, on parlera de challenge MD5 et autre joyeuseté…
mais le mécanisme PLAIN est effectivement complètement en clair

Le mode d’authentification choisi se config dans imapd.conf quand tu utilise cyrus, mais ca requière quelques compétences que tu peut acquérir ici : asg5.andrew.cmu.edu…

le must étant d’avoir un annuaire LDAP et d’utiliser Kerberos, mais j’ai jamais fait…

Bon je vais plutot me baser sur une connexion sécurisée tls. Une question qui n’a rien à voir, pendant que j’y suis, si tu peux m’aider (sinon je créerai un autre sujet): au niveau de mon serveur imap (cyrus-imap), je crée automatiquement les dossiers à la première connexion d’un utilisateur, de cette manière dans imapd.conf:


createonpost: yes

autocreateinboxfolder: Sent | Drafts | Trask | Spam

autosubscribeinboxfolder: Sent | Drafts | Trask | Spam

Maintenant, tout cela est en anglais, j’aimerais donc qu’à la place de Sent, il y ait Envoyés, à la place de Drafts, Brouillon, … Comment indiquer à cyrus que le dossier Envoyés correspond à Sent?
Edité le 09/07/2007 à 10:08