Cómo instalar y configurar Postfix en Ubuntu 22.04

Introducción
Postfix es un popular agente de transferencia de correo (MTA) de código abierto que se puede utilizar para enrutar y entregar correo electrónico en un sistema Linux. Se estima que alrededor del 25 % de los servidores de correo públicos en Internet utilizan Postfix.
En esta guía, aprenderá a instalar y configurar Postfix en un servidor Ubuntu 22.04. Luego, probará que Postfix puede enrutar correctamente el correo instalando s-nail
un Agente de usuario de correo (MUA), también conocido como cliente de correo electrónico .
Tenga en cuenta que el objetivo de este tutorial es ayudarle a poner en funcionamiento Postfix rápidamente con solo algunas funciones de correo electrónico básicas. No tendrá un servidor de correo electrónico con todas las funciones al final de esta guía, pero tendrá algunos de los componentes básicos de dicha configuración para ayudarlo a comenzar.
Prerrequisitos
Configurar y mantener su propio servidor de correo es complicado y requiere mucho tiempo. Para la mayoría de los usuarios, resulta más práctico confiar en un servicio de correo pago. Si está considerando ejecutar su propio servidor de correo, le recomendamos que revise este artículo sobre por qué no debería hacerlo .
Si está seguro de que desea seguir esta guía para instalar y configurar Postfix, primero debe tener lo siguiente:
- Un servidor con Ubuntu 22.04 para que funcione como servidor de correo Postfix. Este servidor debe tener un usuario no root con
sudo
privilegios y un firewall configurado con UFW. Puede seguir nuestra guía de configuración inicial de servidores Ubuntu 22.04 para configurarlo. - Un nombre de dominio completo que apunte a su servidor Ubuntu 22.04. Puede encontrar ayuda para configurar su nombre de dominio con DigitalOcean siguiendo nuestra documentación sobre redes DNS y dominios . Tenga en cuenta que si planea acceder al correo desde una ubicación externa, deberá asegurarse de tener también un registro MX que apunte a su servidor de correo.
Tenga en cuenta que este tutorial supone que está configurando un host que tiene el FQDN de mail.example.com
. Siempre que sea necesario, asegúrese de cambiar example.com
o mail.example.com
reflejar su propio FQDN.
Paso 1: Instalación de Postfix
Postfix está incluido en los repositorios predeterminados de Ubuntu, por lo que puedes instalarlo con APT.
Para comenzar, actualice su apt
caché de paquetes local:
- sudo apt update
Luego, instale el postfix
paquete con el siguiente comando. Tenga en cuenta que aquí pasamos la DEBIAN_PRIORITY=low
variable de entorno a este comando de instalación. Esto hará que el proceso de instalación le solicite que configure algunas opciones adicionales:
- sudo DEBIAN_PRIORITY=low apt install postfix
Este proceso de instalación abrirá una serie de mensajes interactivos. Para los fines de este tutorial, utilice la siguiente información para completar los mensajes:
- ¿Tipo general de configuración de correo?: Para esto elija Sitio de Internet ya que coincide con nuestras necesidades de infraestructura.
- Nombre de correo del sistema : este es el dominio base que se utiliza para construir una dirección de correo electrónico válida cuando solo se proporciona la parte de la cuenta de la dirección. Por ejemplo, supongamos que el nombre de host de su servidor es . Probablemente desee configurar el nombre de correo del sistema como , de modo que, dado el nombre de usuario , Postfix use la dirección .
mail.example.com
example.com
user1
user1@example.com
- Destinatario de correo raíz y administrador de correo : esta es la cuenta de Linux a la que se reenviará el correo dirigido a
root@
ypostmaster@
. Utilice su cuenta principal para esto. En este caso de ejemplo, sammy . - Otros destinos para los que aceptar correo : aquí se definen los destinos de correo que aceptará esta instancia de Postfix. Si necesita agregar otros dominios que este servidor será responsable de recibir, agréguelos aquí. De lo contrario, el valor predeterminado será suficiente.
- ¿Forzar actualizaciones sincrónicas en la cola de correo?: Dado que probablemente esté utilizando un sistema de archivos con registro, acepte No aquí.
- Redes locales : esta es una lista de las redes para las que su servidor de correo está configurado para retransmitir mensajes. La configuración predeterminada funcionará en la mayoría de los casos. Sin embargo, si decide modificarla, asegúrese de ser muy restrictivo en lo que respecta al rango de red.
- Límite de tamaño del buzón : se puede utilizar para limitar el tamaño de los mensajes. Si se configura en esta opción,
0
se deshabilitan todas las restricciones de tamaño. - Carácter de extensión de dirección local : este es el carácter que se puede utilizar para separar la parte normal de la dirección de una extensión (se utiliza para crear alias dinámicos). El valor predeterminado
+
funcionará para este tutorial. - Protocolos de Internet a utilizar : seleccione si desea restringir la versión de IP que admite Postfix. Para los fines de este tutorial, seleccione todos los protocolos .
Para ser explícito, estas son las configuraciones utilizadas en esta guía:
- ¿Tipo general de configuración de correo? : Sitio de Internet
- Nombre del correo del sistema :
example.com
(nomail.example.com
) - Destinatario de correo raíz y administrador de correo : el nombre de usuario de su cuenta principal de Linux ( sammy en nuestros ejemplos)
- Otros destinos para aceptar correo :
$myhostname, example.com, mail.example.com, localhost.example.com, localhost
- ¿Forzar actualizaciones sincrónicas en la cola de correo? : No
- Redes locales :
127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
- Límite de tamaño del buzón :
0
- Carácter de extensión de dirección local :
+
- Protocolos de Internet a utilizar : todos
Nota : Si alguna vez necesita volver a cambiar esta configuración, puede hacerlo escribiendo:
- sudo dpkg-reconfigure postfix
Las indicaciones se completarán previamente con sus respuestas anteriores.
Cuando se le solicite reiniciar los servicios, acepte los valores predeterminados y seleccione OK
.
Cuando finalice el proceso de instalación, estará listo para realizar algunas actualizaciones a su configuración de Postfix.
Paso 2: Cambiar la configuración de Postfix
Ahora puede ajustar algunas configuraciones que el proceso de instalación del paquete no le solicitó. Muchas de las configuraciones de Postfix están definidas en el /etc/postfix/main.cf
archivo. En lugar de editar este archivo directamente, puede usar postconf
el comando de Postfix para consultar o establecer configuraciones.
Para comenzar, configure la ubicación del buzón de correo del usuario de Ubuntu que no sea root. En esta guía, utilizaremos el formato Maildir , que separa los mensajes en archivos individuales que luego se mueven entre directorios según la acción del usuario. La opción alternativa que no se cubre en esta guía es el formato mbox , que almacena todos los mensajes en un solo archivo.
Establezca la home_mailbox
variable en Maildir/
. Más adelante, creará una estructura de directorio con ese nombre dentro del directorio de inicio de su usuario. Configure home_mailbox
escribiendo:
- sudo postconf -e 'home_mailbox= Maildir/'
A continuación, establezca la ubicación de la virtual_alias_maps
tabla, que asigna cuentas de correo electrónico arbitrarias a cuentas del sistema Linux. Ejecute el siguiente comando, que asigna la ubicación de la tabla a un archivo de base de datos hash llamado /etc/postfix/virtual
:
- sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'
Ahora que ha definido la ubicación del archivo de mapas virtuales en su main.cf
archivo, puede crear el archivo en sí y comenzar a asignar cuentas de correo electrónico a cuentas de usuario en su sistema Linux. Cree el archivo con su editor de texto preferido; en este ejemplo, usaremos nano
:
- sudo nano /etc/postfix/virtual
Enumere todas las direcciones para las que desea aceptar correo electrónico, seguidas de un espacio en blanco y el usuario de Linux al que desea que se envíe ese correo.
Por ejemplo, si desea aceptar correos electrónicos en y y desea que esos correos electrónicos se envíen al usuario sammy de Linux, puede configurar su archivo de la siguiente manera:contact@example.com
admin@example.com
/etc/postfix/virtual
contact@example.com sammyadmin@example.com sammy
Después de haber asignado todas las direcciones a las cuentas de servidor correspondientes, guarde y cierre el archivo. Si utilizó nano
, haga esto presionando CTRL + X
, Y
y luego ENTER
.
Aplique la asignación escribiendo:
- sudo postmap /etc/postfix/virtual
Reinicie el proceso de Postfix para asegurarse de que se hayan aplicado todos los cambios:
- sudo systemctl restart postfix
Suponiendo que haya seguido la guía de configuración inicial del servidor , habrá configurado un firewall con UFW. Este firewall bloqueará las conexiones externas a los servicios de su servidor de forma predeterminada, a menos que dichas conexiones estén explícitamente permitidas, por lo que deberá agregar una regla de firewall para permitir una excepción para Postfix.
Puede permitir conexiones al servicio escribiendo:
- sudo ufw allow Postfix
Con esto, Postfix está configurado y listo para aceptar conexiones externas. Sin embargo, aún no está listo para probarlo con un cliente de correo. Antes de poder instalar un cliente y usarlo para interactuar con el correo que se entrega a su servidor, deberá realizar algunos cambios en la configuración de su servidor Ubuntu.
Paso 3: Instalación del cliente de correo e inicialización de la estructura Maildir
Para poder interactuar con el correo que se entrega, este paso lo guiará a través del proceso de instalación del s-nail
paquete. Se trata de una variante del xmail
cliente BSD con muchas funciones que puede manejar el formato Maildir correctamente.
Sin embargo, antes de instalar el cliente, sería prudente asegurarse de que su MAIL
variable de entorno esté configurada correctamente. s-nail
buscará esta variable para determinar dónde encontrar el correo de su usuario.
Para garantizar que la MAIL
variable esté configurada independientemente de cómo acceda a su cuenta (ya sea a través de ssh
, su
, su -
o sudo
, por ejemplo), deberá configurar la variable en el /etc/bash.bashrc
archivo y agregarla a un archivo dentro /etc/profile.d
para asegurarse de que esté configurada para todos los usuarios de manera predeterminada.
Para agregar la variable a estos archivos, escriba:
- echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh
Para leer la variable en su sesión actual, obtenga el /etc/profile.d/mail.sh
archivo:
- source /etc/profile.d/mail.sh
Una vez completado esto, instale el s-nail
cliente de correo electrónico con APT:
- sudo apt install s-nail
Antes de ejecutar el cliente, hay algunas configuraciones que debes ajustar. Abre el /etc/s-nail.rc
archivo en tu editor:
- sudo nano /etc/s-nail.rc
En la parte inferior del archivo, agregue las siguientes opciones:
/etc/s-nail.rc
. . .set emptystartset folder=Maildirset record=+sent
Esto es lo que hacen estas líneas:
set emptystart
: permite al cliente abrir incluso con la bandeja de entrada vacíaset folder=Maildir
: establece elMaildir
directorio en lafolder
variable internaset record=+sent
crea unsent
archivo mbox para almacenar el correo enviado dentro de cualquier directorio configurado comofolder
variable, en este casoMaildir
Guarde y cierre el archivo cuando haya terminado. Ahora está listo para inicializar la estructura Maildir de su sistema.
Una forma rápida de crear la estructura Maildir dentro de su directorio personal es enviarse un correo electrónico con el s-nail
comando. Debido a que el sent
archivo solo estará disponible una vez que se haya creado Maildir, debe desactivar la escritura en él para este correo electrónico inicial. Para ello, pase la -Snorecord
opción.
Envíe el correo electrónico mediante la canalización de una cadena al s-nail
comando. Ajuste el comando para marcar a su usuario de Linux como destinatario:
- echo 'init' | s-nail -s 'init' -Snorecord sammy
Nota : Es posible que obtengas la siguiente respuesta:
OutputCan't canonicalize "/home/sammy/Maildir"
Esto es normal y puede que solo aparezca al enviar este primer mensaje.
Puede comprobar si se creó el directorio buscando su ~/Maildir
directorio:
- ls -R ~/Maildir
Verá que se ha creado la estructura del directorio y que hay un nuevo archivo de mensaje en el ~/Maildir/new
directorio:
Output/home/sammy/Maildir/:cur new tmp/home/sammy/Maildir/cur:/home/sammy/Maildir/new:1650294586.Vfc01I7e11dM993645.mail.example.com/home/sammy/Maildir/tmp:
Ahora que se ha creado la estructura del directorio, está listo para probar el s-nail
cliente viendo el init
mensaje que envió y enviando un mensaje a una dirección de correo electrónico externa.
Paso 4: Prueba del cliente
Para abrir el cliente, ejecute el s-nail
comando:
- s-nail
En tu consola verás una bandeja de entrada rudimentaria con el init
mensaje en espera:
Outputs-nail version v14.9.15. Type `?' for help"/home/sammy/Maildir": 1 message 1 newN 1 sammy@example.com 2022-04-18 15:09 14/452 init
Pulse ENTER
para visualizar el mensaje:
Output[-- Message 1 -- 14 lines, 452 bytes --]:Date: Mon, 18 Apr 2022 15:09:46 +0000To: sammy@example.comSubject: initMessage-Id: 20220418150946.EE6897E11A@@mail.example.comFrom: sammy@example.cominit
Puedes volver a la lista de mensajes escribiendo h
y luego ENTER
:
- h
OutputR 1 sammy@example.com 2022-04-18 15:09 14/452 init
Observe que el mensaje ahora tiene un estado de R
, lo que indica que ha sido leído.
Como este mensaje no es muy útil, puedes eliminarlo presionando d
y luego ENTER
:
- d
Para volver a la terminal, escriba q
y luego ENTER
:
- q
Como prueba final, comprueba si s-nail
puedes enviar mensajes de correo electrónico correctamente. Para ello, puedes enviar el contenido de un archivo de texto al s-nail
proceso, como hiciste con el init
mensaje que enviaste en el paso anterior.
Comience escribiendo un mensaje de prueba en un editor de texto:
- nano ~/test_message
Dentro, ingresa el texto que deseas enviar:
~/mensaje_de_prueba
Hello,This is a test. Please confirm receipt!
Guarde y cierre el archivo después de escribir su mensaje.
Luego, use el cat
comando para enviar el mensaje al s-nail
proceso. Puede hacerlo con el siguiente ejemplo, que utiliza estas opciones:
-s
:Esto define la línea de asunto del mensaje de correo electrónico.-r
: Un cambio opcional en el campo “De:” del correo electrónico. De manera predeterminada, se utilizará el usuario de Linux con el que inició sesión para completar este campo. La-r
opción le permite anular esto con una dirección válida, como una de las que definió en el/etc/postfix/virtual
archivo. Para ilustrarlo, el siguiente comando utilizacontact@example.com
Además, asegúrese de cambiar a una dirección de correo electrónico válida a la que tenga acceso:user@email.com
- cat ~/test_message | s-nail -s 'Test email subject line' -r contact@example.com user@email.com
Luego, dirígete a la bandeja de entrada de la dirección de correo electrónico a la que enviaste el mensaje. Verás tu mensaje allí casi de inmediato.
Nota : Si el mensaje no está en tu bandeja de entrada, es posible que haya sido enviado a tu carpeta de correo no deseado.
Puede ver los mensajes enviados dentro de su s-nail
cliente. Vuelva a iniciar el cliente interactivo:
- s-nail
Desde el cliente de correo electrónico, vea los mensajes enviados escribiendo:
- file +sent
Verás un resultado como este:
Output+[/home/sammy/Maildir/]sent: 1 message 1 new▸N 1 To contact@example.com 2022-04-18 15:12 10/211 Test email subject line
Puede administrar el correo enviado utilizando los mismos comandos que utiliza para el correo entrante.
Conclusión
Ahora tiene Postfix configurado en su servidor Ubuntu 22.04. Administrar servidores de correo electrónico puede ser una tarea difícil para los nuevos administradores de sistemas, pero con esta configuración, debería tener suficiente funcionalidad de correo electrónico MTA para comenzar.
Deja una respuesta