Se recibió una alerta fatal de TLS con exim4 en debian 9

Se recibió una alerta fatal de TLS con exim4 en debian 9

Estoy intentando configurar mi servidor para enviar correo y recibo un error de "alerta fatal TLS" cada vez que intento enviar correo.

He seguido los pasos indicados enesta publicaciónrelacionado con mi problema para intentar solucionar el problema, pero finalmente me da el error que describo:

apt install gnutls-bin
cd /etc/exim4/
certtool --generate-privkey --outfile exim.key
certtool --generate-request --load-privkey exim.key --outfile exim.csr
  • Nombre común: gestiondecorreos.es

  • el resto lo dejo en blanco(entrar)

  • URL:http://www.cacert.org/

  • inicie sesión en CACert => haga clic en "Certificados de servidor" => Nuevo

  • Le pedirá que pegue la solicitud de certificado: pego el contenido del archivo exim.csr.

  • CACert le pedirá que confirme el nombre de host.

  • Después de eso, mostrará un certificado en la página web resultante. Coloque el certificado en un nuevo archivo llamado exim.crt

    cd /etc/exim4/ chgrp Debian-exim exim.key chmod g+r exim.key vim /etc/exim4/conf.d/main/000_local (archivo nuevo)

  • e inserte dentro:

    MAIN_LOG_SELECTOR=+tls_cipher +tls_peerdn MAIN_TLS_ENABLE=t

    actualizar-exim4.conf /etc/init.d/exim4 reiniciar

Intento conectarme a mi servidor de correo mediante tls:

gnutls-cli -s -p 587 gestiondecorreos.es
ehlo gestiondecorreos.es
starttls
^D (ctr+d)
  • el resultado del error:

*** Starting TLS handshake
- Certificate type: X.509
- Got a certificate list of 1 certificates.
- Certificate[0] info:
 - subject `EMAIL=eguz*****@gmail.com,CN=server.example.com,OU=IT,O=Vesta Control Panel,L=San Francisco,ST=California,C=US', issuer `EMAIL=eguz*****@gmail.com,CN=server.example.com,OU=IT,O=Vesta Control Panel,L=San Francisco,ST=California,C=US', serial 0x0086e738bec1714309, RSA key 4096 bits, signed using RSA-SHA256, activated `2020-02-04 15:42:00 UTC', expires `2021-02-03 15:42:00 UTC', key-ID `sha256:6095e39dc286060d74d300f494814744d803ad2f5c55587ca38a2d7ed2b58194'
   Public Key ID:
      sha1:5f4b******************
      sha256:6095****************
   Public key's random art:
      +--[ RSA 4096]----+
      |        ..o    .o|
      |       .   o   +.|
      *******************
      |             .oo.|
      +-----------------+

- Status: The certificate is NOT trusted. The certificate issuer is unknown. The name in the certificate does not match the expected.
*** PKI verification of server certificate failed...
*** Fatal error: Error in the certificate.
*** Handshake has failed

No sé por qué aparece CN=server.example.com como asunto.

El archivo /var/log/exim4/mainlog decía:

TLS error on connection from lixxxxxx.members.linode.com ([127.0.0.1]) [xxxxxxxxxxx] (gnutls_handshake): A TLS fatal alert has been received.

En mi linode-vps el dominio principal es gestiondecorreos.es y orbelanet.com es otro dominio en el que estoy ejecutando pruebas smtp.

¡Gracias de antemano! Mikel

Respuesta1

intento de solución:

  • Cambiar nombre de host (en vestacp): (servidor => gestiondecorreos.es, mi dominio principal en servidor):

    /usr/local/vesta/bin/v-change-sys-hostname gestiondecorreos.es

  • Instalando letsencrypt en gestiondecorreos.es:

/usr/local/vesta/bin/v-add-letsencrypt-domain 'admin' gestiondecorreos.es '' 'yes'

  • aplicar el certificado ssl instalado en el paso anterior en vesta, exim y dovecot:

/usr/local/vesta/bin/v-update-host-certificate admin gestiondecorreos.es

  • agregue "update_hostname_ssl='yes'" en /usr/local/vesta/conf/vesta.conf:

    echo "UPDATE_HOSTNAME_SSL='yes'" >> /usr/local/vesta/conf/vesta.conf

Esto le indicará a Vesta que actualice SSL a Vesta, Exim y los demonios dovecot cada vez que se renueve SSL. Esto sucederá automáticamente

la solución

  • al recrear con los pasos anteriores los archivos exim.key, exim.csry exim.crty realizar la prueba del servicio de correo tls con gnutls-cli -s -p 587 gestiondecorreos.eseste tiempo no da error, todo ok.

  • pero al intentar enviar un nuevo correo electrónico nos da el siguiente error:

    H=lixxxxxxxx.linode.com ([127.0.0.1]) [172.xxxxxxxxxx] X=TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128 CV=no rejected MAIL <xxxx@xxxxxxxx>: Helo name contains a ip address (HELO was [127.0.0.1]) and not is valid

  • la solución es que sigo deshabilitando las siguientes líneas en /etc/exim4/exim4.conf:

\# deny condition = ${if eq{$sender_helo_name}{}}
\# message = HELO required before MAIL

\# drop message = Helo name contains a ip address (HELO was $sender_helo_name) and not is valid
\# condition = ${if match{$sender_helo_name}{\N((\d{1,3}[.-]\d{1,3}[.-]\d{1,3}[.-]\d{1,3})|([0-9a-f]{8})|([0-9A-F]{8}))\N}{yes}{no}}
\# condition = ${if match {${lookup dnsdb{>: defer_never,ptr=$sender_host_address}}\}{$sender_helo_name}{no}{yes}}
\# delay = 45s

\# drop condition = ${if isip{$sender_helo_name}}
\# message = Access denied - Invalid HELO name (See RFC2821 4.1.3)
  • reiniciar exim4:

    service exim4 restart

¡Y ahora puedo enviar correos electrónicos sin problema!

información relacionada