Servicio de correo

El remitente usa MUA (Agente de usuario o cliente de correo), y lo envia a través de uno o más MTA (Agentes de transferencia), el último de los cuales lo manejará como MDA (Agente de entrega) y lo dejará en un recipiente mailbox, desde el cual será recogido por el cliente de correo, usualmente a través de un servidor POP3 o IMAP.

Postfix

Es el MTA predeterminado. Es rápido, seguro y fácil de administrar. Es compatible con el MTA sendmail.

Para información sobre Postfix en Dominios Virtuales consultar las referencias.

Instalación

sudo apt-get install postfix

Presionar return en todas las cuestiones de la instalación.

Configuración

Para configurar ejecuta:

sudo dpkg-reconfigure postfix

Mostrará una interfaz de usuario. Selecciona los siguientes valores:
  • Internet site
  • mail.example.com
  • daniel
  • mail.example.com, localhost.localdomain, localhost
  • No
  • 127.0.0.0/8 [::ffff:127.0.0.0]/104[::1]/128 192.168.0/24
  • 0
  • +
  • all
Sustituye el dominio para el cual tu aceptarás correo, red y rango de clase de tu servidor de correo, y el username.

Ahora es un buen momento para decidir que formato de mailbox usarás. Por defecto Postfix usará mbox para el formato mailbox. En lugar de editar el archivo de configuración directamente, puedes usar el comando postconf para configurar los parametros postfix. Los parámetros de configuración se guardan en /etc/postfix/main.cf. Después si deseas reconfigurar un parametro en particular puedes ejecutar el comando o cambiarlo manualmente en el archivo.

Para configurar el formato mailbox en Maildir:

sudo postconf -e 'home_mailbox = Maildir/'

Esto colocará correo nuevo en /home/username/Maildir, necesitarás configurar tu MDA para que use el mismo path.

Autenticación SMTP

SMTP-AUTH permite a un cliente identificarse a través de SASL. TLS es usado para encriptar el proceso de autenticación.
  1. Configura Postfix para SMTP-AUTH usando SASL (Dovecot SASL): [añadir aquí como]
  2. Luego, obtener un certificado para TLS. Puedes obtener el certificado de alguna autoridad de certificación. Pero a diferencia de los clientes web, los clientes SMTP rara vez se quejan del "autofirmado de certificados", por lo que de forma alternativa puedes crear el certificado tu mismo.
  3. Una vez ya tienes el certificado, configura Postfix para TLS en entrada y salida de correo. [añadir aquí como]
Ahora el archivo /etc/postfix/main.cf debe verse como en ../sample/postfix_configuración

La configuración inicial de postfix está completa. Reinicia postfix.

SMTP-AUTH está definida en RFC2554 (ftp://ftp.isi.edu/in-notes/rfc2554.txt). Ella está basada en SASL (ftp://ftp.isi.edu/in-notes/rfc2222.txt). Sin embargo, todavía es necesario configurar la autenticación SASL para poder usar SMTP-AUTH.

Configurando SASL

Postfix soporta dos implementaciones SASL, Cyrus SASL y Dovecot SASL. Para permitir Dovecot SASL el paquete common-dovecot necesitará estar instalado.

sudo apt-get install dovecot-common

Luego necesitarás editar /etc/dovecot/dovecot.conf. En la sección auth default descomenta la opción socket listen y cambia lo que sigue. [añadir aquí como].

Una vez configurado Dovecot, reinicialo:

sudo /etc/init.d/dovecot restart

Postfix-Dovecot

Otra opción de configuración de Postfix para SMTP-AUTH es usando el paquete dovecot-postfix. Este paquete instalará Dovecot y configura Postfix para usarlo para autenticación SASL y para MDA. El paquete también configura Dovecot para IMAP, IMAPS, POP3, y POP3S.

Para instalar el paquete:

sudo apt-get install dovecot-postfix

Tu debes tener ahora un servidor de correo trabajando, pero hay unas pocas opciones que puedes desear customizar. Por ejemplo, el paquete usa el certificado y clave del paquete ssl-cert, y en un entorno de producción debes usar un certificado y clave generado por el host.

Una vez ya tienes customizadas el certificado y la clave, cambia las siguientes opciones en /etc/postfix/main.cf:

smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key

Entonces reinicia Postfix:

sudo /etc/init.d/postfix restart

Testing

La configuración SMTP-AUTH está completa. Ahora vamos a testear.

Para ver si SMTP-AUTH y TLS trabajan apropiadamente, ejecuta:

telnet mail.example.com 25

Después de que has establecido conexión con el servidor de correo postfix, introduce:

ehlo mail.example.com

Si ves las siguientes lineas entre otras, todo es OK: [añadir líneas aquí]

pulsa quit para salir.

Solución de problemas

El paquete postfix se instalará por defecto en un entorno chroot por razones de seguridad.
Esto puede añadir gran complejidad en la solución de problemas.

Para desactivar la operación de chroot localiza la siguiente línea en /etc/postfix/master.cf

smtp    inet    n    -    -    -    -    smtpd

y modificalo como sigue:

smtp    inet    n    -    n    -    -    smtpd

Necesitarás reiniciar Postfix.

sudo /etc/init.d/postfix restart

Archivos de log

Postfix envia todos los mensajes de log a /var/log/mail.log. Sin embargo, los mensajes de warning y error pueden a veces perderse en la salida de log normal, por lo que se loguean a /var/log/mail.err y /var/log/mail.warn respectivamente.

Para ver los mensajes de logs en tiempo real puedes usar el comando tail -f:

tail -f /var/log/mail.err

La cantidad de detalles que son registrados puede incrementarse:
  • para incrementar el logging de la actividad TLS ajusta la opción smtpd_tls_loglevel a un valor entre 1 y 4.
sudo postconf -e 'smtpd_tls_loglevel = 4'
  • si estas teniendo problemas enviando o recibiendo mail desde un dominio especifico, tu puedes añadir el dominio al parámetro debug_peer_list:
sudo postconf -e 'debug_peer_list = problem.domain'
  • puedes incrementar la información de algún proceso demonio editando /etc/postfix/master.cf y añadiendo una -v después de la entrada:
          smtp    unix    -    -    -    -    -    smtp -v

Es importante notar que después de realizar algún cambio de arriba hay que recargar postfix:

sudo /etc/init.d/postfix reload
  • para incrementar la información cuando solucionamos problemas SASL puedes ajustar las siguientes opciones en /etc/dovecot/dovecot.conf
    • auth_debug=yes
    • auth_debug_passwords=yes
Igual que postfix, si cambias Dovecot debes recargar:

sudo /etc/init.d/dovecot reload

Recuerda retornar al nivel por defecto despues de corregir el problema para que no se haga demasiado grande.