Autenticación SMTP con Exim4 en Debian

Esta página describe cómo configurar Exim4 para actuar de servidor SMTP con autenticación SASL, con TLS o SSL. Esta configuración sirve solo a quienes tienen un servidor con FQDN que recibe correo electrónico.


Instalación

Instala los paquetes sasl2-bin y libsasl2-modules,

# apt-get install sasl2-bin libsasl2-modules

Edita /etc/default/saslauthd y modifica la variable START a,

START=yes

Reinicia el servidor de autenticación SASL,

# /etc/init.d/saslauthd restart

Edita /etc/exim4/conf.d/main/03_exim4-config_tlsoptions y agrega la línea,

MAIN_TLS_ENABLE = 1

al inicio del archivo,

### main/03_exim4-config_tlsoptions
#################################

# TLS/SSL configuration.
# See /usr/share/doc/exim4-base/README.Debian.gz for explanations.
MAIN_TLS_ENABLE = 1

Edita /etc/exim4/conf.d/auth/30_exim4-config_examples y descomenta la sección login_saslauthd_server,

 login_saslauthd_server:
   driver = plaintext
   public_name = LOGIN
   server_prompts = "Username:: : Password::"
   # don't send system passwords over unencrypted connections
   server_condition = ${if saslauthd{{$auth1}{$auth2}}{1}{0}}
   server_set_id = $auth1
#   .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
#   server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
#   .endif

Genera un certificado de seguridad, por ejemplo,

# /usr/share/doc/exim4-base/examples/exim-gencert
Country Code (2 letters) [US]:CL
State or Province Name (full name) []:.
Locality Name (eg, city) []:Mi cuidad
Organization Name (eg, company; recommended) []:Mi organizacion
Organizational Unit Name (eg, section) []:Mi unidad
Server name (eg. ssl.domain.tld; required!!!) []:smtp.servidor.debian
Email Address []:postmaster@servidor.debian

Los archivos exim.crt y exim.key son guardados en /etc/exim4/. El certificado es válido por tres años.

Agrega el usuario Debian-exim al grupo sasl,

# addgroup Debian-exim sasl

Actualiza la configuración de Exim,

# update-exim4.conf

y reinicia exim4,

# /etc/init.d/exim4 restart

Certificados de validez más larga

Si deseas cambiar el tiempo de validez del certificado, edita /usr/share/doc/exim4-base/examples/exim-gencert y modifica la variable DAYS, por ejemplo,

DAYS=3652

(diez años). Genera nuevamente el certificado y reinicia exim4.

Probar conexiones SMTP

Prueba una conexión SMTP (puerto 25),

$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 servidor.debian ESMTP Exim 4.63 Tue, 01 May 2007 14:51:23 -0400

Escribe "EHLO ftp.cl.debian.org",

EHLO ftp.cl.debian.org
250-ftp.cl.debian.org Hello root at localhost [127.0.0.1]
250-SIZE 52428800
250-PIPELINING
250-AUTH LOGIN
250-STARTTLS
250 HELP

Las líneas,

250-AUTH LOGIN
250-STARTTLS

indican que la autenticación SMTP con TLS está funcionando.

Autenticación con SSL (SSMTP)

El protocolo TLS es superior a SSL, pero tiene la desventaja de usar el puerto SMTP (25) para negociar la autenticacion. Muchos ISP bloquean justamente el puerto 25 saliente para evitar el envío de SPAM por números IP dinámicos asignados internamente. Por eso sucede que clientes de un ISP no pueden establecer una conexión SMTP con un servidor externo, aun usando autenticación, y se ven obligados a usar el servidor SMTP del ISP. Sin embargo, los ISP raramente bloquean el puerto 465 correspondiente a SMTP con SSL (SSMTP). Por eso puede ser ventajoso manejar la autenticacion por el puerto 465.

Primero, instala la versión pesada de Exim4,

# apt-get install exim4-daemon-heavy

El paquete exim4-daemon-light será removido. La versión pesada es necesaria porque es la versión compilada con soporte SSL.

Edita /etc/exim4/conf.d/main/03_exim4-config_tlsoptions y agrega la línea,

tls_on_connect_ports = 465

justo después de habilitar TLS,

# TLS/SSL configuration.
MAIN_TLS_ENABLE = 1
tls_on_connect_ports = 465

Edita /etc/default/exim4 y modifica,

SMTPLISTENEROPTIONS='-oX 465:25 -oP /var/run/exim4/exim.pid'

Actualiza la configuración de Exim,

# update-exim4.conf

y reinicia exim4,

# /etc/init.d/exim4 restart

Usando el servidor SMTP desde clientes de correo electrónico

Clientes de correo electrónico, como Evolution, Thunderbird, Icedove o Outlook (Windows) se configuran tal que el servidor saliente requiera autenticación con TLS (puerto 25) o SSL (puerto 465). Por ejemplo,

Icedove

autenticacion-smtp-icedove.png

Evolution

autenticacion-smtp-evolution.png

EximSMTPAuth (última edición 2009-09-13 01:11:28 efectuada por RicardoYanez)