Configuración de servicios de correo electrónico (SMTP, Imap e Imaps) y restricción del acceso a SMTP - Parte 7


Un LFCE ( Linux Foundation Certified Engineer ) es un profesional capacitado que tiene las habilidades para instalar, administrar y solucionar problemas de servicios de red en sistemas Linux, y está a cargo del diseño, implementación y mantenimiento continuo de la arquitectura del sistema y administración de usuarios.

Presentamos el programa de certificación de la Fundación Linux.

En un tutorial anterior discutimos cómo instalar los componentes necesarios de un servicio de correo. Si aún no ha instalado Postfix y Dovecot , consulte la Parte 1 de esta serie para obtener instrucciones para hacerlo antes de continuar.

  1. Install Postfix Mail Server and Dovecot – Part 1

En esta publicación, le mostraré cómo configurar su servidor de correo y cómo realizar las siguientes tareas:

  1. Configure email aliases
  2. Configure an IMAP and IMAPS service
  3. Configure an smtp service
  4. Restrict access to an smtp server

Nota: que nuestra configuración solo cubrirá un servidor de correo para una red de área local donde las máquinas pertenecen al mismo dominio. El envío de mensajes de correo electrónico a otros dominios requiere una configuración más compleja, incluidas las capacidades de resolución de nombres de dominio, que está fuera del alcance de la certificación LFCE.

Pero antes que nada, comencemos con algunas definiciones.

Componentes de un proceso de envío, transporte y entrega de correo

La siguiente imagen ilustra el proceso de transporte de correo electrónico comenzando con el remitente hasta que el mensaje llega a la bandeja de entrada del destinatario:

Para que esto sea posible, suceden varias cosas entre bastidores. Para que un mensaje de correo electrónico se entregue desde una aplicación cliente (como Thunderbird, Outlook o servicios de correo web como Gmail o Yahoo! Mail) a su servidor de correo y desde allí al servidor de destino y finalmente a su destinatario. , debe haber un servicio SMTP (Protocolo simple de transferencia de correo) en cada servidor.

Cuando se habla de servicios de correo electrónico, encontrará que los siguientes términos se mencionan con mucha frecuencia:

MTA (abreviatura de Correo o Agente de transporte de mensajes ), también conocido como retransmisión de correo, es un software que se encarga de transferir mensajes de correo electrónico desde un servidor. a un cliente (y también al revés). En esta serie, Postfix actúa como nuestro MTA.

MUA , o Agente de usuario de correo , es un programa informático que se utiliza para acceder y administrar las bandejas de entrada de correo electrónico del usuario. Los ejemplos de MUA incluyen, entre otros, Thunderbird, Outlook e interfaces de correo web como Gmail, Outlook.com, por nombrar algunos. En esta serie, usaremos Thunderbird en nuestros ejemplos.

MDA (abreviatura de Mensaje o Agente de entrega de correo ) es la parte del software que realmente envía mensajes de correo electrónico a las bandejas de entrada de los usuarios. En este tutorial, usaremos Dovecot como nuestro MDA. Dovecot también se encargará de la autenticación de usuarios.

Para que estos componentes puedan " hablar " entre sí, deben " hablar " el mismo " idioma " (o protocolo ), es decir, SMTP ( Protocolo simple de transferencia de correo ) como se define en el RFC 2821. Lo más probable es que tenga que consultar ese RFC mientras configura el entorno de su servidor de correo.

Otros protocolos que debemos tener en cuenta son IMAP4 ( Protocolo de acceso a mensajes de Internet ), que permite administrar los mensajes de correo electrónico directamente en el servidor sin descargarlos al disco duro de nuestro cliente. y POP3 ( Protocolo de oficina postal ), que permite descargar los mensajes y carpetas al ordenador del usuario.

Nuestro entorno de prueba es el siguiente:

Mail Server OS	: 	Debian Wheezy 7.5 
IP Address	:	192.168.0.15
Local Domain	:	example.com.ar
User Aliases	:	[email protected] is aliased to [email protected] and [email protected]
Mail Client OS	: 	Ubuntu 12.04
IP Address	:	192.168.0.103

En nuestro cliente , hemos configurado una resolución DNS elemental agregando la siguiente línea al archivo /etc/hosts .

192.168.0.15 example.com.ar mailserver

Agregar alias de correo electrónico

De forma predeterminada, un mensaje enviado a un usuario específico debe entregarse solo a ese usuario. Sin embargo, si también desea entregarlo a un grupo de usuarios, oa un usuario diferente, puede crear un alias de correo o usar uno de los existentes en /etc/postfix/aliases , siguiendo esta sintaxis:

user1: user1, user2

Por lo tanto, los correos electrónicos enviados a usuario1 también se entregarán a usuario2 . Tenga en cuenta que si omite la palabra usuario1 después de los dos puntos, como en

user1: user2

los mensajes enviados a usuario1 solo se enviarán a usuario2 y no a usuario1 .

En el ejemplo anterior, usuario1 y usuario2 ya deberían existir en el sistema. Es posible que desee consultar la Parte 8 de la serie LFCS si necesita actualizar su memoria antes de agregar nuevos usuarios.

  1. How to Add and Manage Users/Groups in Linux
  2. 15 Commands to Add Users in Linux

En nuestro caso específico, usaremos el siguiente alias como se explicó anteriormente (agregue la siguiente línea en /etc/aliases ).

sysadmin: gacanepa, jdoe

Y ejecute el siguiente comando para crear o actualizar la tabla de búsqueda de alias.

postalias /etc/postfix/aliases

De modo que los mensajes enviados a [correo electrónico protegido] se enviarán a la bandeja de entrada de los usuarios enumerados anteriormente.

Configuración de Postfix: el servicio SMTP

El archivo de configuración principal para Postfix es /etc/postfix/main.cf . Solo necesita configurar algunos parámetros antes de poder utilizar el servicio de correo. Sin embargo, debe familiarizarse con los parámetros de configuración completos (que se pueden enumerar con man 5 postconf ) para configurar un servidor de correo seguro y completamente personalizado.

Nota: Se supone que este tutorial solo debe ayudarlo a comenzar en ese proceso y no representa una guía completa sobre los servicios de correo electrónico con Linux.

Abra el archivo /etc/postfix/main.cf con el editor que elija y realice los siguientes cambios como se explica.

# vi /etc/postfix/main.cf

1 . myorigin especifica el dominio que aparece en los mensajes enviados desde el servidor. Es posible que vea el archivo /etc/mailname utilizado con este parámetro. Siéntase libre de editarlo si es necesario.

myorigin = /etc/mailname

Si se utiliza el valor anterior, los correos electrónicos se enviarán como [correo electrónico protegido] , donde usuario es el usuario que envía el mensaje.

2 . mydestination enumera los dominios que esta máquina entregará mensajes de correo electrónico localmente, en lugar de reenviarlos a otra máquina (actuando como un sistema de retransmisión). La configuración predeterminada será suficiente en nuestro caso (asegúrese de editar el archivo para que se adapte a su entorno).

Donde el archivo /etc/postfix/transport define la relación entre los dominios y el siguiente servidor al que se deben reenviar los mensajes de correo. En nuestro caso, dado que enviaremos mensajes solo a nuestra red de área local (evitando así cualquier resolución de DNS externa), la siguiente configuración será suficiente.

example.com.ar    local:
.example.com.ar    local:

A continuación, debemos convertir este archivo de texto sin formato al formato .db , que crea la tabla de búsqueda que Postfix utilizará para saber qué hacer con el correo entrante y saliente.

# postmap /etc/postfix/transport

Deberá recordar volver a crear esta tabla si agrega más entradas al archivo de texto correspondiente.

3 . mynetworks define las redes autorizadas desde las que Postfix reenviará mensajes. El valor predeterminado, subred, le dice a Postfix que reenvíe correo desde clientes SMTP en las mismas subredes IP que la máquina local solamente.

mynetworks = subnet

4 . relay_domains especifica los destinos a los que se deben enviar los correos electrónicos. Dejaremos el valor predeterminado intacto, que apunta a mydestination. Recuerde que estamos configurando un servidor de correo para nuestra LAN.

relay_domains = $mydestination

Tenga en cuenta que puede utilizar en lugar de enumerar el contenido real.

5 . inet_interfaces define en qué interfaces de red debe escuchar el servicio de correo. El valor predeterminado, todos, le dice a Postfix que use todas las interfaces de red.

inet_interfaces = all

6 . Finalmente, se utilizarán mailbox_size_limit y message_size_limit para establecer el tamaño del buzón de cada usuario y el tamaño máximo permitido de mensajes individuales, respectivamente, en bytes.

mailbox_size_limit = 51200000
message_size_limit = 5120000

Restricción del acceso al servidor SMTP

El servidor Postfix SMTP puede aplicar ciertas restricciones a cada solicitud de conexión de cliente. No todos los clientes deben poder identificarse en el servidor de correo usando el comando smtp HELO , y ciertamente no todos deben tener acceso para enviar o recibir mensajes.

Para implementar estas restricciones, usaremos las siguientes directivas en el archivo main.cf . Aunque se explican por sí mismos, se han añadido comentarios con fines de aclaración.

# Require that a remote SMTP client introduces itself with the HELO or EHLO command before sending the MAIL command or other commands that require EHLO negotiation.
smtpd_helo_required = yes

# Permit the request when the client IP address matches any network or network address listed in $mynetworks
# Reject the request when the client HELO and EHLO command has a bad hostname syntax
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname

# Reject the request when Postfix does not represent the final destination for the sender address
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain

# Reject the request unless 1) Postfix is acting as mail forwarder or 2) is the final destination
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination

La página postconf de los parámetros de configuración de Postfix puede ser útil para explorar más las opciones disponibles.

Configuración de Dovecot

Inmediatamente después de instalar dovecot, es compatible con los protocolos POP3 e IMAP , junto con sus versiones seguras, POP3S y IMAPS , respectivamente.

Agregue las siguientes líneas en el archivo /etc/dovecot/conf.d/10-mail.conf .

# %u represents the user account that logs in
# Mailboxes are in mbox format
mail_location = mbox:~/mail:INBOX=/var/mail/%u
# Directory owned by the mail group and the directory set to group-writable (mode=0770, group=mail)
# You may need to change this setting if postfix is running a different user / group on your system
mail_privileged_group = mail

Si revisa su directorio personal, notará que hay un subdirectorio de correo con el siguiente contenido.

Además, tenga en cuenta que el archivo /var/mail /% u es donde se almacenan los correos del usuario en la mayoría de los sistemas.

Agregue la siguiente directiva a /etc/dovecot/dovecot.conf (tenga en cuenta que imap y pop3 implican imaps y pop3s también).

protocols = imap pop3

Y asegúrese de que /etc/conf.d/10-ssl.conf incluya las siguientes líneas (de lo contrario, agréguelas).

ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem

Ahora reiniciemos Dovecot y verifiquemos que escucha en los puertos relacionados con imap, imaps, pop3 y pop3s.

# netstat -npltu | grep dovecot

Configuración de un cliente de correo y envío / recepción de correos

En nuestra computadora cliente, abriremos Thunderbird y haremos clic en Archivo Nuevo Cuenta de correo existente . Se nos pedirá que ingresemos el nombre de la cuenta y la dirección de correo electrónico asociada, junto con su contraseña. Cuando hacemos clic en Continuar , Thunderbird intentará conectarse al servidor de correo para verificar la configuración.

Repite el proceso anterior para la siguiente cuenta ( [correo electrónico protegido] ) y las siguientes dos bandejas de entrada deberían aparecer en el panel izquierdo de Thunderbird.

En nuestro servidor, escribiremos un mensaje de correo electrónico a sysadmin , que tiene como alias jdoe y gacanepa .

El registro de correo ( /var/log/mail.log ) parece indicar que el correo electrónico que se envió a sysadmin se transmitió a [email protected] y [correo electrónico protegido] , como se puede ver en la siguiente imagen.

Podemos verificar si el correo fue entregado realmente a nuestro cliente, donde las cuentas IMAP fueron configuradas en Thunderbird.

Por último, intentemos enviar un mensaje de [correo electrónico protegido] a [correo electrónico protegido] .

En el examen se le pedirá que trabaje exclusivamente con utilidades de línea de comandos. Esto significa que no podrá instalar una aplicación cliente de escritorio como Thunderbird, sino que deberá utilizar el correo en su lugar. Hemos utilizado Thunderbird en este capítulo únicamente con fines ilustrativos.

Conclusión

En esta publicación, explicamos cómo configurar un servidor de correo IMAP para su red de área local y cómo restringir el acceso al servidor SMTP . Si tiene algún problema al implementar una configuración similar en su entorno de prueba, querrá consultar la documentación en línea de Postfix y Dovecot (especialmente las páginas sobre los archivos de configuración principales, /etc/postfix/main.cf y/etc/dovecot/dovecot.conf, respectivamente), pero en cualquier caso no dude en ponerse en contacto conmigo mediante el formulario de comentarios a continuación. Estaré más que feliz de poder ayudarte.