Instalación y configuración de un servidor de correos postfix

Índice

Para instalar un servidor de correos postfix en Debian se instala el paquete postfix.

sudo apt update
sudo apt install postfix

Durante la instalación hay que elegir el tipo de servidor, en este caso Internet Site para recibir y enviar correo directamente y el mailname, que debe coincidir con el dominio, en este caso, javi.gonzalonazareno.org.

Para comprobar el funcionamiento del servidor de correos se puede usar la herramienta mail que se instala con el paquete bsd-mailx para enviar un correo a otro usuario del servidor.

sudo apt install bsd-mailx

Con esta herramienta se puede enviar un correo a otro usuario.

mail profesor@localhost

El usuario profesor recibe el correo.

profesor@sanji:/home/usuario$ mail
Mail version 8.1.2 01/15/2001.  Type ? for help.
"/var/mail/profesor": 1 message 1 new
>N  1 usuario@javi.gonz  Mon Feb  3 08:40   17/660   Mail de prueba
& 
Message 1:
From usuario@javi.gonzalonazareno.org  Mon Feb  3 08:40:36 2025
X-Original-To: profesor
To: profesor@javi.gonzalonazareno.org, to@javi.gonzalonazareno.org
Subject: Mail de prueba
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Date: Mon,  3 Feb 2025 08:40:36 +0000 (UTC)
From: usuario <usuario@javi.gonzalonazareno.org>

Y en los logs se guarda la información del envío del correo.

usuario@sanji:~$ sudo tail /var/log/mail.log 
Feb  3 08:40:36 sanji postfix/cleanup[1530]: 7766560FA8: message-id=<20250203084036.7766560FA8@sanji.javi.gonzalonazareno.org>
Feb  3 08:40:36 sanji postfix/qmgr[1444]: 7766560FA8: from=<usuario@javi.gonzalonazareno.org>, size=487, nrcpt=2 (queue active)
Feb  3 08:40:36 sanji postfix/local[1532]: 7766560FA8: to=<profesor@javi.gonzalonazareno.org>, orig_to=<profesor>, relay=local, delay=0.06, delays=0.04/0.01/0/0.01, dsn=2.0.0, status=sent (delivered to mailbox)
Feb  3 08:40:36 sanji postfix/cleanup[1530]: 85BC760FAB: message-id=<20250203084036.85BC760FAB@sanji.javi.gonzalonazareno.org>
Feb  3 08:40:36 sanji postfix/qmgr[1444]: 7766560FA8: removed
Feb  3 08:40:36 sanji postfix/local[1533]: 85BC760FAB: to=<usuario@javi.gonzalonazareno.org>, relay=local, delay=0.01, delays=0.01/0/0/0, dsn=2.0.0, status=sent (delivered to mailbox)
Feb  3 08:40:36 sanji postfix/qmgr[1444]: 85BC760FAB: removed

Enviar correos desde el servidor a correos de Internet

Para poder enviar mensajes a correos de Internet, es necesario configurar el parámetro relayhost del fichero /etc/postfix/main.cf para que el servidor de correo reenvíe el mensaje al servidor de correos externo de la red.

relayhost = mail.gonzalonazareno.org

Con la herramienta mail se puede enviar un mensaje a un correo de Internet.

mail correo@javihuete.site
Subject: Mensaje de prueba
Esto es un mensaje de prueba enviado desde el servidor de correo electrónico instalado en Sanji
Cc: 

Recibir correos desde correos de Internet

Para poder recibir correos desde Internet hay que habilitar una regla de DNAT que redirija el tráfico de la máquina router al servidor de correos.

iptables -t nat -A PREROUTING -p tcp --dport 25 -i ens3 -j DNAT --to 192.168.0.3:25
iptables-save > /etc/iptables/rules.v4

Además, en la vista externa del DNS hay que añadir un registro MX.

@       IN      MX      10      luffy.javi.gonzalonazareno.org.

Como en esta red, además, hay otro servidor de correo externo, el dominio se debe añadir en el fichero de configuración de este servidor, bajo el parámetro relay_domains.

Tras seguir estos pasos, se pueden enviar correos electrónicos a direcciones de correo de Internet desde el servidor de correos local.

mail profesor@profesor.org
Subject: Ejercicio 4 - Taller 1       
Hola, José Domingo.
Te envío este correo como parte del ejercicio 4 del taller 1.
Un saludo.
Cc: 
comments powered by Disqus

Relacionados

Gestión de redes en Openstack

En este post se muestra un caso práctica de gestión de redes en un escenario de OpenStack formado por una instancia que funciona como router y otra máquina, conectada a una red interna, que cuenta con un servidor web.

Leer

Instalación de Jenkins usando Docker como runner

En primer lugar, en un equipo con Docker instalado instalamos también Jenkins.

Leer

Despliegue de una aplicación con contenido persistente en Kubernetes

Para hacer persistente el contenido de una aplicación a los cambios de versiones en despliegues en Kubernetes hay que tener en cuenta dónde la aplicación almacena los datos. En este sentido, una aplicación puede almacenar los datos en el propio sistema donde se ejecuta o en una base de datos externa. Según esta configuración de la propia aplicación, el despliegue se hará de una de las formas que se recogen en este post.

Leer