[Postfix-es] Error al tratar de enviar mail con SSL

Gorka gorkapostfix en yahoo.es
Lun Jun 2 19:17:43 CEST 2008



> -----Mensaje original-----
> De: postfix-es-bounces en lists.wl0.org [mailto:postfix-es-
> bounces en lists.wl0.org] En nombre de Miguel Angel Tormo Alfaro
> Enviado el: lunes, 02 de junio de 2008 16:18
> Para: postfix-es en lists.wl0.org
> Asunto: Re: [Postfix-es] Error al tratar de enviar mail con SSL
> 
> El Lunes, 2 de Junio de 2008 11:42:16 Gorka escribió:
> >
> > > -----Mensaje original-----
> > > De: Gorka [mailto:gorkapostfix en yahoo.es]
> > > Enviado el: lunes, 02 de junio de 2008 11:35
> > > Para: 'postfix-es en lists.wl0.org'
> > > Asunto: RE: [Postfix-es] Error al tratar de enviar mail con SSL
> > >
> > >
> > >
> > > > -----Mensaje original-----
> > > > De: postfix-es-bounces en lists.wl0.org [mailto:postfix-es-
> > > > bounces en lists.wl0.org] En Nombre de Miguel Angel Tormo Alfaro
> > > > Enviado el: viernes, 30 de mayo de 2008 18:32
> > > > Para: postfix-es en lists.wl0.org
> > > > Asunto: Re: [Postfix-es] Error al tratar de enviar mail con SSL
> > > >
> > > > El Miércoles, 28 de Mayo de 2008 14:38:24 Gorka escribió:
> > > > >
> > > > > > -----Mensaje original-----
> > > > > > De: postfix-es-bounces en lists.wl0.org [mailto:postfix-es-
> > > > > > bounces en lists.wl0.org] En Nombre de Miguel Angel Tormo Alfaro
> > > > > > Enviado el: martes, 27 de mayo de 2008 19:27
> > > > > > Para: postfix-es en lists.wl0.org
> > > > > > Asunto: Re: [Postfix-es] Error al tratar de enviar mail con
> SSL
> > > > > >
> > > > > > El Martes, 27 de Mayo de 2008 14:00:16 Gorka escribió:
> > > > > > > Hablamos de un servidor tipo ISP de postfix con dovecot.
> > > > > > > Me dice “Error al efectuar operación. No se pudo conectar
> con
> > > > > > localhost:
> > > > > > > Conexión rehusada”
> > > > > > > Lo curioso es que si para este SMTP uso la conexión segura
> TLS
> > > en
> > > > > > lugar de
> > > > > > > SSL, entonces sí que me deja enviar el correo.
> > > > > > >
> > > > > > > Tras crear el certificado he repetido por si acaso los
> comandos
> > > > ...
> > > > > > > chmod o= /etc/ssl/private/postfix.pem
> > > > > > > postconf -e smtpd_tls_cert_file=/etc/ssl/certs/postfix.pem
> > > > > > > postconf -e smtpd_tls_key_file=/etc/ssl/private/postfix.pem
> > > > > > > .... pero sigue dándome el error sólo cuando uso una
> conexión
> > > > segura
> > > > > > con
> > > > > > > encriptación SSL. Sin encriptación ó con TLS no hay
> problema.
> > > > > > >
> > > > > > > ¿Alguna idea?
> > > > > > >
> > > > > > - Cuando marcas conectar usando TLS en la mayoría de los
> clientes
> > > > de
> > > > > > correo, la sesión funciona de la siguiente manera:
> > > > > > 	1) Se conecta al puerto 25 (si no lo has cambiado, o no
> > > usas el
> > > > > > puerto de submission) SIN CIFRADO.
> > > > > > 	2) Mediante un comando STARTTLS comienza la negociación del
> > > > > > cifrado TLS. A partir de aquí, toda la comunicación va
> cifrada.
> > > > > > - En cambio, cuando conectas usando SSL se entiende que el
> > > comando
> > > > > > STARTTLS no está soportado (bien por el cliente bien por el
> > > > servidor),
> > > > > > por tanto se parte de la base que la conexión ya va cifrada
> de
> > > por
> > > > sí.
> > > > > > Se necesita un puerto distinto para esto, porque el 25 no va
> > > > cifrado.
> > > > > > Se suele usar el 465 (smtps).
> > > > > >
> > > > > > Esto último, lo tienes que habilitar explícitamente en tu
> > > postfix,
> > > > mira
> > > > > > si tienes en master.cf una línea como ésta:
> > > > > > smtps    inet  n       -       n       -       150      smtpd
> -v
> > > > > >   -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
> > > > >
> > > > > Gracias Miguel Ángel por contestar. Pongo la línea que me
> comentas
> > > y
> > > > ....
> > > > > nada. El mismo error ...
> > > > >
> > > > > “Error al efectuar operación. No se pudo conectar con
> localhost:
> > > > Conexión
> > > > > rehusada”
> > > > >
> > > > > .... en Evolution y uno similar en Outlook desde otra máquina
> que
> > > no
> > > > es el
> > > > > servidor ...
> > > > >
> > > > > “La tarea 'Enviando john en example.com' ha notificado el error
> > > > (0x800CCC1A) :
> > > > > 'El servidor no admite el tipo de cifrado de conexión
> especificado.
> > > > Intente
> > > > > cambiar el método de cifrado. Póngase en contacto (...).'”
> > > > >
> > > > > ¿Por qué no puedo enviar mensajes con encriptación SSL?
> > > >
> > > > Desde una máquina linux, prueba lo siguiente:
> > > > openssl s_client -connect ip:puerto
> > > >
> > > > Donde ip es la ip del servidor y puerto en el que escucha SSL,
> > > > normalmente el 465.
> > >
> > > Me dice que hay conexión. Esta es la salida algo resumida:
> > >
> > > $ openssl s_client -connect 10.0.0.55:465
> > > CONNECTED(00000003)
> > > depth=0
> > > /C=ES/ST=Madrid/L=Madrid/O=NOMBRE/CN=servidor.mio.es/emailAddres
> > > s=postmaster en mio.es
> > > verify error:num=18:self signed certificate
> > > verify return:1
> > > depth=0
> > > /C=ES/ST=Madrid/L=Madrid/O=NOMBRE/CN=servidor.mio.es/emailAddres
> > > s=postmaster en mio.es
> > > verify return:1
> > > ---
> > > Certificate chain
> > >  0
> > >
> s:/C=ES/ST=Madrid/L=Madrid/O=NOMBRE/CN=servidor.mio.es/emailAddress=pos
> > > tmaster en mio.es
> > >
> > >
> i:/C=ES/ST=Madrid/L=Madrid/O=NOMBRE/CN=servidor.mio.es/emailAddress=pos
> > > tmaster en mio.es
> > > ---
> > > Server certificate
> > > -----BEGIN CERTIFICATE-----
> > > HII (...) q==
> > > -----END CERTIFICATE-----
> > >
> subject=/C=ES/ST=Madrid/L=Madrid/O=NOMBRE/CN=servidor.mio.es/emailAddre
> > > ss=postmaster en mio.es
> > >
> issuer=/C=ES/ST=Madrid/L=Madrid/O=NOMBRE/CN=servidor.mio.es/emailAddres
> > > s=postmaster en mio.es
> > > ---
> > > No client certificate CA names sent
> > > ---
> > > SSL handshake has read 1456 bytes and written 316 bytes
> > > ---
> > > New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
> > > Server public key is 1024 bit
> > > Compression: NONE
> > > Expansion: NONE
> > > SSL-Session:
> > >     Protocol  : TLSv1
> > >     Cipher    : DHE-RSA-AES256-SHA
> > >     Session-ID:
> > > 86923E977B50D7905700F03810D89156283A2E5FC0A552F27775411A430CA176
> > >     Session-ID-ctx:
> > >     Master-Key: 3F2 (...) E0C
> > >     Key-Arg   : None
> > >     Start Time: 1212397786
> > >     Timeout   : 300 (sec)
> > >     Verify return code: 18 (self signed certificate)
> > > ---
> > > 220 servidor.mio.es ESMTP Postfix (Debian/GNU)
> >
> >
> > Perdón, ... al texto anterior he de añadir lo siguiente (ha salido
> más
> > tarde) ...
> >
> > 421 4.4.2 servidor.mio.es Error: timeout exceeded
> > read:errno=0
> > $
> No me parece ningún  error, es totalmente normal siempre y cuando hayan
> pasado 300 segundos (5 minutos), que es el timeout que tiene
> especificado (lo dice en 'SSL-Session).
> Ejecuta el comando así:
> time openssl s_client -connect ip:puerto
> y cuando dé el error, pulsa enter y revisa el tiempo transcurrido.
> Solamente te deberías preocupar si es menor a 5 minutos.
> 
> Por otro lado, lo que deberías hacer ahora es probar a enviarte un
> mail, escribe los comandos:
> openssl s_client -connect ip:puerto
> ehlo yomismo.com
> mail from: <mailqexista en dominio.com>
> rcpt to: <cuenta en mio.es>
> data
> Subject: Mail de pruebas
> From: Yo
> To: Mi
> Hola
> .
> 
> Si llega el mail a 'cuenta en mio.es', entonces es que no tienes ningún
> problema en el servidor, deberías revisar los logs de las conexiones
> SSL, puede que haya algún problema con la negociación, pero me parece
> raro.

Exacto. Pasan exáctamente 5 minutos antes de salir la última línea, eso es.

Con respecto a la prueba de envío de correo, ... envía el mail perfectamente
tanto desde el propio servidor como desde otra máquina linux. Y, PARA MÁS
INRI, ahora desde Evolution en el propio servidor también lo envía (sin
tocar nada, lo juro), pero desde Outlook en un ordenador "remoto" sigue sin
funcionar el envío SSL.

El error que da outlook es el siguiente:

“La tarea 'Enviando john en example.com' ha notificado el error (0x800CCC1A) :
'El servidor no admite el tipo de cifrado de conexión especificado. Intente
cambiar el método de cifrado. Póngase en contacto con el administrador del
servidor o con el proveedor de servicios de Internet (ISP) para obtener más
ayuda.'”

Y las líneas de mail.log (¿Te refieres a esto con 'los logs de las
conexiones SSL'?) son:

postfix/smtpd[12630]: connect from remoto.dominio.local[10.0.0.56]
postfix/smtpd[12630]: disconnect from remoto.dominio.local[10.0.0.56]
postfix/smtpd[12630]: warning: 10.0.0.56: hostname huesped verification
failed: No address associated with hostname
postfix/smtpd[12630]: connect from unknown[10.0.0.56]
postfix/smtpd[12630]: disconnect from unknown[10.0.0.56]
postfix/smtpd[12630]: connect from remoto.dominio.local[10.0.0.56]
postfix/smtpd[12630]: disconnect from remoto.dominio.local[10.0.0.56]

¿Puede tener algo que ver con la revisión del problema que tenía hasta Mayo
openssl? Lo digo porque el hecho de que funcione "de repente" en el
Evolution del servidor me resulta bastante extraño para un entorno Debian
Linux.







Más información sobre la lista de distribución Postfix-es