Cómo instalar y configurar Postfix como servidor SMTP de solo envío en Ubuntu 22.04

Índice
  1. Introducción
  • Prerrequisitos
  • Paso 1: Instalación de Postfix
  • Paso 2: Configuración de Postfix
  • Paso 3: Prueba del servidor SMTP
  • Paso 4: Reenvío de correo del sistema
  • Paso 5: Habilitar el cifrado SMTP
  • Conclusión
  • El autor seleccionó el Fondo de Código Libre y Abierto para recibir una donación como parte del programa Write for DOnations .

    Introducción

    Postfix es un agente de transferencia de correo (MTA), una aplicación que se utiliza para enviar y recibir correo electrónico. Se puede configurar para que se pueda utilizar para enviar correos electrónicos solo mediante aplicaciones locales. Esto resulta útil en situaciones en las que necesita enviar notificaciones por correo electrónico con regularidad desde sus aplicaciones o tiene mucho tráfico saliente que un proveedor de servicios de correo electrónico de terceros no permite. También es una alternativa más liviana a la ejecución de un servidor SMTP completo, al mismo tiempo que conserva la funcionalidad requerida.

    En este tutorial, instalarás y configurarás Postfix como un servidor SMTP de solo envío. También solicitarás certificados TLS gratuitos de Let’s Encrypt para tu dominio y cifrarás los correos electrónicos salientes con ellos.

    Nota : A partir del 22 de junio de 2022, DigitalOcean bloqueará el SMTP para todas las cuentas nuevas. Como parte de esta nueva política, nos hemos asociado con SendGrid para que nuestros clientes puedan seguir enviando correos electrónicos con facilidad. Puede obtener más información sobre esta asociación y comenzar a usar SendGrid consultando la aplicación SendGrid Marketplace de DigitalOcean .

    Prerrequisitos

    • Un servidor Ubuntu 22.04 configurado con la configuración inicial del servidor con Ubuntu 22.04 , incluida la creación de un usuario sudo no root.
    • Un nombre de dominio completamente registrado. Este tutorial se utilizará your_domainen todo momento. Puede comprar un nombre de dominio en Namecheap , obtener uno gratis en Freenom o utilizar el registrador de dominios que prefiera.
    • Un registro DNS que apuntayour_domain a la dirección IP pública de su servidor. Puede consultar esta introducción a DNS de DigitalOcean para obtener detalles sobre cómo agregarlos.

    Nota: El nombre de host de su servidor y el nombre de su Droplet deben coincidir your_domain, porque DigitalOcean establece automáticamente registros PTR para la dirección IP del Droplet según su nombre.

    Puede verificar el nombre de host del servidor escribiéndolo hostnameen el símbolo del sistema. El resultado debe coincidir con el nombre que le dio al Droplet cuando se creó. Si no es correcto, ejecute el siguiente comando para configurarlo:

    1. hostname your_domain

    Además, su cuenta debe tener habilitado el puerto 25, lo que puede no ser el caso de algunas cuentas. Tenga en cuenta que algunos proveedores de correo electrónico pueden rechazar correos electrónicos provenientes de rangos de IP de DigitalOcean (u otros), a su propia discreción.

    Paso 1: Instalación de Postfix

    En este paso, instalará Postfix. La forma más rápida es instalar el mailutilspaquete, que incluye Postfix con algunos programas complementarios que utilizará para probar el envío de correos electrónicos.

    Primero, actualice la base de datos del paquete:

    1. sudo apt update

    Luego, instale Postfix ejecutando el siguiente comando:

    1. sudo apt install mailutils

    Cerca del final del proceso de instalación, se le presentará la ventana de configuración de Postfix:

    La opción predeterminada es Internet Site. Esa es la opción recomendada para su caso de uso, así que presione TABy luego ENTER. Si solo ve el texto de descripción, presione TABpara seleccionar OKy luego ENTER.

    Si no aparece automáticamente, ejecute el siguiente comando para iniciarlo:

    1. sudo dpkg-reconfigure postfix

    Después de eso, recibirás otro mensaje de configuración sobre el nombre del correo del sistema :

    El nombre del correo del sistema debe ser el mismo que el nombre que le asignaste a tu servidor cuando lo creaste. Cuando hayas terminado, presiona TAB, seguido de ENTER.

    Ya ha instalado Postfix y está listo para comenzar a configurarlo.

    Paso 2: Configuración de Postfix

    En este paso, configurará Postfix para enviar y recibir correos electrónicos solo desde el servidor en el que se ejecuta, es decir, desde localhost.

    Para que esto suceda, debe configurar Postfix para que escuche solo en la interfaz de bucle invertido , la interfaz de red virtual que el servidor utiliza para comunicarse internamente. Para realizar los cambios, deberá editar el archivo de configuración principal de Postfix llamado main.cf, almacenado en etc/postfix.

    Ábrelo para editarlo usando nanotu editor de texto favorito:

    1. sudo nano /etc/postfix/main.cf

    Encuentra las siguientes líneas:

    /etc/postfix/main.cf

    . . .mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all. . .

    Establezca el valor de la inet_interfacesconfiguración en loopback-only:

    /etc/postfix/main.cf

    . . .mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = loopback-only. . .

    Si su dominio es en realidad un subdominio y desea que los mensajes de correo electrónico parezcan enviados desde el dominio principal, puede agregar la siguiente línea al final de main.cf:

    /etc/postfix/main.cf

    ...masquerade_domains = your_main_domain

    La configuración opcional masquerade_domainsespecifica el dominio para el cual se eliminará el subdominio en la dirección de correo electrónico.

    Cuando haya terminado, guarde y cierre el archivo.

    Luego, reinicie Postfix ejecutando el siguiente comando:

    1. sudo systemctl restart postfix

    Has configurado Postfix para que solo envíe correos electrónicos desde tu servidor. Ahora lo probarás enviando un mensaje de ejemplo a una dirección de correo electrónico.

    Paso 3: Prueba del servidor SMTP

    En este paso, probará si Postfix puede enviar correos electrónicos a una cuenta de correo electrónico externa mediante el mailcomando, que es parte del mailutilspaquete que instaló en el primer paso.

    Para enviar un correo electrónico de prueba, ejecute el siguiente comando:

    1. echo "This is the body of the email" | mail -s "This is the subject line" your_email_address

    Puedes cambiar el cuerpo y el asunto del correo electrónico a tu gusto. Recuerda reemplazarlo your_email_addresspor una dirección de correo electrónico válida a la que puedas acceder.

    Ahora, comprueba la dirección de correo electrónico a la que has enviado este mensaje. Deberías ver el mensaje en tu bandeja de entrada. Si no está ahí, revisa tu carpeta de correo no deseado. En este punto, todos los correos electrónicos que envías no están cifrados, lo que hace que los proveedores de servicios piensen que es probable que se trate de correo no deseado. Configurarás el cifrado más adelante, en el paso 5.

    Si recibe un error del mailcomando o no ha recibido un mensaje después de un período prolongado de tiempo, verifique que la configuración de Postfix que editó sea válida y que el nombre de su servidor y el nombre de host estén configurados en su dominio.

    Tenga en cuenta que con esta configuración, la dirección en el Fromcampo para los correos electrónicos de prueba que envíe tendrá el formato , donde es el nombre de usuario del usuario del servidor con el que ejecutó el comando.your_user_name@your_domainyour_user_name

    Ya ha enviado un correo electrónico desde su servidor y ha verificado que se recibió correctamente. En el siguiente paso, configurará el reenvío de correo electrónico para root.

    Paso 4: Reenvío de correo del sistema

    En este paso, configurará el reenvío de correo electrónico para el usuario root, de modo que los mensajes generados por el sistema que se le envíen en su servidor se reenvíen a una dirección de correo electrónico externa.

    El /etc/aliasesarchivo contiene una lista de nombres alternativos para los destinatarios de correo electrónico. Ábralo para editarlo:

    1. sudo nano /etc/aliases

    En su estado predeterminado se ve así:

    /etc/aliases

    # See man 5 aliases for formatpostmaster:    root

    La única directiva presente especifica que los correos electrónicos generados por el sistema se envían a root.

    Añade la siguiente línea al final del archivo:

    /etc/aliases

    ...root:          your_email_address

    Con esta línea, especifica que los correos electrónicos enviados rootse reenviarán a una dirección de correo electrónico. Recuerde reemplazarla your_email_addresspor su dirección de correo electrónico personal. Cuando haya terminado, guarde y cierre el archivo.

    Para que el cambio surta efecto, ejecute el siguiente comando:

    1. sudo newaliases

    Al ejecutarlo newaliasesse creará una base de datos de alias que mailutiliza el comando, que se toman del archivo de configuración que acaba de editar.

    Pruebe que el envío de correos electrónicos rootfunciona ejecutando lo siguiente:

    1. echo "This is the body of the email" | mail -s "This is the subject line" root

    Deberías recibir el correo electrónico en tu dirección de correo electrónico. Si no está ahí, revisa tu carpeta de correo no deseado.

    En este paso, configurará el reenvío de mensajes generados por el sistema a su dirección de correo electrónico. Ahora habilitará el cifrado de mensajes, de modo que todos los mensajes que envíe su servidor sean inmunes a la manipulación durante el tránsito y se consideren más legítimos.

    Paso 5: Habilitar el cifrado SMTP

    Ahora habilitará el cifrado SMTP solicitando un certificado TLS gratuito de Let’s Encrypt para su dominio (usando Certbot ) y configurando Postfix para usarlo al enviar mensajes.

    Ubuntu incluye Certbot en sus repositorios de paquetes predeterminados, por lo que puedes instalarlo ejecutando el siguiente comando:

    1. sudo apt install certbot

    Cuando se le solicite confirmación, escriba Yy presione Enter.

    Como parte de la configuración inicial del servidor en los requisitos previos, instaló ufw, el firewall sencillo. Deberá configurarlo para permitir el puerto HTTP 80, de modo que se pueda completar la verificación del dominio. Ejecute el siguiente comando para habilitarlo:

    1. sudo ufw allow 80

    El resultado se verá así:

    OutputRule addedRule added (v6)

    Ahora que el puerto está abierto, ejecute Certbot para obtener un certificado:

    1. sudo certbot certonly --standalone --rsa-key-size 4096 --agree-tos --preferred-challenges http -d your_domain

    Este comando ordena a Certbot que emita certificados con un tamaño de clave RSA de 4096 bits, que ejecute un servidor web independiente temporal ( --standalone) para verificación y que realice una comprobación a través del puerto 80( --preferred-challenges http). Recuerde reemplazar your_domaincon su dominio antes de ejecutar el comando e ingrese su dirección de correo electrónico cuando se le solicite.

    La salida será similar a esto:

    OutputSaving debug log to /var/log/letsencrypt/letsencrypt.logRequesting a certificate for aleksasavic.comSuccessfully received certificate.Certificate is saved at: /etc/letsencrypt/live/your_domain/fullchain.pemKey is saved at:         /etc/letsencrypt/live/your_domain/privkey.pemThis certificate expires on 2022-07-04.These files will be updated when the certificate renews.Certbot has set up a scheduled task to automatically renew this certificate in the background.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -If you like Certbot, please consider supporting our work by: * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate * Donating to EFF:                    https://eff.org/donate-le- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    Como está escrito en las notas, su certificado y el archivo de clave privada se guardaron en ./etc/letsencrypt/live/your_domain

    Ahora que tienes tu certificado, ábrelo main.cfpara editarlo:

    1. sudo nano /etc/postfix/main.cf

    Encuentra la siguiente sección:

    /etc/postfix/main.cf

    # TLS parameterssmtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pemsmtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.keysmtpd_tls_security_level=maysmtp_tls_CApath=/etc/ssl/certssmtp_tls_security_level=maysmtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

    Modifíquelo para que se vea así, reemplazando your_domaincon su dominio cuando sea necesario. Esto actualizará su configuración TLS para Postfix:

    /etc/postfix/main.cf

    # TLS parameterssmtpd_tls_cert_file=/etc/letsencrypt/live/your_domain/fullchain.pemsmtpd_tls_key_file=/etc/letsencrypt/live/your_domain/privkey.pemsmtpd_tls_security_level=maysmtp_tls_CApath=/etc/ssl/certssmtp_tls_security_level=maysmtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

    Una vez que haya terminado, guarde y cierre el archivo.

    Aplique los cambios reiniciando Postfix:

    1. sudo systemctl restart postfix

    Ahora, intenta enviar un correo electrónico nuevamente:

    1. echo "This is the body of an encrypted email" | mail -s "This is the subject line" root

    A continuación, comprueba la dirección de correo electrónico que has facilitado. Es posible que veas el mensaje en tu bandeja de entrada inmediatamente, ya que los proveedores de correo electrónico tienen muchas más probabilidades de marcar los mensajes no cifrados como spam.

    Puede consultar la información técnica sobre el mensaje de correo electrónico en su cliente para ver que el mensaje esté efectivamente cifrado.

    Conclusión

    Ahora tienes un servidor de correo electrónico de solo envío, con tecnología de Postfix. El cifrado de todos los mensajes salientes es un primer paso eficaz para que los proveedores de correo electrónico no marquen tus mensajes como spam. Si lo haces en un escenario de desarrollo, esta medida debería ser suficiente.

    Sin embargo, si su caso de uso es enviar correos electrónicos a usuarios potenciales del sitio (como correos electrónicos de confirmación para el registro en un tablero de mensajes) o a proveedores de correo electrónico populares, como Gmail, considere configurar registros SPF , de modo que los correos electrónicos de su servidor tengan aún más probabilidades de ser vistos como legítimos.

    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