Cómo instalar y configurar Postfix en Ubuntu 20.04 LTS

1 mar 2021 9 min di lettura
Cómo instalar y configurar Postfix en Ubuntu 20.04 LTS
Indice dei contenuti

Introducción

Postfix es un conocido 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 ejecutan Postfix.

En esta guía, aprenderá cómo instalar y configurar Postfix en un servidor Ubuntu 20.04 LTS Focal Fossa. Luego, probará que Postfix puede enrutar correctamente el correo instalando s-nail a Mail User Agent (MUA), también conocido como cliente de correo electrónico.

Este tutorial es para ayudarlo a poner en funcionamiento Postfix rápidamente con solo algunas funciones básicas de correo electrónico. Al final de esta guía, no tendrá un servidor de correo con todas las funciones, pero tendrá algunos de los componentes principales de esa configuración para ayudarlo a comenzar.

Prerrequisitos

Para seguir esta guía, necesitará lo siguiente:

  • Un servidor que ejecuta Ubuntu 20.04 LTS para funcionar como servidor de correo Postfix. Este servidor debe tener un usuario no root con privilegios sudo y un firewall configurado con UFW.
  • Un nombre de dominio totalmente calificado que apunta a su servidor Ubuntu 20.04. Tenga en cuenta que si planea acceder a su correo desde una ubicación externa, deberá asegurarse de tener un registro MX que también apunte a su servidor de correo.

Tenga en cuenta que este tutorial asume que está configurando un host con el FQDN de mail.example.com. Si es necesario, asegúrese de cambiar example.com o mail.example.com por su nombre de dominio completo.

Si desea instalar Postfix en un servidor remoto, continúe leyendo, de lo contrario, omita el primer párrafo "Conexión al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:

ssh root@IP_DEL_SERVER

A continuación, deberá ingresar la contraseña del usuario root.

Si no usa el usuario raíz, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie la raíz a su nombre de usuario:

ssh nome_utente@IP_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Instalar Postfix

Postfix está incluido en los repositorios predeterminados de Ubuntu, por lo que puede instalarlo con APT.

Para comenzar, actualice la caché del paquete apt

sudo apt update

Luego instale el postfix con el siguiente comando. Tenga en cuenta que aquí pasamos la variable de entorno DEBIAN_PRIORITY=low en este comando de instalación. Esto permitirá que el proceso de instalación configure algunas opciones adicionales:

sudo DEBIAN_PRIORITY=low apt install postfix

Este proceso de instalación abrirá una serie de instrucciones interactivas. Para los propósitos de este tutorial, use la siguiente información para completar las indicaciones:

  • ¿Tipo general de configuración de correo?: Para ello, elija Sitio de Internet según corresponda a las necesidades de nuestra infraestructura.
  • Nombre de correo del sistema: este es el dominio base utilizado para crear una dirección de correo electrónico válida cuando solo se proporciona la parte de la cuenta de la dirección. Por ejemplo, suponga que el nombre de host de su servidor es mail.example.com. Probablemente desee establecer el nombre de correo de su sistema de esta manera en example.com, por lo que Postfix usará la dirección [email protected].
  • Destinatario de correo root y postmaster: esta es la cuenta de Linux a la que se reenviará el root@ y postmaster@ Utilice su cuenta principal para esto. En este caso de ejemplo, noviello.
  • Otros destinos para aceptar correo: define 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 registrado por diario, seleccione No aquí.
  • Redes locales: esta es una lista de las redes para las que el servidor de correo está configurado para el reenvío de mensajes. El valor predeterminado funcionará para la mayoría de los escenarios. Si elige cambiarlo, asegúrese de ser muy restrictivo con respecto al alcance de la red.
  • Límite de tamaño del buzón: se puede utilizar para limitar el tamaño de los mensajes. Establecerlo en 0 deshabilita las restricciones dimensionales.
  • Carácter de extensión de dirección local: este es el carácter que se puede usar para separar la parte normal de la dirección de una extensión (usado para crear alias dinámicos). El + predeterminado funcionará para este tutorial.
  • Protocolos de Internet a utilizar: elija si desea limitar la versión de IP admitida por Postfix. Para los propósitos de este tutorial, seleccione Todo.

Por ejemplo, estas son las configuraciones utilizadas en esta guía:

  • ¿Tipo general de configuración de correo?: Sitio web
  • Nombre de correo del sistema: example.com (no mail.example.com )
  • Destinatario de correo raíz y postmaster: el nombre de usuario de su cuenta principal de Linux ( noviello en mi caso)
  • Otros destinos para los que 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
Notasudo dpkg-reconfigure postfix

Al final del proceso de instalación, estará listo para realizar algunas actualizaciones en la configuración de Postfix.

Cambiar la configuración de Postfix

Ahora puede ajustar algunas configuraciones que el proceso de instalación del paquete no solicitó. Muchas de las opciones de configuración de Postfix se definen en el archivo /etc/postfix/main.cf En lugar de editar este archivo directamente, puede usar el postconf para consultar o establecer los parámetros de configuración.

Para comenzar, configure la ubicación del buzón de correo del usuario de Ubuntu no root. En esta guía, usaremos 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 variable home_mailbox Maildir/. A continuación, creará una estructura de directorio con ese nombre dentro del directorio de inicio del usuario. Configure escribiendo home_mailbox:

sudo postconf -e 'home_mailbox= Maildir/'

A continuación, establezca la ubicación de la virtual_alias_maps, que asigna cuentas de correo electrónico arbitrarias a cuentas del sistema Linux. Ejecute el siguiente comando, que asigna la ruta 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, 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 favorito; 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 el correo.

Por ejemplo, si desea aceptar correos electrónicos en [email protected] y [email protected] y desea que esos correos electrónicos se envíen al usuario novato de Linux, puede configurar el archivo de esta manera:

[email protected] noviello
 [email protected] noviello
/etc /postfix /virtual

Una vez que haya asignado todas las direcciones a las cuentas de servidor adecuadas, guarde y cierre el archivo. Si usó nano, presione CTRL + X, Y, luego ENTER.

Aplique el mapeo 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 instalado y configurado un firewall con UFW. Esto bloqueará las conexiones externas a los servicios en su servidor de forma predeterminada a menos que esas 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 este Postfix está configurado y listo para aceptar conexiones externas. Sin embargo, todavía no está listo para probarlo con un cliente de correo electrónico. Antes de que pueda instalar un cliente y utilizarlo para interactuar con el correo entregado en el servidor, debe realizar algunos cambios en la configuración del servidor de Ubuntu.

Instale el cliente de correo e inicialice el árbol de Maildir

Para interactuar con el correo entregado, este paso lo guiará a través del proceso de instalación del paquete s-nail Esta es una variante rica en xmail cliente BSD xmail que puede manejar el formato Maildir correctamente.

Sin embargo, antes de instalar el cliente, sería prudente asegurarse de que la MAIL esté configurada correctamente. s-nail buscará esta variable para averiguar dónde encontrar correo para su usuario.

Para asegurarse de que la MAIL esté configurada independientemente de cómo se acceda a la cuenta, ya sea por ssh, su, su - o sudo, por ejemplo, debe configurar la variable en el /etc/bash.bashrc y agregarla a un archivo dentro de /etc/profile.d para asegurarse de que esté configurado para todos los usuarios de forma 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 la sesión actual, ejecute el comando fuente del archivo /etc/profile.d/mail.sh

source /etc/profile.d/mail.sh

Ahora instale el cliente de correo electrónico s-nail

sudo apt install s-nail

Antes de ejecutar el cliente, debe ajustar algunas configuraciones. Abra el /etc/s-nail.rc en su editor:

sudo nano /etc/s-nail.rc

En la parte inferior del archivo, agregue las siguientes opciones:

...
 set emptystart
 set folder=Maildir
 set record=+sent
/etc/s-nail.rc

Esto es lo que hacen estas líneas:

  • set emptystart: permite al cliente abrir incluso con un buzón vacío.
  • set folder=Maildir: establece el directorio de Maildir en la variable interna de folder
  • set record=+sent: crea un sent para almacenar el correo enviado dentro de cualquier directorio configurado como una folder, en este caso Maildir.

Guarde y cierre el archivo cuando termine. Ahora está listo para inicializar la estructura Maildir de su sistema.

Una forma rápida de crear la estructura de Maildir en su directorio personal es enviarse un correo electrónico con el comando s-nail Dado que el sent solo estará disponible después de que se cree Maildir, debe deshabilitar la escritura en este correo electrónico inicial usando la opción -Snorecord

Luego envíe el correo electrónico enviando una cadena al comando s-nail Edite el comando para marcar al usuario de Linux como destinatario:

echo 'init' | s-nail -s 'init' -Snorecord root
NotaCan't canonicalize "/home/noviello/Maildir"

Verifique que el directorio fue creado buscando el directorio ~/Maildir

ls -R ~/Maildir

Verá que se ha creado la estructura del directorio y que hay un nuevo archivo de mensaje en el ~/Maildir/new:

/home/noviello/Maildir/:
 cur new tmp

 /home/noviello/Maildir/cur:

 /home/noviello/Maildir/new:
 1590659140.V801I3ffaeM732608.mail.example.com

 /home/noviello/Maildir/tmp:

Ahora que se ha creado la estructura del directorio, está listo para probar el s-nail viendo el init que envió y enviando un mensaje a una dirección de correo electrónico externa.

Prueba de cliente

Para abrir el cliente, ejecute el comando s-nail

s-nail

En su consola, verá una bandeja de entrada con el mensaje de init

s-nail version v14.9.15. Type `?' for help
 "/home/noviello/Maildir": 1 message 1 new
 >N 1 [email protected] 2020-05-28 11:45 14/402 init

Presione ENTER para ver el mensaje:

[-- Message 1 -- 14 lines, 402 bytes --]:
 From [email protected] Thu May 28 11:45:40 2020
 Date: Thu, 28 May 2020 11:45:40 +0200
 To: [email protected]
 Subject: init
 Message-Id: <[email protected]>
 From: [email protected]

 init

Puede volver a la lista de mensajes escribiendo h luego ENTER:

h
>R 1 [email protected] 2020-05-28 11:45 14/402 init

Tenga en cuenta que el mensaje ahora tiene un estado de R, lo que indica que se ha leído.

Dado que este mensaje no es muy útil, puede descartarlo presionando d, luego ENTER:

d

Para volver a la terminal, escriba q y luego ENTER:

q

Como prueba final, verifique si s-nail puede enviar correos electrónicos con éxito. Para hacer esto, puede redirigir el contenido de un archivo de texto al s-nail, como lo hizo con el init que envió en el paso anterior.

Comience escribiendo un mensaje de prueba en un editor de texto:

nano ~/test_message

Dentro, ingrese algunos mensajes que desea enviar:

Hello,

 This is a test. Please confirm receipt!
~ /test_message

Guarde y cierre el archivo después de escribir el mensaje.

Luego, use el cat para redirigir el mensaje al proceso s-nail Puede hacer esto con el siguiente ejemplo, que usa estas opciones:

  • -s: define el asunto del mensaje de correo electrónico.
  • -r: Un cambio opcional en el campo "De:" del correo electrónico. De forma predeterminada, el usuario de Linux con el que inició sesión se utilizará para completar este campo. La -r permite anularla con una dirección válida, como la que definió en el /etc/postfix/virtual. En el siguiente comando lo especificamos para comprender mejor cómo usarlo.

Además, asegúrese de ingresar una dirección de correo electrónico válida a la que tenga acceso:

cat ~/test_message | s-nail -s 'Test email subject line' -r [email protected] [email protected]

Luego, vaya a su bandeja de entrada para obtener la dirección de correo electrónico a la que envió el mensaje. Verá su mensaje esperando allí casi de inmediato.

Nota

Puede ver los mensajes enviados dentro de su cliente s-nail Reinicie el cliente interactivo:

s-nail

Desde el cliente de correo electrónico, vea los mensajes enviados escribiendo:

file +sent

Verá un resultado como este:

+[/home/noviello/Maildir/]sent: 1 message 1 new
 ▸N 1 [email protected] 2020-05-28 11:47 12/302 Test email subject line

Puede administrar el correo enviado usando los mismos comandos que usa para la bandeja de entrada.

Conclusión

Ahora tiene Postfix configurado en su servidor Ubuntu 20.04 LTS Focal Fossa. La administración de servidores de correo electrónico puede ser una tarea difícil para los nuevos administradores del sistema, pero con esta configuración, debe tener suficiente funcionalidad de correo electrónico MTA para comenzar.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.