Cómo instalar y configurar Postfix en Ubuntu 22.04

Introducción

Índice
  1. Introducción
  • Prerrequisitos
  • Paso 1: Instalación de Postfix
  • Paso 2: Cambiar la configuración de Postfix
  • Paso 3: Instalación del cliente de correo e inicialización de la estructura Maildir
  • Paso 4: Prueba del cliente
  • Conclusió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-nailun 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 sudoprivilegios 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.como mail.example.comreflejar 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 aptcaché de paquetes local:

    1. sudo apt update

    Luego, instale el postfixpaquete con el siguiente comando. Tenga en cuenta que aquí pasamos la DEBIAN_PRIORITY=lowvariable de entorno a este comando de instalación. Esto hará que el proceso de instalación le solicite que configure algunas opciones adicionales:

    1. 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.comexample.comuser1user1@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@y postmaster@. 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, 0se 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(no mail.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:

    1. 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.cfarchivo. En lugar de editar este archivo directamente, puede usar postconfel 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_mailboxvariable en Maildir/. Más adelante, creará una estructura de directorio con ese nombre dentro del directorio de inicio de su usuario. Configure home_mailboxescribiendo:

    1. sudo postconf -e 'home_mailbox= Maildir/'

    A continuación, establezca la ubicación de la virtual_alias_mapstabla, 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:

    1. 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.cfarchivo, 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:

    1. 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.comadmin@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, Yy luego ENTER.

    Aplique la asignación escribiendo:

    1. sudo postmap /etc/postfix/virtual

    Reinicie el proceso de Postfix para asegurarse de que se hayan aplicado todos los cambios:

    1. 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:

    1. 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-nailpaquete. Se trata de una variante del xmailcliente 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 MAILvariable de entorno esté configurada correctamente. s-nailbuscará esta variable para determinar dónde encontrar el correo de su usuario.

    Para garantizar que la MAILvariable 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.bashrcarchivo y agregarla a un archivo dentro /etc/profile.dpara asegurarse de que esté configurada para todos los usuarios de manera predeterminada.

    Para agregar la variable a estos archivos, escriba:

    1. 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.sharchivo:

    1. source /etc/profile.d/mail.sh

    Una vez completado esto, instale el s-nailcliente de correo electrónico con APT:

    1. sudo apt install s-nail

    Antes de ejecutar el cliente, hay algunas configuraciones que debes ajustar. Abre el /etc/s-nail.rcarchivo en tu editor:

    1. 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ía
    • set folder=Maildir: establece el Maildirdirectorio en la foldervariable interna
    • set record=+sentcrea un sentarchivo mbox para almacenar el correo enviado dentro de cualquier directorio configurado como foldervariable, 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-nailcomando. Debido a que el sentarchivo 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 -Snorecordopción.

    Envíe el correo electrónico mediante la canalización de una cadena al s-nailcomando. Ajuste el comando para marcar a su usuario de Linux como destinatario:

    1. 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 ~/Maildirdirectorio:

    1. ls -R ~/Maildir

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

    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-nailcliente viendo el initmensaje 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-nailcomando:

    1. s-nail

    En tu consola verás una bandeja de entrada rudimentaria con el initmensaje 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 ENTERpara 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 hy luego ENTER:

    1. 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 dy luego ENTER:

    1. d

    Para volver a la terminal, escriba qy luego ENTER:

    1. q

    Como prueba final, comprueba si s-nailpuedes enviar mensajes de correo electrónico correctamente. Para ello, puedes enviar el contenido de un archivo de texto al s-nailproceso, como hiciste con el initmensaje que enviaste en el paso anterior.

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

    1. 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 catcomando para enviar el mensaje al s-nailproceso. 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 -ropción le permite anular esto con una dirección válida, como una de las que definió en el /etc/postfix/virtualarchivo. 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

    1. 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-nailcliente. Vuelva a iniciar el cliente interactivo:

    1. s-nail

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

    1. 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.

    SUSCRÍBETE A NUESTRO BOLETÍN 
    No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion