El autor seleccionó el fondo gratuito y de código abierto para recibir una donación como parte del Programa Escribir para donaciones.

Introducción

Postfix es un agente de transferencia de correo (MTA), una aplicación utilizada para enviar y recibir correos electrónicos. Se puede configurar para que se pueda usar para enviar correos electrónicos solo por aplicación local., Esto es útil en situaciones en las que necesita enviar regularmente notificaciones por correo electrónico desde sus aplicaciones o simplemente tener una gran cantidad de tráfico saliente que un proveedor de servicios de correo electrónico de terceros no permitirá. También es una alternativa más ligera a la ejecución de un servidor SMTP completo, al tiempo que conserva la funcionalidad requerida.

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

requisitos previos

  • One Ubuntu 18.,04 configuración del servidor con la configuración inicial del servidor con Ubuntu 18.04, incluida la creación de un usuario sudo no root.
  • un nombre de dominio totalmente registrado. Este tutorial usará your_domain en todo momento. Puede comprar un nombre de dominio en Namecheap, obtener uno gratis en Freenom o usar el registrador de dominios de su elección.
  • Un registro DNS con your_domain apuntando a la dirección IP pública de su servidor. Puede seguir esta introducción a DigitalOcean DNS para obtener detalles sobre cómo agregarlos.,

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

Puede verificar el nombre de host del servidor escribiendo hostname en el símbolo del sistema. La salida debe coincidir con el nombre que le dio a la gota cuando se estaba creando.

Paso 1-Instalación de Postfix

en este paso, instalarás Postfix., La forma más rápida es instalar el paquete mailutils, que incluye Postfix con algunos programas suplementarios que usará para probar el envío de correo electrónico.

en Primer lugar, el paquete de actualización de la base de datos:

  • sudo apt update

a Continuación, instalar Postfix ejecutando el siguiente comando:

  • sudo apt install mailutils

Cerca del final del proceso de instalación, aparecerá la ventana de configuración de Postfix:

La opción por defecto es Internet Site., Esa es la opción recomendada para el caso de uso, así que presione TAB y luego ENTER. Si sólo se ve el texto de la descripción, pulse TAB para seleccionar OK, luego ENTER.,

si no se muestra automáticamente, ejecute el siguiente comando para iniciarlo:

  • sudo dpkg-reconfigure postfix

después de eso, obtendrá otro mensaje de configuración con respecto al nombre de correo del sistema:

El nombre de correo del sistema debe ser el mismo que el nombre que asignó a su servidor cuando lo estaba creando. Cuando haya terminado, presione TAB, seguido por 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 está ejecutando, es decir, desde localhost.

para que eso suceda, Postfix debe configurarse para escuchar 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.,

ábralo para editarlo usando su editor de texto favorito:

  • sudo nano /etc/postfix/main.cf

Encuentre las siguientes líneas:

/etc/postfix/main.cf
. . .mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all. . .

establezca el valor del inet_interfaces configuración a loopback-only:

/etc/postfix/main.CF
. . .mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = loopback-only. . .

otra directiva que deberá modificar es mydestination, que se utiliza para especificar la lista de dominios que se entregan a través del local_transport transporte de entrega de correo., De forma predeterminada, los valores son similares a estos:

/etc/postfix/main.cf
. . .mydestination = $myhostname, your_domain, localhost.com, , localhost. . .

cambie la línea para que se vea así:

/etc/postfix/main.cf
. . .mydestination = localhost.$mydomain, localhost, $myhostname. . .

Si su dominio es en realidad un subdominio y si desea que los mensajes de correo electrónico se vean como si hubieran sido 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 opción masquerade_domains especifica para qué dominios se eliminará la parte del subdominio en la dirección de correo electrónico.

Cuando haya terminado, guarde y cierre el archivo.

Nota: si está alojando varios dominios en un solo servidor, los otros dominios también se pueden pasar a Postfix utilizando la directiva mydestination.

a continuación, reinicie Postfix ejecutando el siguiente comando:

  • sudo systemctl restart postfix

ha configurado Postfix para que solo envíe correos electrónicos desde su 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 utilizando el comando mail, que es parte del paquete mailutils que instaló en el primer paso.

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

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

puede cambiar el cuerpo y el asunto del correo electrónico a su gusto., Recuerde reemplazar your_email_address con una dirección de correo electrónico válida a la que pueda acceder.

ahora, verifique la dirección de correo electrónico a la que envió este mensaje. Deberías ver el mensaje en tu bandeja de entrada. Si no está ahí, revisa tu carpeta de spam. 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 sea spam. Configurarás el cifrado más adelante, en el paso 5.,

Si recibe un error del comando mail, o no ha recibido un mensaje después de períodos prolongados de tiempo, verifique que la configuración 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 campo From para los correos electrónicos de prueba que envíe tendrá la forma de your_user_name@your_domain, donde your_user_name es el nombre de usuario del usuario del servidor como el que ejecutó el comando.,

ahora ha enviado un correo electrónico desde su servidor y ha verificado que se ha recibido 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 usuarioroot, para 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 archivo /etc/aliases contiene una lista de nombres alternativos para los destinatarios de correo electrónico., Abrirlo para editarlo:

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

agregue la siguiente línea al final del archivo:

/etc/alias
...root: your_email_address

con esta línea, especifique que los correos electrónicos enviados aroot terminan siendo reenviados a una dirección de correo electrónico. Recuerde reemplazar your_email_address con 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:

  • sudo newaliases

Ejecutar newaliases creará una base de datos de alias que utiliza el comando mail, que se toman del archivo de configuración que acaba de editar.

pruebe que el envío de correos electrónicos a root funciona ejecutando:

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

debe recibir el correo electrónico en su dirección de correo electrónico. Si no está ahí, revisa tu carpeta de spam.,

en este paso, ha configurado el reenvío de mensajes generados por el sistema a su dirección de correo electrónico. Ahora habilitará el cifrado de mensajes, para que todos los correos electrónicos que envíe su servidor sean inmunes a la manipulación en tránsito y se vean como 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 su repositorio de paquetes predeterminado, pero puede suceder que esté desactualizado., En su lugar, agregará el repositorio oficial ejecutando el siguiente comando:

  • sudo add-apt-repository ppa:certbot/certbot

presione ENTER cuando se le solicite aceptar. Luego, actualice la caché del administrador de paquetes de su servidor:

  • sudo apt update

finalmente, instale la última versión de Certbot:

  • sudo apt install certbot -y

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

  • sudo ufw allow 80

la salida se verá así:

Output
Rule addedRule added (v6)

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

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

Este comando ordena certbot para emitir certificados con un tamaño de clave RSA de 4096 bits, para ejecutar un servidor web independiente temporal (--standalone) para la verificación y para verificar a través del puerto 80 (--preferred-challenges http)., Recuerde reemplazar your_domain con 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 esta:

Output
Saving debug log to /var/log/letsencrypt/letsencrypt.logPlugins selected: Authenticator standalone, Installer NoneObtaining a new certificatePerforming the following challenges:http-01 challenge for `your_domain`Waiting for verification...Cleaning up challengesIMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/your_domain/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/your_domain/privkey.pem Your cert will expire on 2020-07-11. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - 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 usted tiene su certificado, abierto main.cf para editar:

  • sudo nano /etc/postfix/main.cf

busque la sección siguiente:

/etc/postfix/main.,cf

modifíquelo para que se vea así, reemplazandoyour_domain con su dominio cuando sea necesario, lo que actualizará su configuración de TLS para Postfix:

/etc/postfix/main.cf

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

aplique los cambios reiniciando Postfix:

  • sudo systemctl restart postfix

ahora, intente enviar un correo electrónico nuevamente:

  • echo "This is the body of an encrypted email" | mail -s "This is the subject line" your_email_address

luego, verifique la dirección de correo electrónico que proporcionó. Es posible que veas el mensaje en tu bandeja de entrada inmediatamente, porque los proveedores de correo electrónico son mucho más propensos a 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á cifrado.

conclusión

ahora tiene un servidor de correo electrónico de solo envío, con tecnología Postfix. Cifrar todos los mensajes salientes es un buen primer paso para que los proveedores de correo electrónico no marquen sus mensajes como spam. Si está haciendo esto en un escenario de desarrollo, entonces 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 un registro en el tablero de mensajes), debe buscar la configuración de registros SPF, para que los correos electrónicos de su servidor sean aún más propensos a ser vistos como legítimos.

Articles

Deja una respuesta

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