En esta guía, aprenderemos cómo instalar y configurar Postfix en un servidor Ubuntu 20.04. Usaremos s-nail
(un agente de usuario de correo - MUA) para probar que Postfix puede enrutar correctamente el correo.
Podremos poner en funcionamiento el Postfix con 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
Para seguir esta guía para instalar y configurar Postfix, primero debe tener lo siguiente:
- Un servidor Ubuntu 20.04 para funcionar como servidor Postfix
- Un nombre de dominio completamente calificado apuntando a su servidor Ubuntu 20.04.
Tenga en cuenta que este tutorial asume que está configurando un host que tiene el FQDN de mail.citizix.com
. Cuando sea necesario, asegúrese de cambiar citizix.com
o mail.citizix.com
para reflejar su propio FQDN.
Paso 1:Asegúrese de que su servidor esté actualizado
Antes de continuar, asegúrese de que el servidor tenga paquetes actualizados. Usa este comando para lograrlo:
sudo apt update
sudo apt -y upgrade
Paso 2:Instalación de Postfix
Postfix se incluye en los repositorios predeterminados de Ubuntu como postfix
. Podemos instalarlo con APT.
Tenga en cuenta que aquí pasamos el DEBIAN_PRIORITY=low
variable ambiental 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. Utilice la siguiente información para completar sus indicaciones:
- Tipo general de configuración de correo? :Para esto, elija Sitio de Internet ya que esto coincide con 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.citizix.com
. Es probable que desee establecer el nombre de correo del sistema encitizix.com
de modo que, dado el nombre de usuariouser1
, Postfix utilizará la dirección[email protected]citizix.com
. - Destinatario de correo raíz y postmaster :esta es la cuenta de Linux a la que se reenviará el correo dirigido a
[email protected]
y[email protected]
. Use su cuenta principal para esto. En este caso de ejemplo, administrador . - Otros destinos para aceptar correo :Esto 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 es probable que utilice un sistema de archivos registrado, 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. Sin embargo, si elige modificarlo, asegúrese de ser muy restrictivo con respecto al rango de red.
- Límite de tamaño del buzón :Esto se puede utilizar para limitar el tamaño de los mensajes. Configurándolo en
0
desactiva 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 parte regular de la dirección de una extensión (usada para crear alias dinámicos). El valor predeterminado,
+
funcionará para este tutorial. - Protocolos de Internet a utilizar :elija si desea restringir la versión de IP compatible con Postfix. A los efectos de este tutorial, elija todos .
Nota :si alguna vez necesita volver a cambiar esta configuración, puede hacerlo escribiendo:
sudo dpkg-reconfigure postfix
Las indicaciones se completarán previamente con sus respuestas anteriores.
Cuando finalice el proceso de instalación, estará listo para realizar algunas actualizaciones en su configuración de Postfix.
Paso 3:Cambiar la configuración de Postfix
Los ajustes de configuración de Postfix se definen en /etc/postfix/main.cf
expediente. Puede utilizar postconf
de Postfix Comando para consultar o establecer ajustes de configuración en lugar de editar el archivo directamente.
Para comenzar, establezca la ubicación del buzón de correo de su usuario no root de Ubuntu. En esta guía, usaremos Maildir formato, 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 trata en esta guía es mbox formato, que almacena todos los mensajes en un solo archivo.
Establecer el home_mailbox
variable a Maildir/
. Más tarde, creará una estructura de directorios con ese nombre dentro del directorio de inicio de su usuario. Configurar home_mailbox
escribiendo:
sudo postconf -e 'home_mailbox= Maildir/'
A continuación, establezca la ubicación de virtual_alias_maps
table, 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 main.cf
archivo, puede crear el archivo mismo 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 vim
:
sudo vim /etc/postfix/virtual
Enumere las direcciones para las que desea aceptar correo electrónico, seguido de un espacio en blanco y el usuario de Linux al que desea que se le envíe ese correo.
Por ejemplo, si desea aceptar correo electrónico en [email protected]
y [email protected]
y me gustaría recibir esos correos electrónicos en el administrador Usuario de Linux, puede configurar su archivo de esta manera:/etc/postfix/virtual
[email protected] admin
[email protected] admin
Una vez que haya asignado todas las direcciones a las cuentas de servidor correspondientes, guarde y cierre el archivo.
Aplique la asignación 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
Si tiene el firewall ufw instalado y habilitado, puede permitir las conexiones al servicio escribiendo:
sudo ufw allow Postfix
Paso 3:Instalar el cliente de correo e inicializar la estructura de Maildir
Para interactuar con el correo que se entrega, este paso lo guiará a través del proceso de instalación de s-nail
paquete. Esta es una variante rica en funciones de BSD xmail
cliente que puede manejar el formato de Maildir correctamente.
Sin embargo, antes de instalar el cliente, sería prudente asegurarse de que su MAIL
la variable de entorno está configurada correctamente. s-nail
buscará esta variable para averiguar dónde encontrar correo para su usuario.
Para asegurarse de que MAIL
La variable se establece 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 /etc/bash.bashrc
y agréguelo 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 su sesión actual, obtenga /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 /etc/s-nail.rc
archivo en su editor:
sudo vim /etc/s-nail.rc
En la parte inferior del archivo, agregue las siguientes opciones:/etc/s-nail.rc
. . .
set emptystart
set folder=Maildir
set record=+sent
Esto es lo que hacen estas líneas:
set emptystart
:permite que el cliente se abra incluso con una bandeja de entrada vacíaset folder=Maildir
:establece elMaildir
directorio a lafolder
interna variablesset record=+sent
crea unsent
archivo mbox para almacenar el correo enviado dentro de cualquier directorio que esté configurado 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 de Maildir dentro de su directorio de inicio es enviarse un correo electrónico con el s-nail
dominio. Porque el sent
El archivo solo estará disponible una vez que se haya creado Maildir, debe deshabilitar la escritura en él para este correo electrónico inicial. Haz esto pasando el -Snorecord
opción.
Envíe el correo electrónico canalizando una cadena al s-nail
dominio. Ajuste el comando para marcar a su usuario de Linux como destinatario:
echo 'init' | s-nail -s 'init' -Snorecord admin
Puede verificar para asegurarse de que el directorio se creó buscando su ~/Maildir
directorio:
ls -R ~/Maildir
Verá que se ha creado la estructura del directorio y que hay un nuevo archivo de mensaje en ~/Maildir/new
directorio:
$ ls -R ~/Maildir
/home/ubuntu/Maildir:
cur new tmp
/home/ubuntu/Maildir/cur:
/home/ubuntu/Maildir/new:
1643972360.V10301Ifbca3M171366.dev-ubuntusrv.inv.re 1643972375.V10301Ifbca5M242683.dev-ubuntusrv.inv.re
/home/ubuntu/Maildir/tmp:
Ahora que se ha creado la estructura de directorios, está listo para probar el s-nail
cliente viendo el init
mensaje que enviaste y enviar un mensaje a una dirección de correo electrónico externa.
Paso 4:Prueba del cliente
Para abrir el cliente, ejecute s-nail
comando:
s-nail
En su consola, verá una bandeja de entrada rudimentaria con init
mensaje en espera:
$ s-nail
s-nail version v14.9.15. Type `?' for help
/home/admin/Maildir: 1 messages 1 new
▸N 1 Ubuntu 2022-02-04 10:59 14/432 init
?
Presiona ENTER
para mostrar el mensaje:
[-- Message 1 -- 14 lines, 432 bytes --]:
From [email protected] Fri Feb 4 10:59:35 2022
Date: Fri, 04 Feb 2022 10:59:35 +0000
To: [email protected]
Subject: init
Message-Id: <[email protected]>
From: Ubuntu <[email protected]>
init
Puede volver a la lista de mensajes escribiendo h
y luego ENTER
:
h
▸R 1 Ubuntu 2022-02-04 10:59 14/432 init
Observe que el mensaje ahora tiene un estado de R
, indicando que ha sido leído.
Dado que este mensaje no es muy útil, puede eliminarlo presionando d
y luego ENTER
:
d
Para volver a la terminal, escribe q
y luego ENTER
:
q
Como prueba final, compruebe si s-nail
es capaz de enviar mensajes de correo electrónico correctamente. Para hacer esto, puede canalizar el contenido de un archivo de texto en el s-nail
proceso, como lo hizo con init
mensaje que enviaste en el paso anterior.
Comience escribiendo un mensaje de prueba en un editor de texto:
vim ~/test_message
Dentro, ingresa el texto que te gustaría enviar:
Hello,
This is a test. Please confirm receipt!
Guarde y cierre el archivo después de escribir su mensaje.
Luego, usa el cat
comando para canalizar el mensaje a s-nail
proceso. 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 forma predeterminada, el usuario de Linux con el que inició sesión se utilizará para completar este campo. El-r
le permite anular esto con una dirección válida, como una de las que definió en/etc/postfix/virtual
expediente. Para ilustrar, el siguiente comando usa[email protected]
Además, asegúrese de cambiar [email protected]
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, navegue 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 su bandeja de entrada, es posible que se haya enviado a su carpeta de correo no deseado.
Puedes ver tus mensajes enviados dentro de tu s-nail
cliente. Vuelva a iniciar el cliente interactivo:
s-nail
Desde el cliente de correo electrónico, vea sus mensajes enviados escribiendo:
file +sent
Copiar
Verá un resultado como este:
$ s-nail
s-nail version v14.9.15. Type `?' for help
/home/admin/Maildir: 0 messages
No more mail.
? file +sent
+[/home/admin/Maildir/]sent: 1 message 1 new
▸N 1 [email protected] 2022-02-04 11:07 12/291 Test email subject line
?
Puede administrar el correo enviado usando los mismos comandos que usa para el correo entrante.
Conclusión
Ahora tiene Postfix configurado 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.