Categories: Linux

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.

Oscar Meza

Share
Published by
Oscar Meza

Recent Posts

Cambiar la hora en RedHat 7

Para cambiar la hora en RedHat 7 usamos los siguientes comandos en una pantalla de…

56 años ago

Errores comunes al elegir Hosting (y cómo evitarlos)

Elegir un hosting parece sencillo… hasta que el sitio es lento, se cae o no…

56 años ago

Hosting Barato vs Hosting Premium: ¿cuál conviene realmente?

Elegir un hosting no es solo cuestión de precio. Muchos proyectos empiezan con un Hosting…

56 años ago

Como convertir videos mkv a mp4 en GNU Linux

Para convertir videos de mkv a mp4 en GNU Linux es súper fácil, puedes utilizar…

56 años ago

Permitir conexiones a ssh de ciertas IPs con iptables

Esta es una forma para permitir las conexiones a nuestro servidor ssh solo cuando vienen…

56 años ago

Como salvar las reglas creadas en IPTables en Ubuntu

La forma mas sencilla de salvar todas las reglas que has configurado en IPTables fue…

56 años ago