Configuración e instalación del servicio de correo Para CentOS7, Postfix y Gmail

Comparte!

Requisitos

Contraseña de aplicación de tu cuenta de Gmail

Referencia: https://support.google.com/accounts/answer/185833?hl=es-419

Para conseguir tu contraseña de aplicación debes realizar el siguiente paso a paso,

  1. Ve a tu Cuenta de Google.
  2. En el panel de navegación izquierdo, haz clic en Seguridad.
  3. En el panel Acceso a Google, haz clic en Contraseñas de la aplicación.
    Nota: Si no puedes acceder a la página, la verificación en dos pasos:
    No está configurada en tu cuenta
    Está configurada para usarla solo con llaves de seguridad
  4. En la parte inferior, haz clic en la opción para seleccionar una app y, luego, selecciona la app que estás utilizando.
  5. Haz clic en Seleccionar dispositivo y elige el dispositivo que usas.
  6. Haz clic en Generar.
  7. Sigue las instrucciones para ingresar la Contraseña de la aplicación (el código de 16 caracteres en la barra amarilla) en el dispositivo.
  8. Haz clic en Listo.

Una vez que hayas terminado, no volverás a ver el código de la Contraseña de la aplicación. No obstante, verás una lista de las apps y los dispositivos para los que generaste las Contraseñas de la aplicación.
Nota: Es posible que no puedas crear una Contraseña de la aplicación para apps menos seguras. Obtén más información sobre cómo permitir el acceso a apps menos seguras.

Dependencias del sistema

CentOS 7

Paquetes

postfix
cyrus-sasl-plain
mailx

Archivos de configuración

configura_correo.sh
Contiene un script para automatizar el proceso de instalación de paquetes y configuración del servicio

Para finalizar la personalización de este script, debes abrirlo en un editor de texto y reemplazar la información indicada entre paréntesis.

*Importante: Este script aún no ha sido probado.

postfix_access.txt
Contiene las credenciales de acceso para la cuenta de Gmail que se encargará de enviar los correos.
Para que el script funcione debes de haber personalizado este archivo con las credenciales que quieres utilizar,

postfix_conf.txt
Contiene los parámetros necesarios que necesita Postfix para operar con Gmail.

Nota:
No olvidar que para que las tareas cron de por sí NO envíen un correo. Se debe agregar al final de la instrucción >/dev/null 2>&1
Ej.
*/5 8-17 * * 1-5 /home/usuario/script.sh >/dev/null 2>&1

*Todos estos archivos están provistos aquí,


https://www.juane.cl/wp-content/uploads/2019/02/conf.zip

Paso a paso

Este paso a paso es una traducción del instructivo encontrado acá,
https://devops.profitbricks.com/tutorials/configure-a-postfix-relay-through-gmail-on-centos-7/

Instalar paquetes

Asegúrate que Postfix, el framework de autenticación SASL y mailx esté instalados.
yum -y install postfix cyrus-sasl-plain mailx

Será necesario reiniciar el servicio de Postfix para que SASL sea detectado.
systemctl restart postfix

Postfix también debe activarse el servicio en el inicio.
systemctl enable postfix

Configurar Postfix

Abre /etc/postfix/main.cf, en tu editor de texto de preferencia, y añade las siguientes lineas al final del archivo.

myhostname = www.dominio.com
myorigin = dominio.com
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous

Guarda los cambios y cierra del editor.

Configura las credenciales SASL para Postfix

Las credenciales de autenticación deben ser ingresadas ahora. Crea el archivo /etc/postfix/sasl_passwd y agrega la siguiente línea:
[smtp.gmail.com]:587 correo:contraseña

El correo y contraseña deben ser reemplazados con las credenciales de Gmail. Luego guarda los cambios y cierra el editor.
Se debe generar la tabla de revisión de Postfix a partir del archivo sasl_passwd recién guardado ejecutando el siguiente comando:
postmap /etc/postfix/sasl_passwd

Como medida de seguridad el archivo sasl_passwd debe estar restringido, para ello se debe ejecutar el siguiente par de comandos,
chown root:postfix /etc/postfix/sasl_passwd*
chmod 640 /etc/postfix/sasl_passwd*

Finalmente hay que recargar el servicio de Postfix
systemctl reload postfix

Probar el Relay

Usa el comando mail para probar el envío de correos.
echo “Escribe un mensaje” | mail -s “Escribe un asunto” [email protected]

Revisar si el destinatario recibió el mensaje. De no haberlo hecho, revisa las instrucciones de troubleshooting.

Comprobar errores de envío

El historial de envíos puede ser consultado y puede ser de gran utilidad para determinar la razón en el caso que un correo no haya sido enviado. Abre en una ventana nueva de consola y ejecuta el siguiente comando,
tail -f /var/log/maillog

En esa ventana verás en tiempo real el resultado de tus pruebas en la medida que las vaya ejecutando.
En caso de querer controlar la cantidad de líneas que este log muestra puedes añadir -n seguido de un número de líneas.
Ej.
tail -f -n100 /var/log/maillog

Asimismo, si además quieres que el proceso se ejecute en segundo plano puedes agregar un & al final del comando.
Ej.
tail -f -n100 /var/log/maillog&

Para cerrarlo deberás trazar el pid (ps -fea | grep tail) del proceso para luego aplicar un kill (pid)

Si los detalles entregados por el log, no son suficientes, puedes agregar las siguientes líneas a /etc/postfix/main.cf
debug_peer_list=smtp.gmail.com
debug_peer_level=3

Para que estos cambios realizados sobre el archivo main.cf surtan efecto, el servicio de Postfix debe ser recargado con el siguiente comando,
systemctl reload postfix

Recuerda eliminar la configuración de depuración cuando hayas resuelto el problema. Ampliar el detalle del log, puede tener un impacto negativo en la performance del servidor, sobre todo en ambiente de producción.

 

Comparte!