Configurar el reenvío (relay) en Sendmail y probarlo con telnet

Los reenviadores de correo son muy útiles en las empresas, y es que diferentes equipos de red puedan enviar mensajes de alerta, notificaciones, problemas, etc.

El siguiente proceso lo he ejecutado en un servidor Ubuntu Server 20.04, pero aplica para Debian o Linux Mint, también utilizando los parámetros de configuración de una cuenta Office365.

Instalar Sendmail

Para instalar Sendmail ejecutamos los siguientes comandos.

[simterm]$ sudo apt update [/simterm]

[simterm]$ sudo apt install sendmail mailutils sendmail-bin sasl-2bin [/simterm]

Ejecutamos Sendmailconfig y respondemos «Y» a todo.

[simterm]$ sudo sendmailconfig [/simterm]

Luego configuramos la autenticación con la cuenta de correos que utilizaremos con el reenvio

[simterm]$ sudo su [/simterm]

[simterm]# mkdir -m 700 /etc/mail/authinfo/ [/simterm]

[simterm]# cd /etc/mail/authinfo/ [/simterm]

[simterm]# nano office365-auth [/simterm]

Dentro de este archivo agregaremos lo siguiente y sustituye según tu caso.

AuthInfo: "U:root" "I:YOUR OFFICE365 EMAIL ADDRESS" "P:YOUR PASSWORD"

Supongamos que es la cuenta de correo Office365 cuentadecorreoreenviador@dominio.com la linea quedaria asi.

AuthInfo: "U:cuentadecorreoreenviador@dominio.com" "I:cuentadecorreoreenviador@dominio.com" "P:password"

Luego ejecutamos el comando.

# makemap hash office365-auth < office365-auth

Configurar Sendmail

Para configurar Sendmail primero debemos editar el archivo /etc/mail/sendmail.mc agregando el siguiente contenido justo en la siguiente linea del primer MAILER que encuentres.

define(`SMART_HOST',`[smtp.office365.com]')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl
define(`confAUTH_OPTIONS', `A p')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash -o /etc/mail/authinfo/office365-auth.db')dnl

Busca la linea siguiente.

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl 

Cambia la IP localhost o «127.0.0.1» por la IP de tu server, si esta es por ejemplo «192.168.0.100», la linea deberia quedar asi.

DAEMON_OPTIONS(`Port=smtp,Addr=192.168.0.100, Name=MTA')dnl 

Ahora crea el archivo /etc/mail/relay-domains y en este escribe las direcciones IP una por linea de los servidores o equipos que podran utilizar el reenviador de emails para enviar correos, por ejemplo, 192.168.0.201.

Ahora es hora de compilar los cambios y reiniciar el demonio de sendmail con los siguientes comandos.

[simterm]# make -C /etc/mail [/simterm]

[simterm]# systemctl restart sendmail [/simterm]

[simterm]# systemctl status sendmail [/simterm]

Probar el reenvío de correos con telnet

Desde el equipo donde piensas enviar correos ejecuta el siguiente comando.

[simterm]$ telnet 192.168.0.100 25 [/simterm]

Donde «192.168.0.100» es la IP del servidor sendmail reenviador y «25» el puerto SMTP donde escucha sendmail.

[simterm]$ telnet 192.168.0.100 25 [/simterm]

Luego de conectar con telnet ejecuta el siguiente comando.

[simterm] helo server [/simterm]

El servidor te va a contestar algo parecido a lo siguiente.

250 emailrelay Hello IDENT:0@[192.168.0.200], pleased to meet you

Luego ejecuta el comando.

[simterm] mail from: cuentadecorreoreenviador@dominio.com [/simterm]

Sustituye «cuentadecorreoreenviador@dominio.com» por la cuenta que pusiste en el archivo office365-auth, al dar Enter el servidor debería responder algo parecido a lo siguiente.

250 2.1.0 cuentadecorreoreenviador@dominio.com... Sender ok

Ahora ejecuta el comando siguiente

[simterm] rcpt to: cuentadealguien@gmail.com [/simterm]

Sustituye «cuentadealguien@gmail.com» por la cuenta de correo a la que quieres enviar una prueba, al dar Enter el servidor deberia responder algo parecido a lo siguiente.

250 2.1.5 cuentadealguien@gmail.com... Recipient ok

Si la respuesta es negativa, es porque no agregaste la IP del equipo desde el que estas ejecutando telnet en el archivo «relay-domains», luego ejecuta el siguiente comando.

[simterm] data [/simterm]

Ahora escribe todo el contenido que ira en el correo, puede ser algo tan simple como «Correo de prueba» presionas Enter y luego escribes un «.» y presionas nuevamente Enter para finalizar, el servidor deberia responder con algo parecido a lo siguiente para confirmar que el correo ya fue enviado.

250 2.0.0 19GLNXqu013938 Message accepted for delivery

Listo, con esto solo resta que verifiques que recibiste el correo e ir agregando los otros equipos o redes que podran enviar correos a traves de tu nuevo reenviado.

Deja un comentario