una versión anterior de este tutorial fue escrita por Justin Ellingwood
Introducción
Postfix es un popular agente de transferencia de correo de código abierto (MTA) 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úblico en internet ejecutan Postfix.
en esta guía, aprenderá cómo instalar y configurar Postfix en un servidor Ubuntu 20.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 ayudarlo a poner en marcha Postfix rápidamente con solo algunas funciones básicas de correo electrónico. No tendrá un servidor de correo electrónico con todas las funciones al final de esta guía, pero tendrá algunos de los componentes fundamentales de dicha configuración para ayudarlo a comenzar.
requisitos previos
para seguir esta guía, necesitará lo siguiente:
- Un servidor que ejecute Ubuntu 20.,04 para funcionar como su servidor de correo Postfix. Este servidor debe tener un usuario no root con privilegios
sudo
y un firewall configurado con UFW. Puede seguir nuestra Guía de configuración inicial del Servidor Ubuntu 20.04 para configurar esto. - Un nombre de dominio completo apuntado a su servidor Ubuntu 20.04. Puede encontrar ayuda para configurar su nombre de dominio con DigitalOcean siguiendo nuestra documentación de dominios y redes DNS. Tenga en cuenta que si planea acceder al correo desde una ubicación externa, tendrá que asegurarse de tener un registro MX apuntando a su servidor de correo también.,
tenga en cuenta que este tutorial asume que está configurando un host que tiene el FQDN de mail.example.com
. Cuando sea necesario, asegúrese de cambiar example.com
o mail.example.com
para reflejar su propio FQDN.
Paso 1-Instalación de Postfix
Postfix está incluido en los repositorios predeterminados de Ubuntu, por lo que puede instalarlo con APT.
Para comenzar, actualice su caché de paquete local apt
:
- sudo apt update
luego instale el paquete postfix
con el siguiente comando., Tenga en cuenta que aquí pasamos la variable ambiental DEBIAN_PRIORITY=low
en este comando de instalación. Esto hará que el proceso de instalación le pida que configure algunas opciones adicionales:
- sudo DEBIAN_PRIORITY=low apt install postfix
Este proceso de instalación abrirá una serie de indicaciones interactivas. Para los fines de este tutorial, use la siguiente información para completar sus solicitudes:
- ¿tipo General de configuración de correo?: Para esto, elija el sitio de Internet, ya que se adapta a nuestras necesidades de infraestructura.,
- Nombre de correo del Sistema: este es el dominio base utilizado 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, digamos que el nombre de host de su servidor es
mail.example.com
. Es probable que desee establecer el nombre de correo del sistema enexample.com
de modo que, dado el nombre de usuariouser1
, Postfix utilizará la dirección.
- Root and postmaster mail recipient: esta es la cuenta de Linux que será reenviada a
root@
ypostmaster@
., Utilice su cuenta principal para esto. En este ejemplo, sammy. - Otros destinos para aceptar correo: Esto define los destinos de correo que aceptará esta instancia 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 síncronas en la cola de correo?: Dado que es probable que esté usando un sistema de archivos con Diario, acepte No aquí.
- Redes Locales: esta es una lista de las redes para las que su servidor de correo está configurado para retransmitir mensajes., El valor predeterminado funcionará para la mayoría de los escenarios. Si elige modificarlo, sin embargo, asegúrese de ser muy restrictivo en lo que respecta al rango de red.
- límite de tamaño del buzón: se puede usar para limitar el tamaño de los mensajes. Configurarlo en
0
deshabilita cualquier restricción de tamaño. - carácter de extensión de dirección Local: Este es el carácter que se puede usar para separar la porción regular de la dirección de una extensión (se usa para crear alias dinámicos). El valor predeterminado,
+
funcionará para este tutorial., - protocolos de Internet a usar: Elija si desea restringir la versión IP que admite Postfix. Para los propósitos de este tutorial, elija Todos.
Para ser explícitos, estos son los valores utilizados en esta guía:
Nota: Si necesita volver a cambiar estos ajustes, puede hacerlo escribiendo:
- sudo dpkg-reconfigure postfix
Las instrucciones se rellenará automáticamente con sus respuestas anteriores.
Cuando finalice el proceso de instalación, estará listo para realizar algunas actualizaciones a su configuración Postfix.,
Paso 2 — Cambiar la configuración de Postfix
Ahora puede ajustar algunas configuraciones que el proceso de instalación del paquete no le pidió. Muchas de las opciones de configuración de Postfix están definidas en el archivo /etc/postfix/main.cf
. En lugar de editar este archivo directamente, puede usar el comando postconf
de Postfix para consultar o establecer parámetros de configuración.
Para comenzar, establezca la ubicación para el buzón de correo de su 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 en función de la acción del usuario. La opción alternativa que no está cubierta en esta guía es el formato mbox, que almacena todos los mensajes dentro de un solo archivo.
establezca la variablehome_mailbox
enMaildir/
. Más tarde, creará una estructura de directorios bajo ese nombre dentro del directorio personal de su usuario., Configure home_mailbox
escribiendo:
- sudo postconf -e 'home_mailbox= Maildir/'
a continuación, establezca la ubicación de la tabla virtual_alias_maps
, 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 archivo main.cf
, puede crear el archivo y comenzar a asignar cuentas de correo electrónico a cuentas de usuario en su Linux sistema., Cree el archivo con su editor de texto preferido; en este ejemplo, usaremos nano
:
- sudo nano /etc/postfix/virtual
listar cualquier dirección para la que desee aceptar correo electrónico, seguido de un espacio en blanco y el usuario de Linux al que desea que se le entregue ese correo.,
por ejemplo, si desea aceptar correo electrónico en y
y desea que esos correos electrónicos se entreguen al usuario de sammy Linux, puede configurar su archivo de la siguiente manera:
[email protected] [email protected] sammy
después de asignar todas las direcciones a las cuentas de servidor apropiadas, guarde y cierre el archivo. Si usted utiliza nano
, puede hacerlo pulsando CTRL + X
, Y
, luego ENTER
.,
aplique la asignación escribiendo:
- sudo postmap /etc/postfix/virtual
reinicie el proceso Postfix para asegurarse de que todos sus cambios se han aplicado:
- sudo systemctl restart postfix
asumiendo que siguió la guía de configuración inicial del servidor de requisitos previos, habrá configurado un firewall con UFW. Este firewall 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 tendrá que agregar una regla de firewall para permitir una excepción para Postfix.,
Puede permitir conexiones al servicio escribiendo:
- sudo ufw allow Postfix
con eso, 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 que pueda 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 interactuar con el correo que se entrega, este paso lo guiará a través del proceso de instalación del paquete s-nail
. Esta es una variante rica en características del cliente BSD xmail
que puede manejar el formato Maildir correctamente.
antes de instalar el cliente, sin embargo, sería prudente asegurarse de que su variable de entorno MAIL
esté configurada correctamente., s-nail
buscará esta variable para averiguar dónde encontrar correo para su usuario.
para garantizar que la variable MAIL
se establezca independientemente de cómo acceda a su cuenta, ya sea a través de ssh
, su
, su -
, o sudo
, por ejemplo: deberá establecer la variable en el archivo /etc/bash.bashrc
y agregarla a un archivo dentro de /etc/profile.d
para asegurarse de que esté configurada 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 su sesión actual, obtenga el /etc/profile.d/mail.sh
archivo:
- source /etc/profile.d/mail.sh
con eso completo, 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 debe ajustar. Abra el archivo /etc/s-nail.rc
en su editor:
- sudo nano /etc/s-nail.rc
en la parte inferior del archivo, agregue las siguientes opciones:
. . .set emptystartset folder=Maildirset record=+sent
Aquí es lo que estas líneas:
-
set emptystart
: permite que el cliente abra incluso con una bandeja de entrada vacía -
set folder=Maildir
: establece elMaildir
directorio internofolder
variable -
set record=+sent
crea unsent
archivo mbox para almacenar el correo enviado dentro de lo que el directorio se establece 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 tu directorio home es enviarte un correo electrónico con el comando s-nail
. Debido a que el archivo sent
solo estará disponible una vez que se cree el Maildir, debe deshabilitar la escritura en él para este correo electrónico inicial. Haga esto pasando la opción -Snorecord
.
envíe el correo electrónico canalizando una cadena al comandos-nail
., Ajuste el comando para marcar a su Usuario Linux como el destinatario:
- echo 'init' | s-nail -s 'init' -Snorecord sammy
Nota: puede obtener la siguiente respuesta:
OutputCan't canonicalize "/home/sammy/Maildir"
esto es normal y solo puede aparecer al enviar este primer mensaje.,
Puede verificar que el directorio fue creado buscando su ~/Maildir
directorio:
- ls -R ~/Maildir
verá que la estructura del directorio ha sido creada y que un nuevo archivo de mensaje está en el ~/Maildir/new
directorio:
ahora que se ha creado la estructura de directorios, está listo para probar el cliente s-nail
visualizando el mensaje init
que envió y enviando un mensaje a una dirección de correo electrónico externa.,
Paso 4 — probando el cliente
para abrir el cliente, ejecute el comando s-nail
:
- s-nail
en su consola, verá una bandeja de entrada rudimentaria con el mensaje init
>
presione ENTER
para mostrar el mensaje:
Puede volver a la lista de mensajes escribiendo h
, y luegoENTER
:
- h
Output>R 1 [email protected] 2020-05-19 15:40 14/392 init
observe que el mensaje ahora tiene un estado de R
, indicando que ha sido leído.,
a partir de este mensaje no es muy útil, puede eliminar pulsando d
y luego ENTER
:
- d
Para volver a la terminal, tipo q
y luego ENTER
:
- q
Como una prueba final, comprobar si s-nail
es capaz de enviar correctamente los mensajes de correo electrónico. Para hacer esto, puede canalizar el contenido de un archivo de texto en el proceso s-nail
, como hizo con el mensaje init
que envió en el paso anterior.,
comience escribiendo un mensaje de prueba en un editor de texto:
- nano ~/test_message
dentro, ingrese un texto que le gustaría enviar:
Hello,This is a test. Please confirm receipt!
guarde y cierre el archivo después de escribir su mensaje.
luego, use el comando cat
para canalizar el mensaje al proceso s-nail
., 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 al campo «desde:» del correo electrónico. De forma predeterminada, el usuario de Linux en el que ha iniciado sesión se utilizará para rellenar este campo. La opción-r
le permite anular esto con una dirección válida, como una de las que definió en el archivo/etc/postfix/virtual
., Para ilustrarlo, el siguiente comando usa
También, asegúrese de cambiar a 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 la bandeja de entrada de la dirección de correo electrónico a la que envió el mensaje. Verá su mensaje esperando 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 Spam.
Puede ver sus mensajes enviados dentro de su cliente s-nail
., Inicie el cliente interactivo de nuevo:
- s-nail
desde el cliente de correo electrónico, vea sus mensajes enviados escribiendo:
- file +sent
verá una salida como esta:
Output+sent: 1 message 1 new▸N 1 [email protected] 2020-05-19 15:47 12/297 Test email subject line
puede administrar el correo enviado utilizando los mismos comandos que usa para el correo entrante.
conclusión
ahora tiene configurado Postfix en su servidor Ubuntu 20.04. Administrar servidores de correo electrónico puede ser una tarea difícil para los nuevos administradores de sistemas, pero con esta configuración, debe tener suficiente funcionalidad de correo electrónico MTA para comenzar.